如何将4.0参考汇编添加到您的构建服务器中(以便编译器找到它们)?

问题描述 投票:6回答:2

当你在一台没有安装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参考程序集添加到你的编译服务器上(这样编译器就能找到它们)。"?

c# visual-studio-2012 .net-4.0
2个回答
4
投票

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

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

这是明智的,但愚蠢的。 然后他们犯了一个致命的错误,他们添加了来自c:\windows\microsoft.net的引用组件,而不是。 就像在.NET 4.0之前的框架版本中所做的那样。 当构建的产品在只安装了4.0的机器上运行时,这会导致可怕的诊断运行时异常。 提问者相当幸运,他得到了一个比较容易诊断的问题。 然而这可能是一个 大量 更糟糕的是,对于常见的框架类型,得到非常奇怪的TypeLoadExceptions。

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


0
投票

除了Hans的回答,这里还有一个可能的原因。

我的构建服务器上安装了Visual Studio,然而,我的项目目标是.NET 4.0.3,而我的构建服务器上没有这个特定的目标框架。因此,它默默地默认为.NET 4.5。

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

© www.soinside.com 2019 - 2024. All rights reserved.