假设我有项目A、B和C。项目A引用了项目B(版本2.0.0.0)和项目C(版本3.0.0.0)。而项目B仅引用了项目C(版本1.0.0.0)。我们面临一个冲突,因为项目A和B依赖于不同版本的项目C程序集。在.NET框架中,我们使用绑定重定向来解决这个问题。在项目A的
app.config
文件(作为主要项目)中,我们添加:<dependentAssembly>
<assemblyIdentity name="C"
publicKeyToken="<somePublicKeyToken>"
culture="en-us" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
我相信在.NET Core和.NET 5中,绑定重定向已经不再是一件事情。现在我们引用NuGet包或者项目而不是引用程序集。我的问题是:在新版本的.NET中,这个问题是如何解决的?为什么一开始需要绑定重定向呢?希望我的问题表达清楚。
csc
编译器仍会在生成的.exe
/.dll
文件中使用传统的程序集引用。此外,在 .NET Core / .NET 5+ 的.csproj
项目中,您仍然可以手动引用程序集,只是有点难找。 - Dai