相关疑难解决方法(0)

如何在不安装IDE的情况下在构建服务器上安装VS2017版本的msbuild?

从历史上看,这已经使用Microsoft Build Tools完成.但似乎构建工具可能不适用于2015年之后的版本.替换似乎是Visual Studio构建工具,它似乎还没有真正的主页.

我下载了VS2017 Professional安装程序,然后转到Individual Components选项卡.然后,摘要告诉我Visual Studio核心编辑器在那里,占用753MB.我不想要编辑.只是msbuild.没有办法取消选择编辑器.

有没有办法安装最新版本的msbuild而不安装Visual Studio IDE?

msbuild build-tools build-server visual-studio-2017

193
推荐指数
1
解决办法
13万
查看次数

MS-Build 2017"Microsoft.WebApplication.targets"缺失

我正在尝试将我们的构建服务器(jenkins)从Visual Studio 2015升级到2017年.我们正在通过MS-Build构建.我已按照此答案中的说明下载并安装了MS-Buld工具.如果我编译我的项目,我会收到一个Microsoft.WebApplication.targets未找到的错误.

详细错误:

 error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"
Run Code Online (Sandbox Code Playgroud)

我在MS-Build目录中执行了一个find:

PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets"


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       11.01.2012     00:23          19654 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       22.07.2013     01:25          19995 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       06.07.2015     21:55          20118 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program …
Run Code Online (Sandbox Code Playgroud)

msbuild visual-studio

67
推荐指数
6
解决办法
5万
查看次数

CI服务器上缺少Microsoft.Windows.UI.Xaml.CSharp.targets

问题

我刚刚在源代码控制中添加了一个UWP应用程序.但是,我的CI服务器(Jenkins)似乎不喜欢这样:

错误MSB4019:找不到导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\WindowsXaml\v14.0\Microsoft.Windows.UI.Xaml.CSharp.targets".确认声明中的路径是否正确,以及该文件是否存在于磁盘上.

这源于以下UWP项目文件导入:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)

在我的本地计算机上,我可以看到此文件位于:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.CSharp.Targets
Run Code Online (Sandbox Code Playgroud)

显然,这是由于我本地安装的Visual Studio 2017.但是,CI服务器没有安装Visual Studio.我想这就是MSBuildExtensionsPath解决错误中提到的路径的原因.

依赖

CI服务器上已安装以下项目:

  • Visual Studio Build Tools 2017(下载)
  • Windows 10 SDK 10.0.15063.468(下载)
  • Xamarin.VisualStudio 4.5.0.476(下载)
  • .NET Framework 4.5.1-4.7 SDK

我假设这些将包括必要的依赖项,但我找不到Microsoft.Windows.UI.Xaml.CSharp.targets任何地方.

解决方法

复制本地计算机上的目录

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\WindowsXaml\v15.0
Run Code Online (Sandbox Code Playgroud)

到CI服务器

C:\Program Files (x86)\MSBuild\Microsoft\WindowsXaml\v14.0
Run Code Online (Sandbox Code Playgroud)

似乎解决了错误,但感觉非常hacky.

有没有办法解决这个问题,而无需在CI服务器上安装Visual Studio 2017或手动复制/重命名文件?


更新2018-01-12:

对于最新版本的VSBT,这仍然是一个问题.唯一要报告的是错误从v14更改为v15.将同一目录复制到v15后,错误再次消失.但是,出现了另一个看似无关的错误:

C:\ Program Files(x86)\ Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1124,5):错误MSB3644:框架的参考程序集".NETCore,Version = v5.0"未被发现.要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本.请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集.因此,您的程序集可能无法正确定位到您想要的框架.


更新2018-01-15

.NETCore,Version=v5.0 通过将以下目录从本地计算机复制到构建服务器来解决错误:

C:\Program …
Run Code Online (Sandbox Code Playgroud)

msbuild continuous-integration uwp

15
推荐指数
1
解决办法
2970
查看次数