2009-01-05 81 views
11

我有很多項目,而且我沒有掌握所有內容的主解決方案。我想要一個的原因是重構。從CSProj列表中生成解決方案文件

所以我想知道是否有人知道,建立一個解決方案文件的自動方式。手動添加所有項目並不可行。

+0

有一點需要記住的是,您的一些項目可能會引用編譯的dll而不是創建這些dll的項目。在這種情況下,Visual Studio內置的重構將不會跨越邊界。因此,如果實用程序方法簽名發生更改,則引用實用程序dll而不是項目的應用程序將不會自動更改爲匹配。 – Pedro 2009-10-16 01:22:38

回答

-3

創建一個空的解決方案,然後將&所有的項目拖放到它在一次?

+0

原來的問題表明,手動添加它們是不可行的。 – Pedro 2009-10-16 01:16:13

2

您可以嘗試this(下面的代碼來自這個網站,所有網站。)

但是,如果它不工作,它需要太多的時間來調試,我建議去了手動添加一次的痛苦。只是把一些好音樂,去爲它... :)

@oefe我不認爲VS.NET允許你D & D項目進入解決方案,我試過一次。

Imports EnvDTE 
Imports EnvDTE80 
----------------------------------------------------------------------------------- 
    Private Shared Sub DoStuff() 

     Dim filePath As String = "c:\temp" 

     Dim fileName As String = "bld_TestApp.sln" 

     Dim fullName As String = Path.Combine(filePath, fileName) 

     Dim objType As Type 

     Dim objDTE As EnvDTE.DTE 

     objType = Type.GetTypeFromProgID("VisualStudio.DTE.8.0") 

     objDTE = DirectCast(System.Activator.CreateInstance(objType), EnvDTE.DTE) 

     Console.WriteLine(objDTE.Name + ":" + objDTE.Version) 


     objDTE.Solution.Create(filePath, fileName) 

     objDTE.Solution.AddFromFile("C:\Common.vbproj") 

     objDTE.Solution.SaveAs(fullName) 


    End Sub 
-2

查看nAnt,Ant的.NET端口。它有能力做這樣的事情,或沒有它的構建。

+0

這非常有趣:我已經給出了最好的解決方案,但是我的評價最低,並且沒有一個解釋什麼是#$%##任何人都在想什麼。同時,最糟糕的解決方案(涉及一些時髦的自定義代碼)會得到提升。 – 2009-04-02 21:29:40

+0

這裏只是猜測,但如果您要提供合併所有項目的確切NAnt任務,您的答案將更有幫助。 – Pedro 2009-10-16 01:14:41

-2

我以編程方式使用文本操作創建解決方案文件的.vcproj文件(但CS/VB將工作一樣的)。如果你在記事本或其他方面打開一個解決方案文件,如何做到這一點並不難。

不幸的是我不能提供代碼,因爲它是專有的。

相關問題