【发布时间】:2016-05-29 00:15:30
【问题描述】:
我创建了一个类库项目,并安装了 Newtonsoft.Json NuGet 包。此操作添加了一个 app.config 文件,其中包含:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
然后我让类库 COM 可见:
当我尝试在另一个 C# WinForms 项目中使用我的类库时,我收到了错误:
System.IO.FileLoadException:无法加载文件或程序集“Newtonsoft.Json,版本=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
直到我在 WinForms 项目中添加了相同的 app.config 行。
现在我正在尝试在 Microsoft Word VBA 开发人员中使用我的程序集(通过 COM 引用),我遇到了同样的错误,但我无法为 Microsoft Word 创建 app.config 文件,可以吗?有什么办法,这个问题怎么解决?
提前致谢!
【问题讨论】:
-
我认为您引用的程序集在您的新项目中缺少 Json.dll。要对此进行测试,您可以手动将 json.dll 添加到新项目的输出文件夹中。
-
您是否尝试过使用发布商政策?这应该将重定向应用于尝试使用旧版本的“所有应用程序”。 msdn.microsoft.com/en-us/library/dz32563a(v=vs.110).aspx
-
不,我没有。我会尽力让你知道结果。谢谢。