2009-04-03 32 views
5

Mỗi khi Microsoft phát hành phiên bản mới của studio trực quan, họ luôn yêu cầu tôi chuyển đổi giải pháp và tệp dự án của tôi thành 'phiên bản mới nhất'. Ngay cả với một cái gì đó đơn giản như một giải pháp "Hello World", tôi cần phải đi qua thuật sĩ chuyển đổi của họ!Nguồn mở Visual Studio dự án phân phối cơn ác mộng

Và, để làm mọi thứ tồi tệ hơn, các tệp giải pháp studio hình ảnh mới không tương thích với các phiên bản cũ của studio trực quan.

Thật là một cơn ác mộng đối với bất kỳ ai làm việc với một nhóm người ... hoặc bất kỳ ai hy vọng phân phối mã nguồn cho dự án của họ.

Có cách nào tốt để phân phối dự án studio trực quan và cho phép mọi người sử dụng phiên bản cũ hơn của studio trực quan để vẫn sử dụng không? Đó là một chương trình C đơn giản, không sử dụng bất kỳ tùy chọn tiện lợi nào. Tôi chỉ có quyền truy cập vào Visual Studio 2008 và Visual Studio không cung cấp thuật sĩ chuyển đổi ngược. Nó sẽ có ý nghĩa để phát hành mã nguồn bằng cách sử dụng nmake + makefile để xây dựng chương trình? Có vẻ như định dạng tệp nmake đã không thay đổi đáng kể trong một thời gian nào đó và có thể cung cấp một tệp makefile hoạt động với phạm vi rộng hơn các phiên bản của studio trực quan.

Trả lời

2

Không có câu trả lời đơn giản. Tôi ước gì chúng tôi đã làm. Tình hình chỉ trở nên tồi tệ hơn với thực tế là năm 2005 trở đi bạn cũng cần phải đóng gói trong một gói redist hoặc làm một liên kết tĩnh với thời gian chạy. Và tôi đã không có một đầu mối như những gì nó sẽ làm gì nếu bạn có một năm 2008 liên kết tĩnh nhị phân nói chuyện với một thế hệ trước đó (sớm hơn 2005) ứng dụng. Theo MS, điều này sẽ làm việc.

Bạn có thể giả định một cách an toàn tất cả người dùng của mình sẽ có bản sao của Visual Studio không? Và tất cả họ đều chạy cùng một phiên bản? (Tôi biết, phiên bản miễn phí hiện nay là miễn phí ...) Bạn sẽ cần phải đào tạo cơ sở người dùng của mình về những khó khăn nếu bạn tiếp tục theo đuổi con đường này và tất cả họ đều sử dụng cùng phiên bản VS2008 để giúp mọi người xung quanh dễ dàng hơn.

Tôi thà sử dụng make/gcc hơn là đi quanh công viên.

+0

Yea, tôi nghĩ tôi sẽ chỉ phát hành mã nguồn và một tệp makefile, vì quá khó để đảm bảo 1) phiên bản đúng của VS đang được sử dụng và 2) chúng có VS. Thêm vào đó, trình biên dịch thực sự là miễn phí, và công cụ nmake cũng vậy. –

0

Tôi nghĩ rằng việc sử dụng nmake là cách để đi - tiếc là VC6 là phiên bản cuối cùng sẽ tự động tạo một phiên bản cho bạn dựa trên dự án.

Tuy nhiên, bạn nói dự án của mình khá đơn giản, vì vậy đây không phải là rào cản lớn.

5

Bạn có thể sử dụng CMake làm công cụ xây dựng cho dự án của mình. Nó sẽ tạo ra các tập tin dự án VS cho bạn, và bạn chỉ có thể mở tập tin và sử dụng nó để xây dựng dự án. Các vấn đề chuyển đổi sẽ không thành vấn đề, bởi vì bạn chỉ có thể sử dụng CMake để xây dựng lại nó.

Lợi thế của CMake trong trường hợp này là tính di động và độc lập phiên bản (cũng có khả năng xây dựng nền tảng, nhưng điều đó có thể không liên quan). CMake có, tuy nhiên, có một chút của một đường cong học tập với nó và nó không phải là khá đơn giản như chỉ bằng cách sử dụng một tập tin dự án, nhưng nó giải quyết vấn đề bạn đang gặp phải. Vì dự án của bạn là tương đối đơn giản, nó có thể là một giải pháp cho bạn.

9

Cách thông thường để thực hiện việc này là đặt các tệp dự án so với một thư mục con của giải pháp.Ví dụ:

solution 
- build 
-- vc6 
-- vc7 
-- vc8 
-project1 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 
-project2 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 

Sau đó, khi bạn nhận được một phiên bản mới của vs - sao chép các dự án cuối cùng thư mục ví dụ VC7 để VC8 - làm tương tự cho các giải pháp - mở các tập tin giải pháp và dự án trong một trình soạn thảo văn bản để sửa chữa mọi đường dẫn - cuối cùng mở giải pháp trong phiên bản mới của vs và cho phép chuyển đổi dự án của bạn - (Sử dụng điều khiển nguồn như thể một hoặc đường dẫn của bạn sai khi cập nhật dự án trong thư mục cũ)

nhưng bạn chỉ phải làm điều đó vài năm một lần.

Đây là cách chúng tôi sử dụng để làm điều đó, nhưng có một cách tốt hơn tuy nhiên và đó là sử dụng CMake để tạo dự án của bạn. Chúng tôi sử dụng điều này bây giờ trong công việc và nó cho phép sử dụng để sử dụng một định nghĩa dự án duy nhất để làm việc tự nhiên trên windows và unix. Trên các cửa sổ chúng tôi sử dụng so với các dự án trên Unix, chúng tôi sử dụng eclipse và makefiles. Ngoài ra, CMake cho phép bạn trừu tượng các thiết lập chung của dự án như trình biên dịch và cờ liên kết, vì vậy chúng chỉ phải được sửa đổi ở một nơi.

Tôi hiện sử dụng CMake cho tất cả các dự án C++ cho dù tôi có yêu cầu khả năng đa nền tảng hay không.

0

Tôi khuyên bạn nên sử dụng quy trình nguồn mở. Phát hành mã của bạn dưới dạng VS 2008 và cho phép người nào đó sử dụng các phiên bản trước đó để đóng góp tệp giải pháp cho các phiên bản đó. Đó là cách nguồn mở.

0

Một giải pháp mà tôi đã thấy được sử dụng bởi thư viện Windows thương mại là đặt tên tệp giải pháp với phiên bản VS làm hậu tố (ví dụ: Project_VS2005.sln, Project_VS2008.sln, v.v.). Bạn vẫn phải giữ chúng trong đồng bộ, nhưng bạn không phải thay đổi đường dẫn tệp, hoặc bao gồm các thư mục, hoặc sửa đổi các tệp giải pháp thực tế nhiều; chỉ giữ nhiều tệp, một tệp cho mỗi phiên bản VS được hỗ trợ. Bạn phải làm điều tương tự cho các tệp dự án, nhưng ít nhất bạn không phải thay đổi nội dung xung quanh để hỗ trợ các cấu trúc thư mục khác nhau trừ khi bạn muốn hỗ trợ xây dựng song song với nhiều phiên bản VS và trong trường hợp nơi bạn làm bạn chỉ phải thay đổi các thiết lập đầu ra cho mỗi tệp dự án khác nhau.

Không nói đó là giải pháp tuyệt vời, mà đúng hơn là một tùy chọn khác.

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