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

本文关键字:编译器 服务器 引用 添加 程序集 | 更新日期: 2023-09-27 18:19:45

在以前没有安装Visual studio 2010的计算机上安装Visual studio 2012时会出现此问题(我认为)。我希望以.net 4.0为目标,同时在Visual Studio 2012上进行构建。我已经在没有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*

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

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

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

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

它们已经存在于机器上。只需将项目的目标框架设置从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 Assemblys''Microsoft''Framework.NETFramework''v4.0中找到。MSBuild和VS都知道如何在没有您帮助的情况下找到它。只需更改项目设置,告诉他们您希望以4.0 为目标

除了Hans的回答之外,还有另一个可能的原因:

我的构建服务器安装了Visual Studio,但是,我的项目以.NET 4.0.3为目标,而我的生成服务器上缺少特定的目标框架。因此,它默认为.NET 4.5。

我通过将项目的目标框架更改为.NET4来解决这个问题。