如何编译.NET 4.5应用程序并引用.NET 4.5.2程序集?

Jon*_*han 12 .net .net-4.5.2

我发现一个针对4.5的应用程序可以加载并运行一个针对4.5.2的程序集 - 但我无法编译这样的设置!

问题:如何编译.NET 4.5应用程序并引用.NET 4.5.2程序集?

实验细节:

  • MyLib.csproj - 目标4.5.2
  • MyApp.csproj - 目标4.5,具有对MyLib.csproj的项目引用

在Visual Studio或MSBuild中进行编译失败:

警告MSB3274:无法解析主要引用"(...)\ MyLib.dll",因为它是针对".NETFramework,Version = v4.5.2"框架构建的.这是比当前目标框架".NETFramework,Version = v4.5"更高的版本.
错误CS0246:找不到类型或命名空间名称"MyLib"(您是否缺少using指令或程序集引用?)

我试图单独编译MyLib并引用它的DLL,但得到了相同的编译错误.

但是,我设法让两者都运行:

  • 将两个项目都设置为4.5,编译,将结果复制到c:\ test\MyApp.exe
  • 将两个项目都设置为4.5.2,编译,将结果复制到c:\ test\MyLib.dll
  • 运行MyApp.exe - 运行正常!

背景:我正在准备将我们的大型NuGet管理的多项目从.NET 4.5过渡到4.5.2.该公告It is a highly compatible, in-place update to the .NET Framework 4, 4.5 and 4.5.1,所以,我想,如果我们升级我们的一些(的NuGet管理)裁判对4.5.2会发生什么,未升级的项目,试图使用它们.

Dmi*_*lov 0

你可以尝试让你的图书馆成为一个.NET Standard图书馆,而不是.NET Framework 4.X一个图书馆。

请参阅相关主题