2008-09-09 7 views
12

Tệp Visual Studio Solution chứa hai GUID cho mỗi mục nhập dự án. Tôi tìm một trong số họ là từ AssemblyInfo.csGUID trong tệp SLN

Có ai biết chắc chắn chúng đến từ đâu và chúng được sử dụng để làm gì?

+0

bất kỳ giải pháp cuối cùng nào có mẫu mã nguồn đầy đủ về nó? – Kiquenet

Trả lời

13

GUID cũng giống GUID như từ AssemblyInfo.cs (đó là GUID cho bản thân lắp ráp, không được gắn với Visual Studio nhưng sản phẩm cuối cùng của bản dựng).

Vì vậy, đối với một dòng đặc trưng trong file sln (mở sln trong notepad hoặc tổng biên tập của lựa chọn nếu bạn muốn thấy điều này):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}" 

Thứ hai GUID là một GUID duy nhất cho bản thân dự án. Các tập tin giải pháp sử dụng này để lập bản đồ cài đặt khác để dự án:

GlobalSection(ProjectConfigurationPlatforms) = postSolution 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.Build.0 = Release|Any CPU 

EndGlobalSection

Các GUID đầu tiên thực sự là một GUID đó là GUID duy nhất cho các giải pháp riêng của mình (tôi tin). Nếu bạn có giải pháp với nhiều dự án, bạn sẽ thực sự thấy một cái gì đó như sau:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Composite", "..\CompositeWPF\Source\CAL\Composite\Composite.csproj", "{77138947-1D13-4E22-AEE0-5D0DD046CA34}" 
EndProject 
+0

bất kỳ phân tích cú pháp nào trong C# cho tệp sln? Đó là một tệp sln đáng tiếc không phải là định dạng XML. @JasonOlson – Kiquenet

+5

GUID đầu tiên xác định loại dự án, như (ngắn gọn) được đề cập ở đây - http://msdn.microsoft.com/en-us/library/bb165951(v=vs.90).aspx. Xem thêm http://www.mztools.com/Articles/2008/MZ2008017.aspx để biết danh sách các kiểu dự án. (Tôi vẫn tự hỏi nếu có một hướng dẫn đặc biệt cho một thư mục giải pháp ...) – yoyo

+1

Cảm ơn bạn đã liên kết @yoyo. Thư mục GUID có vẻ là {2150E333-8FDC-42A3-9474-1A3956D46DE8}. – Giles

6

According to MSDN:

[Các Project] tuyên bố chứa GUID dự án độc đáo và các dự án loại GUID. Những thông tin này được sử dụng bởi môi trường để tìm dự án tệp hoặc tệp thuộc về giải pháp và VSPackage yêu cầu cho từng dự án. Dự án GUID là được chuyển cho IVsProjectFactory để tải VSPackage cụ thể liên quan đến dự án , sau đó dự án được tải bởi VSPackage.