我有一个目前处于.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/
或者有更好的方法来处理这种情况吗?
答案 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
:
如果它已经安装在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框架的完整版本中添加安装。