如何将4.0引用程序集添加到构建服务器(以便编译器找到它们)?

ama*_*ate 6 c# .net-4.0 visual-studio-2012

当您在没有安装Visual Studio 2010的计算机上安装Visual Studio 2012时(我认为),会出现此问题.我想在Visual Studio 2012上构建目标.net 4.0.我已经在没有VisualStudo 2010的情况下设置了机器.我最终得到的信息如下:

 *Warning   2   The primary reference "blablaLibraryproject" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".    blablaExecutableproject*
Run Code Online (Sandbox Code Playgroud)

这里的回答帖子(安装了.NET 4.5的构建服务器能否成功将面向4.0的项目部署到仅安装了.NET 4.0的服务器?)说:

您可以更正此问题,但是您需要将4.0引用程序集添加到构建服务器(以便编译器找到它们),而不仅仅依赖于.NET 4.5版本.

那么你如何" 将4.0引用程序集添加到构建服务器(以便编译器找到它们) "?

Han*_*ant 4

它们已经存在于机器上。只需将项目的目标框架设置从 4.5 更改为 4.0

对于尝试在不支付 VS 许可证的情况下设置构建服务器的程序员来说,该链接问题中讨论的问题是一个非常常见的问题。这已经很远了,但缺少一个免费的组件,即 .NET Framework 版本的多目标包。

这是小事明智,大事愚蠢。然后他们犯了一个致命的错误,他们添加了来自 c:\windows\microsoft.net 的引用程序集。就像 .NET 4.0 之前的框架版本中所做的那样。当构建的产品在仅安装了 4.0 的计算机上运行时,这会导致诊断运行时异常非常糟糕。提问者很幸运,他得到了一个相对容易诊断的问题。然而,情况可能会更糟,常见框架类型会出现相当奇怪的 TypeLoadException。

你没有这个问题,你安装了 VS,所以你已经有了多目标包。4.0 版本位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0 中。MSBuild 和 VS 都知道如何在没有您帮助的情况下找到它。只需更改项目设置,告诉他们您想要以 4.0 为目标