| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: C#.net Assembly signieren (3698 mal gelesen)
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 05. Mrz. 2009 11:59 <-- editieren / zitieren --> Unities abgeben:
meine in C#.net erstellte DLL kann mit NETLOAD geladen werden, soweit kein Problem. Liegt die DLL jedoch auf einem serverlaufwerk, so bekomme ich beim Ausführen eine Security Fehler System.Security.SecurityException jetzt habe ich im Internet recherchiert, und habe was von wegen Signieren gelsen. Wenn ich jetzt mein Assembly signiere, bekomme ich jedoch den Fehler beim Kompilieren Fehler 1 Fehler beim Generieren der Assembly -- Die Assembly acdbmgd, auf die verwiesen wird, hat keinen starken Namen. Fehler 2 Fehler beim Generieren der Assembly -- Die Assembly acmgd, auf die verwiesen wird, hat keinen starken Namen. was ist ein starker Name, und wie verpassen ich den beiden Verweisen diesen 'starken Namen'
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 05. Mrz. 2009 12:33 <-- editieren / zitieren -->
Hi, hat nicht wirklich was mit der Signierung zu tun, sondern mit der Rechnereinstellung, dass FrameWork-basierte dll's nicht von einer 'nicht vertrauenswürden Quelle' geladen werden dürfen, und jedes Netzwerklaufwerk ist mal 'nicht vertrauenswürdig (könnte ja eine Netzwerkverbindung nach aussen sein). Ich installiere daher alle dll's lokal und kümmere mich im Login-Script um die lokale Aktualisierung. Eine Änderung der Vertrauensstellung eines Netzwerklaufwerks kannst Du IMHO nur mit einem Tool machen, dass im FrameWork 2.0 SDK enthalten ist (zu finden unter 'Verwaltung' und nennt sich '.NET Framework 2.0 Configuration'). Da dieses aber auf jedem Computer einzurichten ist, mach ich lieber die obere Variante. - alfred - ------------------ www.hollaus.at |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 05. Mrz. 2009 12:41 <-- editieren / zitieren --> Unities abgeben:
Aha, ok das erklärt schon mal, warum die DLL nicht vom Server läuft. Auf meinen ca. 160 Autocad rechnern in der Firma wird es sowieso auf die lokale Platte kopiert. dazu haben wir eine eigene Updateroutine, die das erledigt. Allerdings ca. 10 Rechner verwenden unsere Applikatio gemeinsam (weil hier gemeinsam entwickelt wird, Stammdaten gepfegt werden). Auf denen werde ich mal einen vertrauenswürdigen Netzwerkordner einrichten. Dank für Deine Erklärung. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Silvan01 Mitglied
Beiträge: 128 Registriert: 28.04.2009 AutoCAD Civil 2009 AutoCAD Civil 2010 Visual Studio 2008
|
erstellt am: 01. Apr. 2010 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für fuchsi
Hallo, ich weiß das Thema ist schon alt... Dennoch ich stoße auf ein ähnliches/ das gleiche Problem: Ich hab eine .dll erstellt und dieser mit dem SN-Tool von MS einen starken Namen verpasst. Wenn ich Sie jetzt wieder erstellen will kommt im Visual Studio 2008 allerdings die Fehlermeldung: "Unable to emit Assambly: die Assambly acdbmgd.dll, auf die verwiesen wird hat keinen starken namen". (Keine lokale Kopie beim Verweis eingestellt) Um aber die meine .dll irgendwie in den Globalen Assambly Cache einfügen zu müssen braucht sie doch den starken Namen? Oder wenn ichs richtig verstanden habe die 2. Möglichkeit auf jedem Rechner .Net Framework 2.0 SDK installieren und dann diesen Ablauf mit vertraunswürdigem Netzlaufwerk machen? Grüße Silvan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 01. Apr. 2010 12:39 <-- editieren / zitieren -->
Hi, >> Unable to emit Assambly: die Assambly acdbmgd.dll ... Und eben das ist das Problem (und wird es auch bleiben). Nur mal für mich zum Verstehen, der GAC liegt lokal, damit musst Du bei Updates sowieso auf lokal kopieren oder mit Tools Deine App in den GAC einfügen. Was macht es dann für einen Unterschied, nicht 'stark zu signieren' und einen normalen Kopiervorgang vom Netz auf lokal (Deiner Assembly/DLL) zu machen? >> Oder wenn ichs richtig verstanden habe die 2. Möglichkeit auf jedem Rechner >> .Net Framework 2.0 SDK installieren
Nicht unbedingt, >>>dieses<<< hätt ich mittlerweile gefunden, mich aber nicht wirklich damit auseinandergesetzt. Dieses müsste auf jedem Rechner drauf sein, wo Framework 2.0 (ohne SDK) installiert ist. Du kannst auch im Google nach CASPOL.EXE suchen, da gibt's jede Menge Info's (z.B. >>>dieses<<<). - alfred - ------------------ www.hollaus.at |
Silvan01 Mitglied
Beiträge: 128 Registriert: 28.04.2009 AutoCAD Civil 2009 AutoCAD Civil 2010 Visual Studio 2008
|
erstellt am: 01. Apr. 2010 12:46 <-- editieren / zitieren --> Unities abgeben: Nur für fuchsi
Hallo Alfred, Zitat: Nur mal für mich zum Verstehen, der GAC liegt lokal, damit musst Du bei Updates sowieso auf lokal kopieren oder mit Tools Deine App in den GAC einfügen. Was macht es dann für einen Unterschied, nicht 'stark zu signieren' und einen normalen Kopiervorgang vom Netz auf lokal (Deiner Assembly/DLL) zu machen?
< Bei einem Update kann ich doch einfach die Dll auf dem Netzlaufwerk ersetzen und die bleibt im GAC oder? Das andere sehe ich mir jetzt mal an. Dank im Vorraus Silvan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 01. Apr. 2010 12:54 <-- editieren / zitieren -->
Hi, >> Bei einem Update kann ich doch einfach die Dll auf dem Netzlaufwerk ersetzen >> und die bleibt im GAC oder? IMHO wird ab dem Zeitpunkt, ab dem Du an der Struktur Deines DLL's was änderst, eine erneute Registrierung Deines Moduls im GAC notwendig sein (damit auch jedesmal Admin-Rechte für ein Update erforderlich). Aber ev. irre ich, denn GAC ist nicht gerade mein Lieblingsthema. - alfred - ------------------ www.hollaus.at |
| Techniker Elektro- und MSR-Technik (m/w/d) | Als inhabergeführtes Familienunternehmen entwickeln, produzieren und vertreiben wir weltweit chirurgische Spitzentechnologie. Durch unsere zukunftsorientierte Unternehmensführung treiben wir den medizinischen Fortschritt voran und leben Werte wie Vertrauen, Respekt und Offenheit. Das ist die Basis unseres Erfolgs. Für unseren Standort in Tübingen suchen wir für unser Gebäudemanagement ... | Anzeige ansehen | Servicetechniker |
|
Silvan01 Mitglied
Beiträge: 128 Registriert: 28.04.2009 AutoCAD Civil 2009 AutoCAD Civil 2010 Visual Studio 2008
|
erstellt am: 01. Apr. 2010 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für fuchsi
|