6

Konfiguruję moje konto usługi Visual Studio Team Service, aby sklonować moje prywatne repozytorium GitHub i zbudować aplikację Windows UWP za każdym razem, gdy ustawię kolejkę w kolejce. Klonowanie działa bez żadnych problemów; kompilacja każdego projektu (6) działa z wyjątkiem jednego. Projekt aplikacji Windows UWP.VisualStudio.com nie może załadować tymczasowego certyfikatu UWP podczas kompilacji

otrzymuję następujące ostrzeżenia, gdy serwer kompilacji kompiluje aplikację:

C: Program Files \ (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (1778,5): Ostrzeżenie APPX0104: Nie znaleziono pliku certyfikatu "myapp_TemporaryKey.pfx".

2> C: Program Files \ (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (1778,5): ostrzeżenie APPX0104: file Certyfikat '' nie myapp_TemporaryKey.pfx uznany. [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): Ostrzeżenie APPX0102: Nie można znaleźć certyfikatu o kciuku "58F2EA544193F6FC9F2737135570555B388E58D8" podanego w projekcie w bazie certyfikatów. Proszę podać poprawny odcisk kciuka w pliku projektu.

2> C: Program Files \ (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (1778,5): ostrzegania APPX0102: Świadectwo z odciskiem palca '58F2EA544193F6FC9F2737135570555B388E58D8', że jest określony w projekcie nie można znaleźć w magazynie certyfikatów. Proszę podać poprawny odcisk kciuka w pliku projektu. [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): Ostrzeżenie APPX0107: Określony certyfikat nie jest ważny do podpisania. Aby uzyskać więcej informacji o ważnych certyfikatach, zobacz http://go.microsoft.com/fwlink/?LinkID=241478. 2> C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (1778,5): ostrzeżenie APPX0107: Określony certyfikat nie jest ważny do podpisania. Aby uzyskać więcej informacji o ważnych certyfikatach, zobacz http://go.microsoft.com/fwlink/?LinkID=241478. [C: \ a \ 1 \ s \ Źródło \ Aplikacje \ myapp.WindowsUWP \ myapp.csproj]

To jest ostatni projekt z 6 do kompilacji. Po otrzymaniu ostrzeżeń, kontynuuje kopiowanie wszystkich plików wyjściowych do katalogu final/bin. Następnie, kiedy to wszystko zrobi, zgłasza te same wiadomości co powyżej, ale tym razem jako błędy i nie powiedzie się.

_GenerateAppxPackageFile: C: \ Program Files (x86) \ Windows Zestawy \ 10 \ bin \ 64 \ MakeAppx.exe paczka/l/godz sha256/f obj \ x 86 \ debugowania \ 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 \ Źródło \ 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): Błąd APPX0104: Nie znaleziono pliku certyfikatu "MyApp_TemporaryKey.pfx". 2> C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (2382,5): error APPX0104: Nie znaleziono pliku certyfikatu "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.Obiekty docelowe (2382,5): Błąd APPX0102: Nie można znaleźć certyfikatu z kodem odcisku "58F2EA544193F6FC9F2737135570555B388E58D8" podanym w projekcie w bazie certyfikatów. Proszę podać poprawny odcisk kciuka w pliku projektu. 2> C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (2382,5): błąd APPX0102: Certyfikat z kodem "58F2EA544193F6FC9F2737135570555B388E58D8", który jest określony w projektu nie można znaleźć w magazynie certyfikatów. Proszę podać poprawny odcisk kciuka w pliku projektu. [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): Błąd APPX0107: Określony certyfikat nie jest prawidłowy do podpisania. Aby uzyskać więcej informacji o ważnych certyfikatach, zobacz http://go.microsoft.com/fwlink/?LinkID=241478. 2> C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (2382,5): error APPX0107: Określony certyfikat nie jest prawidłowy do podpisania. Aby uzyskać więcej informacji o ważnych certyfikatach, zobacz http://go.microsoft.com/fwlink/?LinkID=241478. [C: \ a \ 1 \ s \ Source \ Applications \ MyApp.WindowsUWP \ MyApp.csproj] 2> Gotowe projekty budowlane "C: \ a \ 1 \ s \ Source \ Applications \ MyApp.WindowsUWP \ MyApp.csproj" (domyślne cele) - NIEPOWODZENIE. 1> Gotowy projekt budowlany "C: \ a \ 1 \ s \ Source \ MyApp.UWP.sln" (domyślne cele) - NIEPOWODZENIE. Build FAILED. "C: \ a \ 1 \ s \ Source \ MyApp.UWP.sln" (domyślnie docelowy) (1) ->

Gdybym tylko usunąć certyfikat (jak ja w tym konkretnym dzienniku błędów) , zawiedzie, ponieważ nie może go znaleźć. Jeśli I wygeneruje certyfikat za pomocą edytora manifestu w VS i przypisze mu hasło, serwer kompilacji nie powiedzie się, ponieważ nie zna hasła. Więc nie mogę go zbudować, czy dostarczę tymczasowy certyfikat testu, czy nie.

W jaki sposób mamy uruchamiać aplikacje Windows 10 UWP za pośrednictwem systemu kompilacji Visual Studio Team Services? To jest coś, co Microsoft promuje od pewnego czasu, więc założyłem, że to jest coś, co można zrobić. Nie mogę sprawić, że projekt UWP rzeczywiście zostanie zbudowany.

Odpowiedz

4

Można wygenerować certyfikat bez przypisanego hasła.

Lub dodaj krok PowerShell do definicji kompilacji, aby zaimportować certyfikat chroniony hasłem. Poniżej znajduje się skrypt PowerShell można użyć:

$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() 

Pamiętaj, aby ustawić „Folder roboczy” do katalogu, w którym umieszczony plik pfx.

2

Domyślnie .gitignore ignoruje dowolny plik *.pfx. Dlatego nie jest dodawany do git. Miałem ten sam problem, że maszyna kompilująca nie ma pliku *_StoreKey.pfx i dlatego kompilacja się nie powiodła.

Dla mnie rozwiązaniem było zainstalowanie *_StoreKey.pfx na serwerze kompilacji. Następnie budowanie rozwiązania na serwerze kompilacji powiedzie się.

+0

Czy dodanie klucza sklepu do źródła jest zagrożeniem bezpieczeństwa? Chodzi mi o to, że jeśli jest to open source-repo, to z pewnością byłoby to dla prywatnych/zamkniętych repozytoriów, to nie powinno być problemem, prawda? – Patric

+1

@Patric Zależy od lokalizacji tego prywatnego repro. Wszystko, co zdalne, należy traktować jako zagrożenie bezpieczeństwa. Ja, na razie używaj funkcji 'Secure file' pliku TFSO –