簡體   English   中英

在命令行中構建UWP應用(使用MSBUILD)

[英]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日

  • 根據答案遵循指示。
  • 復制的NuGet文件夾
  • 復制了“ WindowsXaml”文件夾。
  • 使用MSbuild還原而不是Nuget還原來修復msbuild試圖在“ C:\\ WINDOWS \\ system32 \\ config \\ systemprofile.nuget \\ packages \\”中查找軟件包的情況

通過所有這些更改,構建中不再存在任何問題,但是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM