VCExpress aus C#-Programm öffnen

jokey2

Erfahrenes Mitglied
Hallo! [lange nicht mehr da gewesen]

Ich hab' mal wieder ein Problem, diesmal mit .NET und C#:

Ich möchte in einem C#-Programm (Windows Forms Anwendung) ein VCExpress öffnen, um automatisiert ein Visual C++ - Projekt zu erstellen. Ich verwende folgenden Code:

Code:
using EnvDTE;
using EnvDTE100;
using EnvDTE80;
using EnvDTE90;
using EnvDTE90a;
using Microsoft.VisualStudio.VCProjectEngine;
using Microsoft.VisualStudio.VCCodeModel;

...

Code:
        VCProject prj;
        VCAssemblyReference vcar;
        IVCCollection cfgs, tools;
        VCConfiguration cfg;
        VCCLCompilerTool tool;
        DTE2 myDTE = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VCExpress.DTE");
        prj = (VCProject)myDTE.Solution.Projects.Item(1).Object;
(aus http://msdn.microsoft.com/de-de/library/68shb4dw.aspx)
Beim Aufruf von GetActiveObject wird dann aber eine Ausnahme "COMException: Vorgang nicht verfügbar. (Ausnahme von HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))" geworfen.

VCExpress ist mit einem Projekt geöffnet! Kann mir einer sagen, was da nicht stimmt?

Viel lieber würde ich ja eine neue, leere Instanz von VCExpress öffnen und dann ein neues Projekt erzeugen oder ein Template-Projekt laden, das ich dann aus meinem Programm heraus bearbeiten kann. Aber dazu habe ich erst gar nichts gefunden. Vielleicht kann mir ja da auch jemand weiterhelfen.

Dank und Grüße!
 
Zurück