无法从程序集 officewriter.proces() 加载类型 'System.Data.OleDb.OleDbType'
Could not load type 'System.Data.OleDb.OleDbType' from assembly officewriter.proces()
当我尝试在文档模板中填充合并字段时,当我到达 wordTemplate.process();它尝试加载类型 'System.Data.OleDb.OleDbType',但找到了 none。该项目是一个 .net Framework 4.7.2 class 库和一个 .net Core 2.1 UI 库。
我曾尝试在一个旧的 asp.net 网站项目中执行此操作,该项目也以框架 4.7.2 为目标,并且效果很好。
错误信息:
WordWriter Error: Could not load type 'System.Data.OleDb.OleDbType' from assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e079'.
Full name of exception = "SoftArtisans.OfficeWriter.WordWriter.SAException"
我只是想写一个重复块来替换合并字段(这在 asp.net 网站上有效):
DataTable dt = new DataTable("Occassions");
dt.Columns.Add("AttentionNames");
foreach (AudAudiencePerson person in audiencePeopleToPrint)
{
DataRow row = dt.NewRow();
row["AttentionNames"] = "Mathias";
dt.Rows.Add(row);
}
WordTemplate wordTemplate = new WordTemplate();
wordTemplate.Open(@"pathToTemplate\BasicTemplate.docx");
wordTemplate.SetRepeatBlock(dt, "Repeat");
wordTemplate.Process();
MemoryStream ms = new MemoryStream();
wordTemplate.Save(ms);
我在这里错过了什么?
好吧,明白了……
因为我的父项目是.NET Core 2.1,子项目是.NET framework 4.7.2,所以在运行时,会在framework项目中使用Core项目中的system.data。在 IDE 中编辑项目时,我将使用框架 dll,但在编译时不使用。在 CORE dll 中,大量 OleDB "framework" 已被删除。这就是为什么在运行时出现错误,但在编写代码时却没有。我希望这可以帮助别人。
当我尝试在文档模板中填充合并字段时,当我到达 wordTemplate.process();它尝试加载类型 'System.Data.OleDb.OleDbType',但找到了 none。该项目是一个 .net Framework 4.7.2 class 库和一个 .net Core 2.1 UI 库。
我曾尝试在一个旧的 asp.net 网站项目中执行此操作,该项目也以框架 4.7.2 为目标,并且效果很好。
错误信息:
WordWriter Error: Could not load type 'System.Data.OleDb.OleDbType' from assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e079'.
Full name of exception = "SoftArtisans.OfficeWriter.WordWriter.SAException"
我只是想写一个重复块来替换合并字段(这在 asp.net 网站上有效):
DataTable dt = new DataTable("Occassions");
dt.Columns.Add("AttentionNames");
foreach (AudAudiencePerson person in audiencePeopleToPrint)
{
DataRow row = dt.NewRow();
row["AttentionNames"] = "Mathias";
dt.Rows.Add(row);
}
WordTemplate wordTemplate = new WordTemplate();
wordTemplate.Open(@"pathToTemplate\BasicTemplate.docx");
wordTemplate.SetRepeatBlock(dt, "Repeat");
wordTemplate.Process();
MemoryStream ms = new MemoryStream();
wordTemplate.Save(ms);
我在这里错过了什么?
好吧,明白了…… 因为我的父项目是.NET Core 2.1,子项目是.NET framework 4.7.2,所以在运行时,会在framework项目中使用Core项目中的system.data。在 IDE 中编辑项目时,我将使用框架 dll,但在编译时不使用。在 CORE dll 中,大量 OleDB "framework" 已被删除。这就是为什么在运行时出现错误,但在编写代码时却没有。我希望这可以帮助别人。