1

我有一个用 C#/XAML 编写的 Windows 8.1 Store App 的 VS2013 项目。我已经使用 TFS 2013 构建模板配置了构建来构建我的项目的解决方案。解决方案中还有一些其他项目正在构建良好(数据库项目、Web 项目、Windows 服务项目、WPF 客户端应用程序项目)。

当 Windows Store App 构建时,我收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage\Microsoft.AppXPackage.Targets (1224): The "GenerateAppxPackageRecipe" task failed unexpectedly.
System.ArgumentNullException: Value cannot be null.
Parameter name: source
   at System.Linq.Enumerable.ToDictionaryTSource,TKey,TElement
   at Microsoft.Build.AppxPackage.DumpResourceIndexMap..ctor(ITaskItem[] indexedPayloadFiles)
   at Microsoft.Build.AppxPackage.ResourceIndexMap.Create(String projectDir, String makePriExtensionPath, ITaskItem[] indexedPayloadFiles)
   at Microsoft.Build.AppxPackage.GenerateAppxPackageRecipe.ExecuteImplementation()
   at Microsoft.Build.AppxPackage.AppxPackagingTaskHelper.Execute()
   at Microsoft.Build.AppxPackage.GenerateAppxPackageRecipe.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()

我将以下参数传递给构建配置中的 MSBuild 参数:/p:VisualStudioVersion=12.0 /tv:12.0。同样在“打包”选项卡下的 Package.appxmanifest 设置中,我将“生成应用程序包”设置设置为“从不”。我不确定还有哪些其他设置可能与此处相关,因此请让我知道我是否可以提供其他详细信息,以帮助您更好地了解我的情况。

该项目在我的开发系统上构建和打包很好。如果我在 VS2013 中运行 Project --> Store --> Create App Packages... 向导,它会生成 .appx 文件。

我真的不知道下一步该往哪里看。感谢您的任何帮助,您可以提供!

史蒂夫

4

1 回答 1

0

我今天重新审视了这个问题,并最终得到了一个功能性的构建。问题似乎出在我们从 TFS 2012 定制的构建模板上。事实证明,在 TFS 2012 中运行 MSBuild 的 Xaml 活动被命名为 MSBuild,而对于 TFS 2013,它被命名为 RunMSBuild。2012 版本的活动显式运行来自 .NET Framework 4.0 安装的 MSBuild.exe,通常在此处找到:C:\Windows\Microsoft.NET\Framework\v4.0.30319。2013 版活动从 TFS 2013 安装的 MSBuild 运行 MSBuild.exe,通常在此处找到:C:\Program Files (x86)\MSBuild\12.0\Bin。要为 Win8.1 构建 Windows 应用商店应用程序,您必须使用 MSBuild for 2013。

我们定制的构建模板在我们喜欢的方案中为我们提供了自动装配版本控制,这就是我使用该模板的原因。看来我将不得不使用新的 TFS 2013 模板 (TfvcTemplate.12.xaml) 作为我们从这里更新的自定义模板的基础。

希望这些信息有一天对某人有用。谢谢!

于 2014-08-06T20:08:30.943 回答