4

我有一个共享的 Windows8.1 项目,其中包含一个电话和桌面项目。我定义了不同的配置来构建用于桌面的 x86/x64 和用于手机的 ARM。

msbuild 工作正常,没有错误,但输出文件夹(或其他任何地方)上没有最终的 *.appxbundle 文件,尽管我设置了参数AppxBundle=Always

我的命令如下所示:

msbuild myApp.sln /p:OutputPath=%OUTPATH%;Configuration=Phone;Platform=ARM;AppxBundle=Always;AppxBundlePlatforms=ARM /t:Rebuild,Publish

输出是:

OUTPATH
├── ForBundle
│   └── AppxManifest.xml
├── AppxManifest.xml
├── App.WindowsPhone.build.appxrecipe
├── App.WindowsPhone_3.2.1_ARM.appx
├── App.WindowsPhone_3.2.1_scale-100.appx
├── App.WindowsPhone_3.2.1_scale-140.appx
├── App.WindowsPhone_3.2.1_scale-180.appx
├── resources.pri
└── SomeDependency.winmd

我试图用 makeappx.exe 包打包这个文件夹,但这没有用,我意识到这个文件夹看起来与 appxbundle 中的有点不同。

通过 VS GUI 创建 appxbundle 没问题,但我想自动化这一步!

提前致谢!

4

1 回答 1

4

有一个提示评论Microsoft.AppXPackage.Targets

在命令行或 TFS 中构建时(通过查看 $(BuildingInsideVisualStudio) 属性确定),如果在生成应用程序包的项目上调用构建,则该项目的包将作为构建项目的一部分生成,而无需指定任何其他标志或目标。这是由名为 GenerateAppxPackageOnBuild 的 MSBuild 属性控制的,默认情况下该属性设置为 true。

如果 $(BuildingInsideVisualStudio) = false 并且 $(GenerateAppxPackageOnBuild) = true,那么 build 也会生成一个包。真的

于 2016-01-21T21:05:32.457 回答