NuGet 更新后的程序集冲突
Assembly conflicts after NuGet update
我有一个 .Net Framework 4.7.1 Web Forms 应用程序和 .Net Framework 4.7.1。 WebJob,都在 Azure AppService 上 运行。
自从通过 Nuget WebJob 包从 2.0.0 更新到 2.2.0 后,出现了一些依赖性问题。
第一个在运行时出现:
System.IO.FileLoadException : Could not load file or assembly 'System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference
编译中显示第二个:
Consider app.config remapping of assembly
用于许多程序集,例如 System.Net.Http、System.Net.Sockets、System.IO.Compression 等
为了解决这个问题,建议参考我添加的来源数量和编译器警告
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
这允许执行 WebJob,但编译器仍然显示程序集重新映射警告。
自从我相信 .Net Standard 以来,我看到了更多关于程序集冲突的问题。
你能给我解释一下吗
1. 程序集是怎么回事,为什么我需要打开绑定重定向?
2. 为什么这不能解决第二个问题?
谢谢。
- What is going on with assemblies and why I need to turn on Binding Redirects?
它requires assembly binding redirects需要在构建过程中生成。在你将它添加到你的 webjobs 之后,它会在你构建时将程序集添加到 bin 文件夹中。
- Why this does not solve the second issue?
看来是VS的问题,你可以在你的webjob References中点击Migrate packages.config to PackageReference
解决。在您的 webjobs 中添加以下 .csproj 并编译。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs" Version="2.2.0" />
</ItemGroup>
</Project>
更多细节,你可以参考这个issue。
我有一个 .Net Framework 4.7.1 Web Forms 应用程序和 .Net Framework 4.7.1。 WebJob,都在 Azure AppService 上 运行。
自从通过 Nuget WebJob 包从 2.0.0 更新到 2.2.0 后,出现了一些依赖性问题。
第一个在运行时出现:
System.IO.FileLoadException : Could not load file or assembly 'System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference
编译中显示第二个:
Consider app.config remapping of assembly
用于许多程序集,例如 System.Net.Http、System.Net.Sockets、System.IO.Compression 等
为了解决这个问题,建议参考我添加的来源数量和编译器警告
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
这允许执行 WebJob,但编译器仍然显示程序集重新映射警告。
自从我相信 .Net Standard 以来,我看到了更多关于程序集冲突的问题。
你能给我解释一下吗 1. 程序集是怎么回事,为什么我需要打开绑定重定向? 2. 为什么这不能解决第二个问题?
谢谢。
- What is going on with assemblies and why I need to turn on Binding Redirects?
它requires assembly binding redirects需要在构建过程中生成。在你将它添加到你的 webjobs 之后,它会在你构建时将程序集添加到 bin 文件夹中。
- Why this does not solve the second issue?
看来是VS的问题,你可以在你的webjob References中点击Migrate packages.config to PackageReference
解决。在您的 webjobs 中添加以下 .csproj 并编译。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs" Version="2.2.0" />
</ItemGroup>
</Project>
更多细节,你可以参考这个issue。