Hi,
I'm trying to create an add-in that dynamically creates a VCProject. Code below is from the exec function. _VCEngine is a private member variable type VCProjectEngine of Connect class.
VCProject p2; if (_VCEngine == null) { _VCEngine = new VCProjectEngineObject(); } try { p2 = (VCProject)_VCEngine.CreateProject("test"); p2.AddPlatform("Win32"); p2.AddConfiguration("Debug"); String mydocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); p2.ProjectFile = mydocs + "\\test"; p2.Save(); _applicationObject.Solution.AddFromFile(p2.ProjectFile, false); } catch (Exception e) { System.Console.WriteLine(e.Source); System.Console.WriteLine(e.Message); }
This works fine on the first call to the add-in. If I delete the project file and try again, I always get the following exception in the output window.
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in JDECodeAssist.dll
The exception message caught in the code says "Cannot access data for the desired project since it is in a zombie state." It occurs during the call to VCProject.Save().
I'm obviously new to this but tried the same strategy in VB and got the same result. Interestingly, if I create a macro that does something similar I do not have any problems. I'm wondering if I'm not doing something correctly with the VCProjectEngine.
Thanks in advance,
Craig