[英]Building UWP app in command line (using MSBUILD)
我正在尝试从Jenkins安装程序的命令行构建UWP应用(目标16299)。 系统仅具有VS构建工具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)\\ MSBuild”。 这些搜索路径在“ 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日
通过所有这些更改,构建中不再存在任何问题,但是appx捆绑包不存在。 可能是必须为x86 / x64 / ARM创建单独的appx,然后需要某种合并。
所以需要进一步调查
从您用于MSBuild的目录路径中,我看到您可能已经安装了MSBuildTools安装程序,而不是社区,专业...版本。
我之前曾尝试过,但发现它不完整,并且不具有构建Uwp工具的所有依赖关系,请查看此处有关问题的一些评论。
第一种解决方法:您可以从VS Community或Professional安装Uwp Workload,因为它具有所有依赖性,直到Microsoft在BuildTools安装程序中修复问题为止。
奖励:如果要从命令行运行安装程序,则可以编写如下命令行:
vs_installer.exe --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools" ^
--add Microsoft.VisualStudio.Workload.Universal ^
--add Microsoft.VisualStudio.Component.Windows10SDK.14393 ^
--add Microsoft.Component.MSBuild ^
--passive --wait --norestart
较长的解决方法是,我设法安装了其他依赖项,但如果您要自动执行此安装,我相信这很麻烦, 本文的摘录
从安装了VS2017的计算机上将Sdks文件夹复制到:c:\\ Program Files(x86)\\ Visual Studio \\ 2017 \\ Professional \\ Build MSBuild \\ Sdks到构建计算机上\\ 2017 \\ Build Tools \\ MSBuild \\ Sdks
对于金块问题:
复制NuGet导入文件将完成tr,再次从装有VS2017的计算机上复制以下文件夹:C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ 2017 \\ Professional \\ Common7 \\ IDE \\ CommonExtensions \\ Microsoft \\ NuGet在以下位置生成计算机:C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ 2017 \\ BuildTools \\ Common7 \\ IDE \\ CommonExtensions \\ Microsoft \\ NuGet
注意:如果稍后遇到此问题,并且发现Microsoft在MSBuildTools安装程序中解决了与Uwp相关的问题,请在此答案中对此发表评论以进行更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.