6

Я установил свою учетную запись Team Team Visual Studio, чтобы клонировать мое личное репо GitHub и создавать приложение Windows UWP в любое время, когда я ставил очередь в сборку. Клонирование работает без каких-либо проблем; компиляция каждого проекта (6) работает, кроме одного. Проект приложения UWP для Windows.VisualStudio.com не может загрузить временный сертификат 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: сертификат с отпечатком «58F2EA544193F6FC9F2737135570555B388E58D8», указанным в проекте, не может быть найден в хранилище сертификатов. Укажите файл в файле проекта.

2> C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (1778,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 (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: \ a \ 1 \ s \ Source \ Applications \ myapp.WindowsUWP \ myapp.csproj]

Это последний проект из 6 для компиляции. После получения предупреждений, он переходит к копированию всех выходных файлов в конечный каталог/bin. Затем, когда все будет сделано, вы получите те же сообщения, что и выше, но как ошибки на этот раз и не удается построить.

_GenerateAppxPackageFile: C: \ Program Files (x86) \ Windows Kits \ 10 \ Bin \ x64 \ MakeAppx.exe пак/л/ч sha256/ф 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.Цели (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" (цели по умолчанию) - FAILED. 1> Готовый проект здания «C: \ a \ 1 \ s \ Source \ MyApp.UWP.sln» (цели по умолчанию) - FAILED. Сборка НЕИСПРАВНО. "C: \ а \ 1 \ s \ Source \ MyApp.UWP.sln" (цель по умолчанию) (1) ->

Если я просто удалить сертификат (как я сделал в данном журнале ошибок) , он терпит неудачу, потому что он не может его найти. Если I генерирует сертификат с использованием редактора манифеста в VS и назначает ему пароль, сервер сборки терпит неудачу, потому что он не знает пароль. Поэтому я не могу заставить его создать, предоставляю ли я временный сертификат теста или нет.

Как мы должны запускать приложения Windows 10 UWP через систему сборки Team Team Visual Studio? Это то, что Microsoft поощряет какое-то время, поэтому я предположил, что это может быть сделано. Кажется, я не могу построить проект UWP.

ответ

4

Вы можете создать сертификат без назначенного пароля.

Или добавьте шаг 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.

2

По умолчанию .gitignore игнорирует любые файлы *.pfx. Поэтому он не добавляется в git. У меня была та же проблема, что на машине сборки нет файла *_StoreKey.pfx, поэтому сборка не удалась.

Для меня было решение установить *_StoreKey.pfx на сервер сборки. Тогда создание решения на сервере сборки будет успешным.

+0

Является ли угрозой безопасности добавить ключ магазина к источнику? Я имею в виду, что, когда это open-repo-репозиторий, это наверняка будет, но для частных/закрытых репозиториев это не должно быть проблемой, верно? – Patric

+1

@Patric Зависит от того, где находится этот приватный реестр. Любой удаленный объект следует рассматривать как угрозу безопасности. Я, теперь использую функцию «Защищенный файл» TFSO –