Diese blog post unten erläutert die genauen Schritte
Setup Key Files
Erstellen Sie ein passwortgeschütztes privates/öffentliches Schlüsselpaar (KeyPair.pfx) mithilfe des Visual Studio-Registers "Signieren" in den Eigenschaften eines Projekts. Extrahieren Sie den öffentlichen Schlüssel aus dem Schlüsselpaar und kopieren Sie ihn in eine separate Datei (Key.snk) sn.exe -p KeyPair.pfx Key.snk
Kopieren Sie die KeyPair.pfx auf Ihren Build-Server. Ich benutze C: \ Programme \ MSBuild \ KeyFile.pfx, weil auf sie dann von der MSBuild-Eigenschaft $ (MSBuildExtensionsPath) zugegriffen werden kann. Verschieben Sie die Datei "KeyPair.pfx" in einen sicheren sicheren Speicherbereich &. Bewahren Sie das Passwort ebenfalls geheim auf. Kopieren Sie die Datei Key.snk an einen freigegebenen Speicherort, an dem Ihre Entwickler darauf zugreifen können. Setup-Projekte für Signing
Für jede Assembly, die Sie signieren möchten:
- Öffnen Sie die Projekteigenschaften | Anmeldeseite
- Aktivieren Sie das Kontrollkästchen [X] Signiere die Baugruppe.
- Aktivieren Sie das Kontrollkästchen [X] Nur Verzögerungszeichen.
- Wählen Sie aus dem Dropdown-Menü für die Schlüsseldatei.
- Navigieren Sie zum freigegebenen Speicherort und wählen Sie den Schlüssel aus.snk-Datei
- Die snk-Datei wird in jedem Projektverzeichnis kopiert werden, dass Sie es zu
- Kopieren Sie die Schlüsseldatei von einem Ihrer Projekte in Projektmappen-Elemente zuweisen, so dass Sie es für den Testlauf Konfiguration verwenden können
Setup-Testlauf Konfiguration für Re-Signing
Wenn Sie Ihre Baugruppen Instrument wollen und Code Coverage für die Komponententests aktivieren, dann müssen Sie für die Wieder Unterzeichnung einer Schlüsseldatei angeben.
öffnen LocalTestRun.testrunconfig Auf der Code Coverage Registerkarte Datei, wählen Sie den Schlüssel als Re-Signing Key-Datei
Disable Strong-Namensüberprüfung auf Entwickler-Workstations
Da Sie Verzögerungs- sind Wenn Sie nur mit dem öffentlichen Schlüssel signieren, schlägt die Überprüfung der .NET CLR-Baugruppe bei lokal erstellten Assemblies fehl. Wenn die Überprüfung fehlschlägt, können Sie die Assemblys nicht ausführen oder debuggen.
Um dies in der Entwicklung zu umgehen, müssen Sie die Verifizierung starker Namen für Assemblys deaktivieren, die Sie lokal erstellen und mit Ihrem öffentlichen Schlüssel verzögern.
Öffnen Sie ein Visual Studio-Eingabeaufforderung Typ: sn.exe -tp Key.snk
Dies wird Ausgabe der Token einige Daten einschließlich.
Typ: sn -Vr *,YOUR_KEY_TOKEN
Beispiel: sn -Vr *,abcdef
Dies wird deaktivieren starke Überprüfung des Namens für alle mit Ihrem öffentlichen Schlüssel signiert Baugruppen. Sie können die aktuellen Einstellungen für stark mit Überprüfung des Namens Liste: sn -vl
Installation des Private Key dem Team beim Aufbau
Da der private Schlüssel (Key.pfx) Passwort geschützt ist - Team Build nicht zugreifen kann es. Dank Nagaraju Palla’s Blog: Using Password Protected Signing Keys in Team Build haben wir eine Lösung.
Logon zum Team Build-Server als Build-Dienstkonto öffnen Sie das Projekt in Visual Studio das Projektes in Visual Studio Erstellen Sie werden nach dem Passwort für die private Schlüsseldatei gefragt. Geben Sie das Kennwort ein Schließen Visual Studio & Abmelden Die private Schlüsseldatei wird jetzt im lokalen Zertifikatspeicher des Build-Dienstkontos installiert, und Team Build kann darauf zugreifen, ohne erneut nach dem Kennwort zu fragen. Dieser Zertifikatspeicher ist so sicher wie das Kennwort des Builddienstkontos. (Tipp: Machen Sie es genauso stark wie Ihr Keyfile Passwort)
aktualisiert TFSBuild.proj Script bauen
Team Build Zugang zum privaten Schlüsseldatei und das Passwort hat. Dies ermöglicht es, die Baugruppen vollständig zu signieren.
die Projekteinstellungen außer Kraft zu setzen und Team Build anweisen, die private Schlüssel-Datei zu verwenden, und partial-Signierung zu deaktivieren, müssen wir die CustomPropertiesForBuild Eigenschaft in TFSBuild.proj
Check-out Ihres TFSBuild.proj Build-Skript Suche einstellen für die Platzhalter-Eigenschaft (in der Nähe von Linie 130 in der Standardeinstellung) es Ersetzen sie mit dem folgenden: SignAssembly = true; Delay = false; AssemblyOriginatorKeyFile = $ (MSBuildExtensionsPath) \ Key.pfx Check-in, um die Änderungen einen Build Queue Überprüfen der Teambuild-Ausgabe
Um zu überprüfen, ob Team Build Ihre Assemblys korrekt benannt hat, können Sie das Dienstprogramm sn.exe verwenden, um die starke Namens-Signatur zu überprüfen.
Öffnen Sie ein Visual Studio-Eingabeaufforderung Typ: sn.exe -vf assemblyname.dll
Sie können auch alle Baugruppen gleichzeitig überprüfen:
Öffnen Sie ein Visual Studio-Eingabeaufforderung Typ : FOR% a IN (* .dll) DO sn.exe -vf% a
Große Antwort, Danke! aber ich laufe in einigen Schwierigkeiten, wenn ich versuche, das Projekt manuell zu erstellen, um den Schlüssel zu installieren. Ich habe nicht das "normale" Visual Studio installiert, nur tfs explorer und tfs build. Bedeutet das, dass ich Team Dev installieren muss, um mein Projekt nur einmal zu erstellen? – Sorskoot
Was ist die Fehlermeldung? –
Ich erhalte keinen Fehler. Außer dem MSB4018 von meiner Frage, wenn tfs das Gebäude machen lässt. Ich bin nach dem Öffnen des Projekts in Visual Studio auf dem Build-Server steckengeblieben. Das gesamte Projekt ist ausgegraut, weil ich nur die Shell mit den Build-Diensten auf dem Server installiert habe. Ich denke, ich beaufsichtige etwas hier;) – Sorskoot