strong Assembly generieren in C#

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hallo!
    Bin ein C# Anfänger und versuche verzweifelt ein Assembly mit Strong Name zu erstellen. Ich habe ein Datei mit dem Programmcode (soll eine dll werden, also ohne Main Methode), sowie eine Datei AssemblyInfo.cs, das die benötigten Metadaten für mein Assembly enthält. Key ist bereits erstellt und eingetragen, ebenso wie Culture, Title und Version.

    In der Dokumentation steht, um eine dll zu erstellen muss ich nun mit dem Tool csc.exe folgendes eingeben:

    csc /out:myAssembly.dll /t:library myCode.cs

    Irgendwie kommt aber kein starkes Assembly heraus. Es scheint als ob die AssemblyInfo.csc ignoriert wird.

    Würde mich freuen, wenn mir jemand mit Erfahrung über diese Anfangsschwierigkeiten hinweghelfen könnte.

    mfg
    thomas b

  • Mit

    csc /out:myDll.dll /t:library myCode.cs AssemblyInfo.cs

    habe ich jetzt ein stong Assembly generieren können und dies auch im GAC mit

    gacutil /i myDll.dll

    installieren können. Jetzt möchte ich ein Programm, dass dieses Assembly nutzen möchte komplieren:

    csc /t:exe /r:"..\myDll\myDll.dll" /out:Application.exe Application_Class.cs

    bekomme jedoch immer die Fehlermeldung:

    warning CS1607: Assemblygenerierung -- Die verwiesene Assembly 'myDll.dll' ist eine lokalisierte Satellitenassembly

    Ich verstehe wirklich nicht warum, ich habe doch extra eine shared dll angelegt?

    Wer weiß weiter?

    mfg
    thomas b

  • Zitat von Luns


    csc /t:exe /r:"..\myDll\myDll.dll" /out:Application.exe Application_Class.cs



    hm sieht danach aus, als würdest wohl eine lokale version verwenden oder nicht? immerhin gibst ja einen relativen pfad an. wenn deine dll im gac drin ist, dann ist sie global verfügbar. es würd normalerweise /r:"myDll.dll" reichen.

  • Zitat von lerod

    hm sieht danach aus, als würdest wohl eine lokale version verwenden oder nicht? immerhin gibst ja einen relativen pfad an. wenn deine dll im gac drin ist, dann ist sie global verfügbar. es würd normalerweise /r:"myDll.dll" reichen.


    Leider funktioniert es mit relativem Pfad auch nicht. Da bekomme ich folgende Fehlermeldung:

    error CS0006: Die Metadatendatei 'myDll.dll' konnten nicht gefunden werden.

    Interessant ist aber, dass ich die dl aber im gac finden kann (mit gacutil /l myDll).

    :(

    danke trotzdem,
    mfg
    thomas b

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!