重定向Nuget包DLL文件

时间:2019-02-12 18:29:50

标签: c# visual-studio dll

我想在最新版本中使用Nuget包Microsoft.CodeAnalytics
如果我构建解决方案,则存在有关.NET框架中不同版本的dll的问题

例如:

  

Zwischen“参考:System.IO.FileSystem,版本= 4.0.2.0,   文化=中性,PublicKeyToken = b03f5f7f11d50a3a,   ProcessorArchitecture = MSIL“和” Reference:System.IO.FileSystem“ ist   ein Konflikt aufgetreten。 “参考:System.IO.FileSystem线   ausgewählt,以及AssemblyVersion“ 4.0.3.0”和其他版本“ 4.0.2.0”。   (Aufgaben-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-package的类时无法在4.0.2.0版中找到.dll。

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

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式强制包含dll: 在解决方案资源管理器的“引用”下的“包含CodeAnalysis的项目”下,右键单击dll,选择“属性”,在“属性”窗口中,将“复制本地”更改为true。

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