13

我正在尝试为我们的 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”失败。值不能为空。\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 ]

我应该如何解决这个问题?

4

4 回答 4

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 文件夹中的版本解决了该问题。

于 2013-10-30T23:28:03.307 回答
1

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

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

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

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

于 2013-10-28T22:11:28.287 回答
1

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

于 2015-10-26T15:22:12.527 回答
0

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

于 2017-02-15T12:20:18.260 回答