Ich versuche einige Verbesserungen für das tSQLt-Framework vorzunehmen und bin größtenteils fertig, kann dies aber nicht, da nur wenige Tests in Bezug auf das Zertifikat, das ich nicht berührt habe, immer noch fehlschlagen:
[exec] |18|[InstallExternalAccessKeyTests].[test creates correct certificate in master] | 120|Failure|
[exec] |19|[InstallExternalAccessKeyTests].[test tSQLt can be set to EXTERNAL ACCESS after InstallExternalAccessKey executed] | 333|Failure|
[exec] |20|[InstallExternalAccessKeyTests].[test tSQLtExternalAccessKey install data is signed with same key as tSQLt.clr] | 10|Failure|
Der fehlerhafte Fehler ist:
Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil
Ich werde versuchen, meinen Installationsprozess zu beschreiben.
Ich habe diese Framework-Quellen anhand der folgenden Richtlinie installiert . Danach konnte ich das Projekt jedoch nicht starten, da es mit den folgenden Fehlern fehlschlug und die gesamte Problemlösung in diesem SO-Beitrag durchgeführt wurde :
[exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2482,5): Fehler MSB3325: Die folgende Schlüsseldatei kann nicht importiert werden: tSQLtOfficialSigningKey.pfx. Die Schlüsseldatei ist möglicherweise passwortgeschützt. Um dies zu korrigieren, versuchen Sie, das Zertifikat erneut zu importieren, oder installieren Sie das Zertifikat manuell in den Strong Name CSP mit dem folgenden Schlüsselcontainernamen: VS_KEY_C20B79DE0583A5C1 [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj] [exec]
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2482,5): Fehler MSB3321: Der Import der Schlüsseldatei "tSQLtOfficialSigningKey.pfx" wurde abgebrochen. [E: \ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj]
Um dieses Problem zu lösen, habe ich für jedes Projekt ohne Kennwort neue Schlüssel erstellt:
Ich sehe, dass es snk
Datei erstellt hat, nicht als Original pfx
. Danach habe ich versucht, den Build erneut auszuführen, und er ist mit den oben genannten Fehlern fehlgeschlagen.
quelle
tsql
Framework verwenden? Es enthält so viel Code in Ihrem Datenbankcode, viele SQL CLR-Funktionen. Ich habe versucht, wenn für 2 große Projekte im Laufe des Jahres zu verwenden, und es scheitert schlecht. Es ist besser, einen eigenen Test mit .net oder / und SQL zu erstellen und diese über ein Tool auszuführen, um eine parallele Ausführung zu erhalten.Antworten:
Wie hier angegeben
Der folgende Fehler kann beim Erstellen von Projekten für Microsoft Visual Studio 2008 - 2015 auftreten.
Fehler : Die folgende Schlüsseldatei kann nicht importiert werden: mykey.pfx. Die Schlüsseldatei ist möglicherweise passwortgeschützt.
LÖSUNG 1:
Klicken Sie auf Start> Alle Programme> Microsoft Visual Studio> Visual Studio-Tools> Visual Studio-Eingabeaufforderung. Geben Sie den folgenden Befehl ein
Hinweis : Die Datei sn.exe mit dem Parameter -i installiert ein Schlüsselpaar aus einem Schlüsselcontainer mit dem Namen. Importieren Sie die PFX-Datei erneut in Visual Studio.
LÖSUNG 2:
Öffnen Sie die Projekteigenschaften.
Klicken Sie auf den Abschnitt Signieren.
Visual Studio fordert Sie nun zur Eingabe des Kennworts auf. Geben Sie es ein. Möglicherweise wird eine weitere Fehlermeldung angezeigt: "Es wurde versucht, auf ein nicht vorhandenes Token zu verweisen."> Sie können diese Meldung einfach ignorieren.
Klicken Sie auf die Schaltfläche "Passwort ändern"
LÖSUNG 3:
Holen Sie sich eine Kopie von openssl für Windows unter slproweb.com oder verwenden Sie eine Linux-Box, wie sie alle haben. Führen Sie die folgenden Schritte aus, um in eine Schlüsseldatei zu exportieren
Dann können Sie in den Projekteigenschaften die PFX-Datei verwenden
LÖSUNG 4:
Die endgültige Lösung für dieses Problem besteht darin, Visual Studio zum Signieren aufzugeben und stattdessen Signtool zu verwenden.
Aktualisierte Antwort
Es scheint, dass Ihr TFS Build Service-Konto keine erforderliche Berechtigung für den Zugriff auf die signingKey.pfx auf dem Build Agent-Computer hat. Stellen Sie sicher, dass Sie diese Datei zuerst auf dem Build Agent-Computer haben.
Befolgen Sie dann die folgenden Schritte:
sn –i signingKey.pfx VS_KEY_EFCA4C5B6DFD4B4F
eingeben (Stellen Sie sicher, dass Sie den Schlüsselnamen verwenden, der in der Fehlermeldung angezeigt wird.)Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie das Kennwort für die pfx-Datei ein
Dann bauen Sie es wieder auf
Hinweis: Wenn Sie Visual Studio nicht als Administrator ausführen, versuchen Sie dies ebenfalls.
Weitere Details finden Sie in der Antwort von Brandon Manchester. Die Schlüsseldatei 'blah.pfx' kann nicht importiert werden - Fehler 'Die Schlüsseldatei ist möglicherweise passwortgeschützt.'
quelle
Sign the ClickOnce manifests
ist deaktiviert und deaktiviert. Ich versuche, alles lokal zu machen, daher gibt es keine Berechtigungsprobleme (ich habe versucht, diese Befehlszeile unter dem Administrator