请注意:这不是无法加载文件或程序集“System.ComponentModel.Annotations,Version=4.1.0.0的重复问题。
与链接的问题不同,此问题仅在发布应用程序后发生。如下所示,我尝试了该帖子中提出的每个解决方案,但都没有成功。
此问题出现在一个WPF .Net Framework 4.6.1项目中,该项目引用一个.Net Standard 2.0库,该库本身引用System.ComponentModel.Annotations NuGet包。
该问题在以下项目中得到复制:https://github.com/kaitlynbrown/DataAnnotationsError 要复制错误,请执行以下操作:
1.克隆上面链接的repo 2.打开Visual Studio中的解决方案 3.在Visual Studio中,选择“生成”->“发布” 4.单击完成 5.安装并运行已发布的应用程序
您将看到以下错误:
在App.config中添加以下绑定重定向:
在WPF项目中添加对System.ComponentModel.Annotations NuGet包的引用
这些方法都没有起作用。
请注意:问题不是在Visual Studio中构建和运行。我能够在没有错误的情况下做到这一点。问题出现在尝试发布应用程序并随后运行已发布的应用程序时。
此问题出现在一个WPF .Net Framework 4.6.1项目中,该项目引用一个.Net Standard 2.0库,该库本身引用System.ComponentModel.Annotations NuGet包。
该问题在以下项目中得到复制:https://github.com/kaitlynbrown/DataAnnotationsError 要复制错误,请执行以下操作:
1.克隆上面链接的repo 2.打开Visual Studio中的解决方案 3.在Visual Studio中,选择“生成”->“发布” 4.单击完成 5.安装并运行已发布的应用程序
您将看到以下错误:
我尝试了很多方法来解决这个问题,包括:
将以下行添加到WPF项目的.csproj文件中:
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
在App.config中添加以下绑定重定向:
<runtime>
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
</dependentAssembly>
</runtime>
在WPF项目中添加对System.ComponentModel.Annotations NuGet包的引用
这些方法都没有起作用。
请注意:问题不是在Visual Studio中构建和运行。我能够在没有错误的情况下做到这一点。问题出现在尝试发布应用程序并随后运行已发布的应用程序时。
System.ComponentModel.Annotations
是唯一一个其dll未被复制到发布文件夹的NuGet包。它似乎出现在bin文件夹中(与我的其他项目和所有NuGet包引用的dll一起),并且除此之外的所有dll都似乎已被复制到了发布文件夹中。 - Katie