我正在尝试为我们的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]
我该如何解决这个问题?
答案 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重新构建。 标准的清洁解决方案没有完成这项工作。