重定向Nuget包DLL文件

问题描述 投票:0回答:1

我想在最新版本中使用Nuget Package Microsoft.CodeAnalytics 如果我构建解决方案,则存在关于不同版本的dll的问题,这些版本是.NET框架的一部分

例如:

“Reference:System.IO.FileSystem,version = 4.0.2.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”和“Reference:System.IO.FileSystem”之间发生冲突。 “参考:System.IO.FileSystem被选中,因为AssemblyVersion”4.0.3.0“高于”4.0.2.0。“(任务ID:19)

引用的程序集可以在Microsoft.CodeAnalytics附带的下载的Nuget包中找到。 在构建时不会在本地复制dll。如果我像这样部署应用程序,程序会抛出异常,因为它找不到引用的程序集。

解决方案是让dll寻找最新版本,但我不知道该怎么做。 在app.config中写下重定向。

<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />

如果我尝试像这样运行应用程序,它仍然会抛出错误,因为它在调用CodeAnalytics包的类时无法在版本4.0.2.0中找到.dll。

即使.NET Framework中存在更高版本的文件版本,如何让Visual Studio / msbuild在本地复制文件,或者如何让dll查找其他dll的正确版本?

c# visual-studio dll
1个回答
0
投票

您可以强制包含dll:在解决方案资源管理器中,在引用包含CodeAnalysis的项目下,右键单击dll,选择Properties,在Properties窗口中,将'Copy Local'更改为true。

通过删除bindingRedirect元素更改app.config会发生什么?

© www.soinside.com 2019 - 2024. All rights reserved.