2010-12-07 4 views
13

Ich versuche, eine Assembly mit einem starken Namen zu unterzeichnen von der Führung von hier folgenden: http://msdn.microsoft.com/en-us/library/xc31ft41.aspxWas ist der Modulname bei der Verwendung von al.exe zum Signieren einer Assembly mit einem starken Namen?

Der Schlüssel Anweisung ist:

al /out:<assembly name> <module name> /keyfile:<file name> 

Und es sagt

module name is the name of the code module used to create the assembly

I don‘ Ich verstehe, was das bedeutet. Im wörtlichen Sinne würde ich das Obige als eine Komponente von csc.exe interpretieren (d. H. Es hat die Assembly erzeugt), aber offensichtlich ist dies in diesem Zusammenhang unsinnig.

Also zuerst, was bezieht sich darauf, und zweitens (um mein Meta-Lernen zu unterstützen), wie würde man darüber gehen, zu argumentieren, was es ist? Ich bekomme den Eindruck, angesichts der knappen Dokumentation, dass es für mich offensichtlich oder intuitiv sein sollte, aber derzeit nicht.

Ich habe versucht, einige zufällige Namen (zB blah.blah) spezifiziert, aber diese Fehlermeldung erhalten:

ALINK: Fehler AL1047: Fehler beim Importieren der Datei ‚C: \ path \ to \ proj \ bin \ Debug \ blah. blah '- Das System kann die angegebene Datei nicht finden.

Edit: Bei weiterem Lesen habe ich den Eindruck, der Modulname ist der Name des Codes, aber ich hatte kein Glück bei der Angabe der .cs-Dateien entweder - mir wurde gesagt Database file is corrupt and may not be usable.

Antwort

6

Baugruppe besteht aus Modulen (.netmodule Dateien) hergestellt, die durch Kompilieren Quellen (CS-Dateien) erzeugt werden. Der Assembly-Linker ist verantwortlich für das Verpacken von Modulen in Baugruppen. Also, wenn Sie zwei Quelldateien class1.cs und class2.cs:

csc /t:module class1.cs 
csc /t:module class2.cs 
al /out:assembly.dll /t:library class1.netmodule class2.netmodule 

Für die beste Behandlung, wie die CLR beschäftigt sich mit Modulen, Manifeste und Baugruppen finden Richter.

1

Sehen Sie, ob Sie mit diesem Link finden können, was Sie suchen. Wenn nicht, könnte ich für weitere Forschung helfen. Im Moment habe ich nicht viel Freizeit, aber das kann sich innerhalb der nächsten Stunde ändern.

Sign assembly with strong name using al /out command

1

Klicken Sie in VS2010 auf Projekteigenschaften -> Registerkarte Signieren -> Aktivieren Sie diese Baugruppe signieren.

Geben Sie einen starken Namenschlüssel ein oder erstellen Sie ihn.

Verwandte Themen