2009-01-05 21 views
11

Tôi đã có rất nhiều dự án và tôi không có giải pháp chính với mọi thứ trong đó. Lý do tôi muốn một là để tái cấu trúc.Tạo Tệp Giải pháp Từ Danh sách CSProj

Vì vậy, tôi đã tự hỏi liệu có ai biết cách tự động xây dựng tệp giải pháp hay không. Thêm thủ công tất cả các dự án chỉ là không khả thi.

+0

Một điều cần ghi nhớ là một số dự án của bạn có thể tham khảo các dll đã biên dịch thay vì các dự án đã tạo các dll đó. Khi đó là trường hợp, VisualStudio được xây dựng trong refactorings sẽ không vượt qua đó boundry. Vì vậy, nếu một chữ ký phương thức tiện ích được thay đổi, một ứng dụng tham chiếu đến dll tiện ích thay vì dự án sẽ không được tự động thay đổi để phù hợp. – Pedro

Trả lời

8

Và bây giờ tôi đã cập nhật tiện ích của tôi (nêu trên) để hỗ trợ tạo thư mục giải pháp: http://bloggingabout.net/blogs/vagif/archive/2009/12/03/utility-to-generate-solution-files-can-now-create-solution-folders.aspx

+0

Bạn có thể cung cấp mã cho điều đó không? Bằng cách đó, những người khác có thể mở rộng nó (ví dụ: nếu họ có tệp vbproj hoặc một cái gì đó.) –

+2

Mã nguồn có sẵn tại BitBucket: https://bitbucket.org/object/solutionmaker/ –

-3

Tạo giải pháp trống, sau đó kéo & thả tất cả các dự án của bạn vào cùng một lúc?

+0

Câu hỏi ban đầu nói rằng việc thêm chúng theo cách thủ công là không khả thi. – Pedro

2

Bạn có thể thử this (mã dưới đây xuất phát từ trang web này, tất cả các trang web ..)

Nhưng nếu nó không hoạt động và nó sẽ mất quá nhiều thời gian để gỡ lỗi, tôi sẽ đề nghị đi cho nỗi đau khi thêm chúng theo cách thủ công một lần. Chỉ cần đặt một số âm nhạc tốt và đi cho nó ... :)

@oefe Tôi không nghĩ VS.NET cho phép bạn D & D dự án thành giải pháp, tôi đã thử một lần.

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

Kiểm tra nAnt, cổng .NET của Ant. Nó có khả năng làm những thứ như thế này, hoặc để xây dựng mà không có nó.

+0

Điều này khá thú vị: Tôi đã đưa ra giải pháp tốt nhất, nhưng tôi đã được bình chọn nhiều nhất, và không phải là một bình luận duy nhất để giải thích những gì mà # #% ## đang nghĩ đến. Trong khi đó, các giải pháp tồi tệ nhất (liên quan đến một số mã tùy chỉnh funky) được upvoted. –

+0

Chỉ cần đoán ở đây, nhưng câu trả lời của bạn sẽ hữu ích hơn nhiều nếu bạn cung cấp nhiệm vụ chính xác của NAnt để hợp nhất tất cả các dự án. – Pedro

+0

Từ những gì tôi hiểu, nAnt có thể thay thế các tệp giải pháp, nhưng tôi không biết cách tạo tệp giải pháp - mà tôi thực sự là người hâm mộ nhưng có thể không phù hợp với nhu cầu của mọi người. –

-2

Tôi đã lập trình bằng cách sử dụng thao tác văn bản tạo tệp giải pháp cho tệp .vcproj (nhưng cs/vb sẽ hoạt động giống nhau). Nó không phải là thực sự khó để tìm ra cách để làm điều đó nếu bạn mở một tập tin giải pháp trong notepad hoặc bất cứ điều gì.

Rất tiếc, tôi không thể cung cấp mã vì nó là độc quyền.

3

Vagif Abilov đã viết một tiện ích tuyệt vời sẽ tạo tệp giải pháp từ tệp dự án. Nó là tuyệt vời nếu bạn đang làm việc cho những người không "tin" trong các tập tin giải pháp. ugh.

GenerateSolutionFile.exe

Cách sử dụng: GenerateSolutionFile/p/s [/ i includeFilter] [/ e excludeFilter]

http://bloggingabout.net/blogs/vagif/archive/2009/08/04/utility-to-generate-visual-studio-solution-file-for-a-group-of-projects.aspx

Các vấn đề liên quan