2010-02-12 4 views
11

Ich verwende Visual Studio 2008 und ich habe eine Lösung, die mehrere Projekte enthält. Ich habe 1 snk, um meine Assemblys zu signieren, und das lebt in einem Lösungsordner.Mehrere Projekte müssen 1 SNK-Datei verwenden

Ich habe die Snk mit jedem meiner Projekte verknüpft, aber jetzt, wenn ich versuche, mein Projekt mit diesem verknüpften Snk zu signieren, kann ich die Snk-Datei mit dem Dateidialogfeld nicht finden.

Habe ich hier einen Schritt verpasst?

Solution 
    > Solution Folder 
     MyKey.snk 
    > Project X 
     > _LinkedFiles 
      MyKey.snk (physical file doesn't appear here but shows in VS) 
     > ... 

Antwort

2

Nun, nicht viel Reaktion hier, aber ich fand eine Lösung, mit der ich mich wohl fühlte. Ich habe eine ProductAssemblyInfo, die sich in einem Lösungsordner befindet, aber mit jedem Projekt wie folgt verknüpft ist.

Solution 
    > Build (Solution Folder) 
     MyKey.snk 
     ProductAssemblyInfo.cs 
    > Project X 
     > _LinkedFiles 
      ProductAssemblyInfo.cs 
     > ... 

Die ProductLevelAssembly enthält die folgende Zeile:

[assembly: AssemblyKeyFile("../../Build/MyKey.snk")] 

auf diese Weise die Schlüsseldatei nie in jedes Projekt kopiert wird, aber jede Einheit noch durch den Schlüssel signiert ist.

+1

AssemblyKeyFile ist veraltet – Nick

0

Sie verknüpfen es nicht, nur Kopien davon machen. Wenn Sie den SNK neu erstellen, müssen Sie ihn erneut in alle Projekte kopieren, aber die Wahrscheinlichkeit dafür ist sehr gering. Tatsächlich ändern wir nur SNKs, wenn Hauptversionsnummern geändert werden.

Auch wenn Sie eine Datei verknüpfen, verknüpfen Sie sie in der Lösungsdatei und erstellen keine Kopie, die beide Orte gleichzeitig bearbeitet. Der Browse-Dialog zeigt nur die Dateien an, die auf dem Laufwerk vorhanden sind.

+0

Diese Antwort wird technisch funktionieren. Aber denken Sie daran, Ihre PRIVATE-Schlüsseldatei (.SNK) ist wie die Sache, die sagt "Wir sind, wer wir sagen, wir sind" ...... also Kopien davon könnte ein Sicherheitsrisiko sein. Also stimme ich der Antwort zu, aber es kommt mit einem Disclaimer (IMHO). – granadaCoder