使用 MSBuild 构建 Windows Store 应用程序时如何跳过打包步骤?
How do I skip the packaging step when building a Windows Store app using MSBuild?
我目前正在尝试使用 AppVeyor 为我的 Windows Store 应用程序设置持续集成。我面临的问题是构建失败,因为缺少 Package.StoreAssociation.xml
文件。这是详细的错误信息 (error APPX0002
):
(_ValidateAppxPackage target) ->
C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage\Microsoft.AppXPackage.Targets(2625,5): error APPX0002: Task 'ValidateAppxPackage' failed. Could not find file 'C:\projects\...\<PROJECTNAME>\Package.StoreAssociation.xml'. [C:\projects\...\<PROJECTNAME>\<PROJECTNAME>.csproj]
C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage\Microsoft.AppXPackage.Targets(2625,5): error APPX0002: [C:\projects\...\<PROJECTNAME>\<PROJECTNAME>.csproj]
在我的研究过程中,我发现了这个 site,它说这个错误是由于创建应用程序包的步骤而发生的,并且在使用 Visual Studio 时被跳过了,我可以批准,因为它在没有 Package.StoreAssociation.xml
文件的机器上工作。
有没有办法在分别使用 MSBuild 和 AppVeyor 时跳过这一步?
所以我发现 this 网站建议将参数 AppxPackageSigningEnabled
设置为 false
。不幸的是,这没有帮助。我当前使用的命令如下:
msbuild "C:\projects\...\<PROJECTNAME>.sln" /t:Rebuild /p:Configuration=Debug /p:Platform=x86 /p:AppxPackageSigningEnabled=false /p:AppxBundle=Never /verbosity:normal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
这个问题的解决方法其实很简单,但是我花了好几个小时才弄明白,这并没有让我感到骄傲。现在我想分享我的解决方案:
msbuild /t:Build /p:Configuration=Release /p:Platform=x86 /p:AppxPackage=false /verbosity:minimal
使用此命令构建工作正常。这里重要的参数是/p:AppxPackage=false
,它将跳过AppxPackage的创建。这正是我想要的,因为 StoreKey.pfx
文件丢失导致无法签名,而且我无法提供密钥,因为应用程序本身是开源的。
我目前正在尝试使用 AppVeyor 为我的 Windows Store 应用程序设置持续集成。我面临的问题是构建失败,因为缺少 Package.StoreAssociation.xml
文件。这是详细的错误信息 (error APPX0002
):
(_ValidateAppxPackage target) ->
C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage\Microsoft.AppXPackage.Targets(2625,5): error APPX0002: Task 'ValidateAppxPackage' failed. Could not find file 'C:\projects\...\<PROJECTNAME>\Package.StoreAssociation.xml'. [C:\projects\...\<PROJECTNAME>\<PROJECTNAME>.csproj]
C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage\Microsoft.AppXPackage.Targets(2625,5): error APPX0002: [C:\projects\...\<PROJECTNAME>\<PROJECTNAME>.csproj]
在我的研究过程中,我发现了这个 site,它说这个错误是由于创建应用程序包的步骤而发生的,并且在使用 Visual Studio 时被跳过了,我可以批准,因为它在没有 Package.StoreAssociation.xml
文件的机器上工作。
有没有办法在分别使用 MSBuild 和 AppVeyor 时跳过这一步?
所以我发现 this 网站建议将参数 AppxPackageSigningEnabled
设置为 false
。不幸的是,这没有帮助。我当前使用的命令如下:
msbuild "C:\projects\...\<PROJECTNAME>.sln" /t:Rebuild /p:Configuration=Debug /p:Platform=x86 /p:AppxPackageSigningEnabled=false /p:AppxBundle=Never /verbosity:normal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
这个问题的解决方法其实很简单,但是我花了好几个小时才弄明白,这并没有让我感到骄傲。现在我想分享我的解决方案:
msbuild /t:Build /p:Configuration=Release /p:Platform=x86 /p:AppxPackage=false /verbosity:minimal
使用此命令构建工作正常。这里重要的参数是/p:AppxPackage=false
,它将跳过AppxPackage的创建。这正是我想要的,因为 StoreKey.pfx
文件丢失导致无法签名,而且我无法提供密钥,因为应用程序本身是开源的。