Ich möchte ein älteres Visual-Studio-2008-Projekt auf Visual Studio 2010 portieren, das selbst Interoperabilitätsassemblies für COM-Interop nutzt. Ich habe gehört, dass diese Assemblies für eine vereinfachte Verteilung in neue Projekte direkt einbindbar sein sollen, um deren Verteilung zu erleichtern. Wird das bei einer Portierung eines bestehenden Projektes automatisch gemacht oder muss ich die Änderung selbst machen und wenn ja, wie? Entspricht diese Funktion der Funktion des Hilfsprogrammes ILMerge, das Assemblies kombiniert?
Das Einbetten der Interop-Typen geht ganz einfach über den "References"-Zweig im Solution Explorer (wenn du VB benutzt musst du erst "View All Files" im Solution Explorer auswählen, um diesen Zweig zu sehen). Selektiere die Interop-dll, dann hast du im Properties-Dialog die Möglichkeit "Embed Interop Types" auszuwählen. Wenn du eine neue Referenz hinzufügst, wird diese Eigenschaft zumindest bei den PIA's von Microsoft Office automatisch auf "true" gesetzt.
Ich habe die deutsche Version von VS, habe hier der Vollständigkeit die deutschen Bezeichner ergänzt: References - Verweise View All Files - Alle Dateien anzeigen Solution-Explorer - Projektmappen-Explorer Properties-Dialog - Dialogfeld mit der Titelzeile Eigenschaften Embed Interop Types - Interoptypen einbetten (ggfs. auf True setzen) Und ansonsten funktioniewrt es wie gewünscht. Für die bestehenden Verweise eines portierten Projektes muss die Eigenschaft explizit auf True gesetzt werden.
Ich arbeite lieber mit der englischen Version. Zum einen aus Gewohnheit, aber auch weil die deutsche Übersetzung manchmal ein wenig sperrig und z.T. unverständlich ist.