2010-02-24 33 views
33

Tôi có nhiều dự án trong một giải pháp Visual Studio (2008) duy nhất.
Tôi chỉ phát hiện ra rằng mỗi người trong số các dự án này sử dụng cùng một GUID, vì vậy trong file giải pháp nó trông như thế này:GUIDs dự án trong một tệp giải pháp Visual Studio được sử dụng cho là gì?

Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro1", "Pro1\Pro1.csproj", "{...}" 
Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro2", "Pro2\Pro2.csproj", "{...}" 

Tôi có phải thay đổi các GUID vì vậy họ đang độc đáo và là những gì họ sử dụng cho ?

+1

Liệu trong cả hai trận đấu file csproj? – Ryu

+0

@Ryu nếu có, ý nghĩa của nó là gì? –

Trả lời

40

Dự án khối kiên trì trong một file giải pháp có định dạng sau:

Project("{project type GUID}") = "<Project name>", "<project file location>", 
    "{<Unique project GUID>}" 
EndProject 

Vì vậy, nó được dự kiến ​​rằng đầu tiên GUID là không duy nhất, nó xác định duy nhất trực quan gói Studio để xử lý loại dự án.

GUID mà bạn đăng là thú vị - có vẻ như GID dự án C# bị hỏng, là FAE04EC0-301F-11D3-BF4B-00C04F79EFBC. Bạn đã tự mình thay đổi hay đó là vấn đề về đăng bài (ví dụ: bạn đang sử dụng ngôn ngữ từ phải sang trái như tiếng Do Thái hoặc tiếng Ả Rập).

+1

Cảm ơn rất nhiều Oleg!Tôi thay đổi GUID bản thân mình bởi vì tôi nghĩ rằng nó sẽ là duy nhất cho mỗi giải pháp hay như vậy. Tôi không có bất kỳ ý tưởng tốt hơn so với đảo ngược một số giá trị của nó và chắc chắn đã không nghĩ rằng nó sẽ là một giá trị chung cho các dự án C# :-) – Marc

+10

Bạn ghi nhớ GUIDs? – Seth

+18

@Bạn không? ;) – sebagomez

3

Các hướng dẫn dự án trong tệp csproj phải là duy nhất. Từ kinh nghiệm của tôi nếu hai tệp csproj được bao gồm trong cùng một studio giải pháp trực quan sẽ tự động tạo lại một trong các hướng dẫn.

+0

Cả VS và Sharpdevelop đều làm việc này cho bạn. Chỉ cần nhận thức được ý nghĩa nếu dự án của GUID đã thay đổi được tham chiếu bởi một giải pháp khác ở nơi khác. Tập tin sln của giải pháp khác và các tệp dự án khác tham chiếu đến dự án đã sửa đổi sẽ sử dụng GUID cũ và điều này sẽ phá vỡ các tham chiếu dự án. Dễ dàng cố định nhưng đáng ghi nhớ. Cũng đáng biết rằng VS cũng có thể thay đổi GUID của dự án đã có đầu tiên. – andyhasit

14

Tôi thường sẽ sao chép tệp dự án VS, đổi tên và tìm kiếm và thay thế tất cả các lần xuất hiện của tên dự án để tạo dự án mới có cùng cài đặt. Điều này thường nhanh hơn việc tạo một dự án mới và sau đó đảm bảo tất cả các cài đặt đều chính xác. Tôi bỏ qua GUID. VS sẽ thay đổi GUID ngay sau khi tôi lưu dự án sau khi thêm nó vào giải pháp.

Tôi làm rất nhiều phát triển DLL/C/C++ và tôi đã lệch khỏi cài đặt dự án tiêu chuẩn trong nhiều năm (đặc biệt là tối ưu hóa, tạo mã v.v.) và tôi tìm kỹ thuật sao chép nhanh hơn thiết lập dự án.

+2

Cảm ơn. Việc chỉnh sửa một tệp XML dễ dàng hơn nhiều so với việc nhớ nơi cần nhấp và trình đơn nào để mở, vv Các tệp văn bản có thể lặp lại nhiều hơn các hành động GUI. – Bram

+2

Bạn có thể giải quyết hầu hết điều đó bằng Trang tính thuộc tính dự án. Đặt tất cả các tối ưu hóa/tạo mã vv trong đó, sau đó bao gồm các trang tính trong từng dự án. –

1

Word cho khôn ngoan: Nếu thực hiện một dự án XBOX360 XNA 4.0 và cố gắng lừa này, Không sử dụng một guid được tạo ra bởi VS 2012. tạo một cái trong VS2010 và sử dụng.

Hoặc bạn sẽ gặp phải lỗi sau khi bạn cố gắng chạy dự án tái định hướng trong XNA Game Studio Connect.

"Trò chơi này bị thiếu hoặc hỏng, blah blah blah, khởi động lại XNA Game Studio Connect?"

và sau đó sẽ phát hành. VS 2010 guids làm việc tốt. Tôi không biết tại sao.

+1

Nói chung, có thử nghiệm hơn nữa, việc đổi tên mỗi se trong Visual Studio 2012 là khủng khiếp bị hỏng. Tôi sẽ sử dụng 2010 hoặc 2013 cho các chức năng này. – twobob

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