RegAsm error: Failer to load ... because is not a valid .NET assembly

Reticent

Erfahrenes Mitglied
Hallo,


tja, das ist eigentlich mein Problem schon. Ich habe in C# eine DLL erstellt, bei meinem VS2005 habe ich den Häckhen für COM-Interop registrieren aktiviert und es läuft auf meinem PC alles wunderbar.

Wenn ich aber die DLL auf einem anderen Komputer nutzen möchte muss ich meine DLL doch mit RegAsm dort registrieren und am bessten noch ins GAC rein tun.

Wenn ich auf dem Ziel- Rechner den Befehl : regasm MyLib.DLL ausführe bekomme ich immer die Fehlermeldung: RegAsm error: Failer to load ... because is not a valid .NET assembly

Was is n das? Bei Google habe ich nix gutes dazu gefunden, nur ein Paar andere gleiche Fragen ohne Antwort. Wie macht denn das VS2005 selber, wenn das Häckhen aktiv ist? Mit welchem Programm.

Anscheinend geht die registrierung mit RegAsm und VS2005 C# DLL nicht. Weiss da jemand Bescheid deswegen?


Danke.
 
Hi,

Also den Fehler kenn ich nicht, aber hast du schon mal die einzelnen Parameter ausprobiert von RegAsm.exe.
Ich meine, dass man noch /tlb oder so aufrufen muss. Schau dir am besten mal die einzelnen Parameter an.

PS: In den GAC musst du die Assembly nicht legen. Du willst sie ja für COM registrieren und COM kennt den GAC garnicht.
 
Hallo Reticent,

also ich habe damit keine Probleme, weder mit VS2003 noch mit VS2005.

Ist denn auf dem Zielrechner das richtige Framework (also 2.0) installiert ?
Die Regasm.exe in .NET 1.1 VS2003 ist eine andere als die in NET 2.0 VS2005.

Funktioniert denn der Aufruf bei deinem Rechner in der Console mit der DLL ?

Achso... der Aufruf regasm MyLib.DLL kann so nicht klappen. Die dll kann auch
nicht so einegunden werden sondern eine tlb.

Code:
c:\windows\microsoft.net\framework\v2.0.50727\regasm.exe mylib.dll /tlb:mylib.tlb

Die Pfade der dll noch anpassen !

Gruß
Jens
 
Hallo,

ich weiß, das Thema ist schon ein bisschen älter aber ich habe ein ähnliches Problem zu dem ich keine Lösung im Netz gefunden habe.

RegAsm : error RA0000 : Die Datei oder Assembly ... Version ...., Culture=Neutral, PublicKeyToken=.... oder eine Abhängigkeit davon wurde nicht gefunden. Fehler bei der Strong Name = Überprüfung. (Ausnahme von HRESULT: 0x8013141A)

Aufruf ist:

HTML:
c:\WINDOWS\Microsoft.NET\RegAsm.exe MathFuncsAssembly.dll /tlb:MathFuncsAssembly.tlb

Der Aufruf ist doch so richtig?

Vielen Dank im voraus!

Grüße
Christopher
 
Zuletzt bearbeitet:
Unter Windows 7 hatte ich auch das Problem, dass meine .NET Assembly angeblich keine .NET-Assembly sei. Das Problem war, das unter Win7 (wahrscheinlich auch Vista) ein Administrator nicht ganz Administrator ist. Man kann Programme (z.B. die Batch-Datei, welche die Registrierung mit RegAsm vornimmt) "Als Administrator" ausführen. Und in diesem Fall reicht auch das nicht. Die nächste Stufe der Administration ist eine Eingabeaufforderung "Als Administrator" auszuführen und dort die Registrierung vorzunehmen.
Das hat bei mir dann funktioniert.

Ich hab lange gesucht. Hoffe das hilft jemandem weiter.
 
Vielen Dank für den letzten Eintrag.

Ich bin fast an Windows 7 mit seine sch.... Berechtigungsprüfung verzweifelt. Kennt vielleicht jemand den genauer Hintergrund warum man das so machen muss, nur der Neugier halber?
 

Neue Beiträge

Zurück