none
COM-Verweis nach Build-Lauf mit MSBuild nicht gesetzt RRS feed

  • Frage

  • Hallo,

    ich habe eine Solution mit einem C#-Projekt, das die Option "Für COM-Interop registrieren" gesetzt hat. Fakt ist, dass diese COM-Komponente in der Registry richtig registriert wird, wenn ich im Visual Studio das Projekt neu erstelle.

    In der Kommandozeile bei Verwendung von "msbuild MySolution.sln /v:q /nologo /t:rebuild /p:configuration=Release" wird die Komponente nicht registriert. Fehlt da nocht etwas, oder warum ist der COM-Verweis nach dem erfolgreichen Übersetzne nicht vorhanden?

    Donnerstag, 21. Juli 2011 13:21

Antworten

  • Hallo SP.,

    im Prinzip kann und macht MsBuild die COM-Registrierung - setzt sie auf dem Rechner der Ausführung um.
    Nun kann es aber noch an vielen anderen Sachen liegen. Beachte ggf. auch die "Assembly COM-sichtbar zu machen" (ComVisible - zumindest die gewünschten Klassen/Interfaces)

    Wichtig ist u.a. auch, dass Du das MsBuild-Script mit administrativen Rechten laufen läßt!

     


    ciao Frank
    • Als Antwort markiert SPDeveloperXP Freitag, 22. Juli 2011 09:03
    Freitag, 22. Juli 2011 07:33
  • Das Problem war etwas versteckt, aber ist jetzt gelöst.

    Im C#-Projekt war die Komponente als COM-Visible definiert. Was im Eigenschaften-Dialog des Projekts allerdings nicht ganz intuitiv ist, sind die separaten Einstellmöglichkeiten für "Debug" und "Release". Es war so, dass wohl in den Debug-Einstellungen die Komponente COM-Visible war, aber im Release nicht. Wenn man oben in der Eigenschaften-Maske auf Release umgestellt hat, war der COM-Visible Haken verschwunden.

    Jetzt da es in beiden auf COM-Visible steht, funktioniert alles!

     

    Danke für Deine Hilfe!

    • Als Antwort markiert SPDeveloperXP Freitag, 22. Juli 2011 09:03
    Freitag, 22. Juli 2011 09:03

Alle Antworten

  • Hallo SP.,

    im Prinzip kann und macht MsBuild die COM-Registrierung - setzt sie auf dem Rechner der Ausführung um.
    Nun kann es aber noch an vielen anderen Sachen liegen. Beachte ggf. auch die "Assembly COM-sichtbar zu machen" (ComVisible - zumindest die gewünschten Klassen/Interfaces)

    Wichtig ist u.a. auch, dass Du das MsBuild-Script mit administrativen Rechten laufen läßt!

     


    ciao Frank
    • Als Antwort markiert SPDeveloperXP Freitag, 22. Juli 2011 09:03
    Freitag, 22. Juli 2011 07:33
  • Das Problem war etwas versteckt, aber ist jetzt gelöst.

    Im C#-Projekt war die Komponente als COM-Visible definiert. Was im Eigenschaften-Dialog des Projekts allerdings nicht ganz intuitiv ist, sind die separaten Einstellmöglichkeiten für "Debug" und "Release". Es war so, dass wohl in den Debug-Einstellungen die Komponente COM-Visible war, aber im Release nicht. Wenn man oben in der Eigenschaften-Maske auf Release umgestellt hat, war der COM-Visible Haken verschwunden.

    Jetzt da es in beiden auf COM-Visible steht, funktioniert alles!

     

    Danke für Deine Hilfe!

    • Als Antwort markiert SPDeveloperXP Freitag, 22. Juli 2011 09:03
    Freitag, 22. Juli 2011 09:03