VisualStudio.com无法在构建期间加载临时UWP证书

Joh*_*ger 13 msbuild build-server win-universal-app visual-studio-2015 azure-devops

我设置我的Visual Studio Team Service帐户来克隆我的私有GitHub仓库,并在我对构建进行排队时构建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:\一个\ 1\S \源\应用\ myapp.WindowsUWP\myapp.csproj]

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(1778,5):警告APPX0102:项目中指定的指纹'58F2EA544193F6FC9F2737135570555B388E58D8'的证书不能在证书商店找到.请在项目文件中指定有效的指纹.

2> C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(1778,5):警告APPX0102:项目中指定的带有指纹'58F2EA544193F6FC9F2737135570555B388E58D8'的证书在证书商店中找不到.请在项目文件中指定有效的指纹.[C:\一个\ 1\S \源\应用\ myapp.WindowsUWP\myapp.csproj]

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(1778,5):警告APPX0107:指定的证书对签名无效.有关有效证书的详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=241478.2> C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(1778,5):警告APPX0107:指定的证书对签名无效.有关有效证书的详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=241478.[C:\一个\ 1\S \源\应用\ myapp.WindowsUWP\myapp.csproj]

这是6个编译中的最后一个项目.收到警告后,它会将所有输出文件复制到最终/ 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_1.0.0.0_x86_Debug_Test\MyApp_1.0.0.0_x86_Debug.appx
MyApp - > C:\ a\1\s\Source\Applications\MyApp.WindowsUWP\AppPackages\MyApp_1.0.0.0_x86_Debug_Test\MyApp_1.0.0.0_x86_Debug.appx C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(2382,5):错误APPX0104:证书文件找不到"MyApp_TemporaryKey.pfx".2> C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(2382,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(2382 ,5):错误APPX0102:在证书库中找不到项目中指定的指纹"58F2EA544193F6FC9F2737135570555B388E58D8"的证书.请在项目文件中指定有效的指纹.2> C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(2382,5):错误APPX0102:项目中指定的带有指纹'58F2EA544193F6FC9F2737135570555B388E58D8'的证书在证书商店中找不到.请在项目文件中指定有效的指纹.[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:指定的证书对签名无效.有关有效证书的详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=241478.2> C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(2382,5):错误APPX0107:指定的证书对签名无效.有关有效证书的详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=241478.[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中的清单编辑器生成证书,并为其分配密码,则构建服务器会因为不知道密码而失败.所以我无法建立我是否提供临时测试证书.

我们如何通过Visual Studio Team Services构建系统运行Windows 10 UWP应用程序?这是微软一直在推广的东西,所以我认为这是可以做到的事情.我似乎无法让UWP项目真正构建.

Edd*_*SFT 9

您可以生成未分配密码的证书.

或者在构建定义中添加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()
Run Code Online (Sandbox Code Playgroud)

请记住将"工作文件夹"设置为放置pfx文件的路径.