我刚刚在源代码管理中添加了一个UWP应用程序。但是,我的CI服务器(Jenkins)似乎并不喜欢这样:
错误MSB4019:导入的项目" C:\ Program Files (86)\的MSBuild \微软\ WindowsXaml \ v14.0 \ Microsoft.Windows.UI.Xaml.CSharp.targets" 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。
这源于以下UWP项目文件导入:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
在我的本地计算机上,我可以看到此文件位于:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.CSharp.Targets
显然,这是由于我本地安装的Visual Studio 2017.但是,CI服务器没有安装Visual Studio。我想这就是MSBuildExtensionsPath
正在解决错误中提到的路径的原因。
CI服务器上已安装以下项目:
我认为这些将包含必要的依赖项,但我无法在任何地方找到Microsoft.Windows.UI.Xaml.CSharp.targets
。
复制本地计算机上的目录
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\WindowsXaml\v15.0
到
的CI服务器C:\Program Files (x86)\MSBuild\Microsoft\WindowsXaml\v14.0
似乎解决了这个错误,但感觉非常黑客。
如果没有在CI服务器上安装Visual Studio 2017或手动复制/重命名文件,有没有办法解决这个问题?
最新版本的VSBT仍然是一个问题。唯一要报告的是错误从v14更改为v15。将同一目录复制到v15后,错误再次消失。然而,另一个看似无关的错误出现了:
C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017年\编译工具\的MSBuild \ 15.0 \斌\ Microsoft.Common.CurrentVersion.targets(1124,5): 错误MSB3644:框架的引用程序集 &#34; .NETCore,版本= 5.0版&#34;没找到。要解决此问题,请安装 适用于此框架版本的SDK或Targeting Pack,或重新定位您的 应用程序到您拥有SDK的框架版本 或安装了Targeting Pack。请注意,程序集将被解析 来自全球大会缓存(GAC)并将用于代替 参考组件。因此您的装配可能不正确 针对您想要的框架。
.NETCore,Version=v5.0
错误:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v5.0
虽然UWP构建成功,但不会生成appxbundle。这似乎表明VSBT缺少另一种依赖。