繁体   English   中英

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

[英]MSBuild fails due to error APPX0002: Task 'GenerateAppxPackageRecipe' failed. Value cannot be null

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

我的命令行说明是:

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):错误APPX0002:任务'GenerateAppxPackageRecipe'失败。 值不能为null。\\ r [C:\\ Path \\ Project.csproj]

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

我该如何解决这个问题?

使用正确版本的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文件夹中安装的版本解决了该问题。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM