2

当我尝试在文档模板中填充合并字段时,当我到达 wordTemplate.process(); 它尝试加载类型“System.Data.OleDb.OleDbType”,但没有找到。该项目是带有 .net Core 2.1 UI 库的 .net 框架 4.7.2 类库。

我曾尝试在一个同样针对框架 4.7.2 的较旧的 asp.net 网站项目中执行此操作,并且有一种魅力。

错误信息:

WordWriter 错误:无法从程序集“System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e079”加载类型“System.Data.OleDb.OleDbType”。

异常的全名 = "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);

我在这里想念什么?

4

1 回答 1

3

好吧,想通了……因为我的父项目是.NET Core 2.1,子项目是.NET framework 4.7.2,所以在运行时,它会使用Core项目中的system.data框架项目。在 IDE 中编辑项目时,我将使用框架 dll,但在编译时不使用。在 CORE dll 中,许多 OleDB“框架”已被删除。这就是为什么 a 在运行时出错,但在编写代码时却没有。我希望这可以帮助别人。

于 2018-10-17T14:54:52.087 回答