【发布时间】:2018-06-12 19:20:20
【问题描述】:
我正在尝试从 Jenkins 设置的命令行构建 UWP 应用程序(目标为 16299)。 系统只有VS build tools 2017。 使用此命令构建
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe" /t:Rebuild /p:Configuration=Release;AppxBundle=Always;AppxBundlePlatforms="x86\x64\ARM" /p:BuildAppxUploadPackageForUap=true SOLUTION_FILE.sln
错误 MSB4226:导入的项目“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.CSharp.targets”是未找到。此外,尝试在 $(MSBuildExtensionsPath) 的后备搜索路径中找到“Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.CSharp.targets” - “C:\Program Files (x86)\微软构建”。这些搜索路径在“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe.Config”中定义。确认声明中的路径正确,并且该文件存在于磁盘上的任一搜索路径中。
发现的另一个问题是 nuget 没有恢复任何包,所以将 nuget 更新到 4.4.1 然后我得到了错误
MSBuild 自动检测:使用来自“C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin”的 msbuild 版本“15.5.180.51428”。 没事做。此解决方案中的所有项目均未指定要还原 NuGet 的任何包。
nuget 4.6.0 也有同样的问题
我尝试在项目文件中添加以下内容
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle> </PropertyGroup>
msbuild 和 nuget 有同样的问题,有人在 Jenkins 中成功构建 UWP 吗?
2015 年 5 月 1 日更新
- 按照答案进行操作。
- 复制的 NuGet 文件夹
- 复制了“WindowsXaml”文件夹。
- 使用 MSbuild restore 而不是 Nuget restore 来修复 msbuild 尝试在“C:\WINDOWS\system32\config\systemprofile.nuget\packages\”中查找包的问题
所有这些更改在构建中不再出现问题, 但是 appx 包不存在。可能需要为 x86/x64/ARM 创建单独的 appx,然后需要进行某种合并。
所以需要进一步调查
【问题讨论】:
标签: jenkins uwp msbuild nuget-package-restore