2011-07-26 56 views
2

我試圖創建VS2010解決方案並從獨立應用程序(而不是加載項)添加項目。我可以創建VS2010的實例,但我無法確定如何正確創建項目......我只能找到如何使用EnvDTE80對象創建項目的示例,該對象稍後會導致出現異常,因爲該項目文件的格式較早,需要升級。我有這樣的:使用「VisualStudio.DTE.10.0」創建解決方案並添加項目

EnvDTE80.DTE2 dte2; 
object obj; 
System.Type t; 
t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true); 
obj = System.Activator.CreateInstance(t, true); 
dte2 = (EnvDTE80.DTE2)obj; 

我正在尋找的是類似「EnvDTE100.DTE2相當於」但不知道怎麼去那裏。

感謝

+0

完整的源代碼的最終解決方案? – Kiquenet

回答

1

我覺得我做類似的事情,我有一個創建從我在VS2010創建的模板的解決方案,並加載兩個項目的應用程序。你說得對,它似乎一切都仍然使用EnvDTE80,即使在VS2010,但後來我們用它來創建一個2010解決方案:

System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0"); 
Object obj = System.Activator.CreateInstance(type, true); 
EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)obj; 
EnvDTE100.Solution4 soln = (EnvDTE100.Solution4)dte2.Solution; 

然後你就可以調用SOLN對象的方法來創建項目(在我的情況下它的AddFromTemplate)。

4

您不必通過DTE對象去。對象的處理solution4這是不同的,你應該這樣做

Type latestSolution = Type.GetTypeFromProgID("VisualStudio.10.0", true); 
EnvDTE100.Solution4 vsSolution = (EnvDTE100.Solution4)Activator.CreateInstance(latestSolution, true); 
相關問題