Msbuild VisualStudio.com可以';t在生成期间加载临时UWP证书

Msbuild VisualStudio.com可以';t在生成期间加载临时UWP证书,msbuild,visual-studio-2015,win-universal-app,azure-devops,build-server,Msbuild,Visual Studio 2015,Win Universal App,Azure Devops,Build Server,我设置了我的VisualStudio团队服务帐户,以克隆我的私有GitHub repo,并在任何时候对生成进行排队时生成Windows UWP应用程序。克隆工作没有任何问题;除一个项目外,每个项目(6)的编制工作。Windows UWP应用程序项目 生成服务器编译应用程序时,我收到以下警告: C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(17

我设置了我的VisualStudio团队服务帐户,以克隆我的私有GitHub repo,并在任何时候对生成进行排队时生成Windows UWP应用程序。克隆工作没有任何问题;除一个项目外,每个项目(6)的编制工作。Windows UWP应用程序项目

生成服务器编译应用程序时,我收到以下警告:

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(1778,5): 警告APPX0104:找不到证书文件“myapp_TemporaryKey.pfx”

2> C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(1778,5): 警告APPX0104:找不到证书文件“myapp_TemporaryKey.pfx”。[C:\a\1\s\Source\Applications\myapp.WindowsUWP\myapp.csproj]

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(1778,5): 警告APPX0102:在证书存储中找不到项目中指定的指纹为“58F2EA544193F6FC9F273713557055B388E58D8”的证书。请在项目文件中指定有效的指纹

2> C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(1778,5): 警告APPX0102:在证书存储中找不到项目中指定的指纹为“58F2EA544193F6FC9F273713557055B388E58D8”的证书。请在项目文件中指定有效的指纹。[C:\a\1\s\Source\Applications\myapp.WindowsUWP\myapp.csproj]

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(1778,5): 警告APPX0107:指定的证书对于签名无效。有关有效证书的详细信息,请参阅。 2> C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(1778,5): 警告APPX0107:指定的证书对于签名无效。有关有效证书的详细信息,请参阅。[C:\a\1\s\Source\Applications\myapp.WindowsUWP\myapp.csproj]

这是要编译的6个项目中的最后一个。收到警告后,它继续将所有输出文件复制到final/bin目录。然后,在完成所有操作后,报告与上面相同的消息,但这次报告为错误并导致构建失败

_GenerateAppxPackageFile: C:\Program Files(x86)\Windows Kits\10\bin\x64\MakeAppx.exe pack/l/h sha256/f obj\x86\Debug\package.map.txt/o/p C:\a\1\s\Source\Applications\MyApp.WindowsUWP\AppPackages\MyApp\u 1.0.0\u x86\u Debug\u Test\MyApp\u 1.0.0.0\u x86\u Debug.appx
MyApp->C:\a\1\s\Source\Applications\MyApp.WindowsUWP\AppPackages\MyApp\u 1.0.0\u x86\u Debug\u Test\MyApp\u 1.0.0\u x86\u Debug.appx C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(2382,5):错误APPX0104:找不到证书文件“MyApp\u TemporaryKey.pfx”。 2> C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(2382,5):错误APPX0104:找不到证书文件“MyApp\u TemporaryKey.pfx”。[C:\a\1\s\Source\Applications\MyApp.WindowsUWP\MyApp.csproj] C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(2382,5):错误APPX0102:在证书存储中找不到项目中指定的指纹为“58F2EA544193F6FC9F27371355705555B388E58D8”的证书。请在项目文件中指定有效的指纹。 2> C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(2382,5):错误APPX0102:在证书存储中找不到项目中指定的指纹为“58F2EA544193F6FC9F27371355705555B388E58D8”的证书。请在项目文件中指定有效的指纹。[C:\a\1\s\Source\Applications\MyApp.WindowsUWP\MyApp.csproj] C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(2382,5):错误APPX0107:指定的证书对于签名无效。有关有效证书的详细信息,请参阅。 2> C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppxPackage.Targets(2382,5):错误APPX0107:指定的证书对于签名无效。有关有效证书的详细信息,请参阅。[C:\a\1\s\Source\Applications\MyApp.WindowsUWP\MyApp.csproj] 2> 已完成生成项目“C:\a\1\s\Source\Applications\MyApp.WindowsUWP\MyApp.csproj”(默认目标)——失败。 1> 已完成生成项目“C:\a\1\s\Source\MyApp.UWP.sln”(默认目标)——失败。 生成失败。 “C:\a\1\s\Source\MyApp.UWP.sln”(默认目标)(1)->

如果我只是删除证书(就像我在这个特定的错误日志中所做的那样),它会失败,因为它找不到它。如果我使用VS中的清单编辑器生成证书,并为其分配密码,则生成服务器将失败,因为它不知道密码。因此,无论我是否提供临时测试证书,我都无法让它进行构建


我们应该如何通过VisualStudioTeamServices构建系统运行Windows10UWP应用程序?这是微软一段时间以来一直在推广的东西,所以我认为这是一件可以做到的事情。我似乎无法让UWP项目实际生成。

您可以在不分配密码的情况下生成证书

或者在生成定义中添加PowerShell步骤以导入受密码保护的证书。以下是您可以使用的powershell脚本:

$pfxpath = 'myapp_TemporaryKey.pfx'
$password = 'yourpassword'

Add-Type -AssemblyName System.Security
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($pfxpath, $password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"PersistKeySet")
$store = new-object system.security.cryptography.X509Certificates.X509Store -argumentlist "MY", CurrentUser
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]"ReadWrite")
$store.Add($cert)
$store.Close()

请记住将“工作文件夹”设置为pfx文件所在的路径。

默认情况下
.gitignore
忽略任何
*.pfx
文件。因此,它没有添加到git中。我也有同样的问题,构建机器没有
*\u StoreKey.pfx
文件
<PackageCertificateKeyFile>myCert.pfx
</PackageCertificateKeyFile>