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

时间:2013-10-18 04:34:45

标签: msbuild windows-store-apps

我正在尝试为我们的Windows应用商店应用程序执行命令行软件包部署。

我的命令行说明是:

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

我正在使用VS2013 Professional和Windows 8.1

我收到以下错误:

  

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \ AppxPackage \ Microsoft.AppXPackage.Targets(1224,9):   错误APPX0002:任务'GenerateAppxPackageRecipe'失败。价值不可能   为空。\ r [C:\ Path \ Project.csproj]

     

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \ AppxPackage \ Microsoft.AppXPackage.Targets(1224,9):   错误APPX0002:参数名称:source \ r [C:\ Path \ Project.csproj]

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:9)

使用正确版本的msbuild.exe解决了此错误 在安装了VS2013的干净构建服务器上,安装了(至少)两个msbuild.exe副本。在我们的例子中,安装位置是:

  

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

  

C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ msbuild.exe

.Net Framework文件夹中的那个是给我们错误的那个。使用Program Files文件夹中安装的版本解决了该问题。

答案 1 :(得分:1)

如果没有可以重现错误的代码,就无法帮助您。我怀疑在VS外部构建(例如VisualStudioVersion)并且需要从命令行传递时,某些属性无法正确解析。 VS还使用msbuild来构建项目,因此比较VS和CMD的构建日志应该可以帮助您找到问题。

我建议您将visual studio的构建输出详细程度设置为诊断,清理解决方案,而不是构建和捕获构建日志。 然后清理解决方案并从命令行进行构建,将详细程度设置为diagnostic和/ fl switch(登录到文件,因为诊断构建日志太长而无法在控制台窗口中进行分析)。

将命令行输出与VS输出进行比较。寻找差异。有了详细程度的诊断级别,很有可能,你会发现缺少什么(由于VisualStudioVersion变量未正确解析,我在cmd中无法构建的数据库项目存在类似问题,因此我从命令行传递了它。)

注意:诊断日志非常详细,这使分析变得困难:我将从详细的详细程度开始。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

对于那些面临混合应用程序问题的人(在我的情况下是corodova),手动删除构建文件夹并从VS重新构建。 标准的清洁解决方案没有完成这项工作。