Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  C#.net Assembly signieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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 (3697 mal gelesen)
fuchsi
Mitglied
Programmierer c#.net Datawarehouse


Sehen Sie sich das Profil von fuchsi an!   Senden Sie eine Private Message an fuchsi  Schreiben Sie einen Gästebucheintrag für fuchsi

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 05. Mrz. 2009 11:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


Sehen Sie sich das Profil von fuchsi an!   Senden Sie eine Private Message an fuchsi  Schreiben Sie einen Gästebucheintrag für fuchsi

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 05. Mrz. 2009 12:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 01. Apr. 2010 12:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fuchsi 10 Unities + Antwort hilfreich

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 01. Apr. 2010 12:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fuchsi 10 Unities + Antwort hilfreich

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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

Silvan01
Mitglied



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 01. Apr. 2010 13:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fuchsi 10 Unities + Antwort hilfreich

Hallo Nochmal,

Also ich hab unter Punkt eins des folgenden Links gelesen, dass für die Policy geschichte ein Starker Name vorhanden sein muss 
http://msdn.microsoft.com/en-us/library/771ss30w

So wies aussieht werd ich einfach eine kleine .bat schreiben, die ich in die Domäne reinhäng um beim Systemstart die dll auszutauschen...

Grüße

Silvan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz