Benutzer mit den meisten Antworten
COM-Verweis nach Build-Lauf mit MSBuild nicht gesetzt

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?
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
-
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
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
-
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