使用Visual Studio 2017附带的MSBuild 15构建正常的.Net项目

时间:2018-05-04 09:38:03

标签: .net visual-studio msbuild visual-studio-2017

我有一个目前处于.Net版本4.5.1的项目,它具有正常的.Net项目结构。

我正在尝试使用Jenkins在仅安装VS 2017的Windows代理上构建此项目。

我正在使用VS 2017附带的MSBuild 15来构建这个项目,它位于 - C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \宾\ MSBuild.exe

但我面临错误 -

  

错误MSB3644:框架的引用程序集   " .NETFramework,版本= V4.5.1"没找到。要解决这个问题,   为此框架版本安装SDK或Targeting Pack   将您的应用程序重新定位到您所使用的框架版本   安装了SDK或Targeting Pack。请注意,程序集将是   从全局程序集缓存(GAC)解决并将用于   参考组件的地方。因此你的装配可能不是   正确定位您想要的框架。

根据我的理解,由于我的项目没有基于sdk的结构 - 它没有构建解决方案,因此,我将强制管理员安装VS 2015 Windows代理我需要根据这篇文章将我的所有项目重组为基于sdk的结构 -

https://www.natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/

或者有更好的方法来处理这种情况吗?

2 个答案:

答案 0 :(得分:2)

  

使用Visual Studio 2017附带的MSBuild 15构建正常的.Net项目

要解决此问题,您应确保首先安装Jenkins的Windows代理上安装了.NET Framework 4.5.1 Targeting Pack。

您可以启动Visual Studio Installer,对其进行修改,检查单个组件上是否选择了。NET Framework 4.5.1 targeting pack

enter image description here

如果它已经安装在Windows代理上,那么您应该验证jenkins机器上的.net框架引用路径是否与本地计算机上的匹配。

如果没有,您可以使用参数FrameworkPathOverride和MSBuild命令行在使用jenkins构建解决方案时覆盖.net框架路径,例如:

MSBuild.exe” YourSolution.sln /p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1"

希望这有帮助。

答案 1 :(得分:0)

正如您的消息所述,您必须在安装的构建服务器(其中包含vs2017)中安装.net framework 4.5.1。这是必需的,因为您的项目使用并定位了构建项目所需的一些dll。

首先,您可以尝试仅从https://www.microsoft.com/en-us/download/details.aspx?id=40772

安装定位框架

如果不起作用,请在4.5.1框架的完整版本中添加安装。