2013-10-18 51 views
12

我正在嘗試爲我們的Windows應用商店應用做一個命令行包部署。由於錯誤APPX0002,MSBuild失敗:任務'GenerateAppxPackageRecipe'失敗。值不能爲空

我的命令行指令是:

msbuild /m /p:Configuration=Debug /p:Platform=x86 /target:Build 

我使用VS2013專業版與Windows 8.1

我得到以下錯誤:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.AppXPackage.Targets(1224,9): error APPX0002: Task 'GenerateAppxPackageRecipe' failed. Value cannot be null.\r [C:\Path\Project.csproj]

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.AppXPackage.Targets(1224,9): error APPX0002: Parameter name: source\r [C:\Path\Project.csproj]

我應該如何解決這個問題?

+0

Scott - 您正在運行MSBUILD的構建服務器,它是Windows 8機器嗎? – Isaiah4110

+0

從VS本身構建時,它工作正常嗎?你嘗試刪除/ m開關(有時msbuild在並行執行構建時會感到困惑) – Isantipov

+0

@ Isaiah4110構建服務器是Windows 8.1機器 –

回答

9

使用正確版本的msbuild.exe解決了此錯誤。 在安裝有VS2013的乾淨構建服務器上,安裝了(至少)兩個msbuild.exe副本。在我們的情況下,安裝位置爲:

C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild.exe

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

在.Net框架文件夾中的一個是給我們的錯誤之一。使用Program Files文件夾中安裝的版本解決了問題。

+1

我們有一個針對Windows Phone 8和Windows Store的項目。我們的WP8版本與4.0.30319版本一起工作良好,但看起來Windows Store版本需要MSBuild \ 12.0版本。 – amacleod

1

如果沒有能夠重現錯誤的代碼,就無法幫助您。我懷疑某些屬性在構建VS之外(如VisualStudioVersion)時無法正確解析,需要從命令行傳遞。 VS也使用msbuild來構建你的項目,所以比較VS和CMD的構建日誌應該可以幫助你找到問題。

我建議您將visual studio的構建輸出詳細程度設置爲診斷清理解決方案,而不是構建和捕獲構建日誌。 然後清理解決方案並通過命令行進行構建,並將冗餘設置爲診斷和/ fl切換(記錄到文件,因爲診斷生成日誌太長而無法在控制檯窗口中進行分析)。

將命令行輸出與VS輸出進行比較。尋找差異。由於冗長的診斷級別,您可能會發現缺少的東西(由於VisualStudioVersion變量未被正確解析,因此我從數據庫項目無法從cmd生成類似問題,所以我通過命令行傳遞了它)。

注意:診斷日誌是詳細分析使分析變得困難:我將從詳細的詳細級別開始。

1

我已經從「project」/ bin文件夾中刪除了所有文件/文件夾,清理了解決方案併成功重建!

0

對於那些面臨混合應用程序(我的情況是corodova)的問題,請手動刪除構建文件夾,並從VS重新構建。 標準清潔解決方案沒有完成這項工作。

相關問題