MSBuild因错误APPX0002而失败:任务“GenerateAppxPackageRecipe”失败。值不能为空。

13

我正在尝试为我们的Windows Store应用程序进行命令行包部署。

我的命令行指令是:

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

我正在使用Windows 8.1上的VS2013 Professional。

我遇到了以下错误:

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]

如何解决这个问题?


Scott - 你正在运行 MSBUILD 的构建服务器是 Windows 8 机器吗? - Isaiah4110
@Isantipov 是的,VS Build 没有问题。只有当我们尝试通过使用命令行中的 MSBuild 自动化该过程时,才会出现此错误。 - Scott Ferguson
你是否尝试过移除 /m 开关? - Isantipov
顺便问一下,你在VS中构建项目时使用的是VS2013吗?如果你使用的是VS2012,那么你遇到的构建错误就是在VS2013扩展中出现的,这是不正确的。 - Isantipov
刚看到问题中提到了vs2013。 - Isantipov
显示剩余2条评论
4个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
8
通过使用正确版本的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 Framework文件夹中的那个给了我们错误。 使用安装在Program Files文件夹中的版本解决了该问题。

1
我们有一个项目,目标是同时支持Windows Phone 8和Windows Store。我们的WP8构建在4.0.30319版本上运行良好,但似乎Windows Store构建需要MSBuild\12.0版本。 - amacleod

1
没有能够重现错误的代码,我们无法帮助您。我怀疑在从Visual Studio外部构建时某些属性无法正确解析(例如VisualStudioVersion),需要通过命令行传递。VS也使用msbuild来构建您的项目,因此比较VS和CMD的构建日志应该有助于跟踪问题。 我建议您将Visual Studio的构建输出详细程度设置为诊断级别,清理解决方案,然后构建并捕获构建日志。 然后清理解决方案,并从命令行构建,同时将详细程度设置为诊断级别,并使用/fl开关(log to file, because diagnostic build log is way too long to analyse in console window)。 将命令行输出与VS输出进行比较。查找区别。在详细程度为诊断级别的情况下,很可能会找到缺少的内容。 (我曾遇到类似的问题,由于未能正确解析VisualStudioVersion变量,数据库项目无法从cmd中构建,因此我从命令行传递了它。) 注意:诊断日志非常详细,使分析变得困难:我建议从详细程度级别开始分析。

1
我已经从“项目”/bin文件夹中删除了所有文件/文件夹,清理了解决方案并成功重建!

0

对于那些在混合应用程序(在我的情况下是Cordova)上遇到问题的人,请手动删除构建文件夹并从VS重新构建。标准清理解决方案无法完成任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,