2009-04-30 17 views
5

Tôi muốn xóa AssemblyInfo.cpp, vì một số lỗi siêu dữ liệu đôi khi xuất hiện.Có cần AssemblyInfo.cpp không?

AssemblyInfo.cpp có hữu ích cho mọi thứ không? Hoặc nó có thể được gỡ bỏ mà không có bất kỳ vấn đề?

Trả lời

4

Tôi đã phát hiện ra một sự khác biệt cho tệp này: nó phải làm với các giá trị được báo cáo trong các cuộc gọi đến Assembly.GetReferencedAssemblies. Tôi đã làm việc theo dõi số phiên bản của các tệp nhị phân của chúng tôi từ kho lưu trữ SVN của chúng tôi bằng cách nhúng số sửa đổi vào chúng. Ban đầu tôi cũng đang cập nhật AssemblyInfo.cpp và không tìm thấy gì được báo cáo trong tab chi tiết thuộc tính tệp cho tệp nhị phân. Dường như tệp này không làm gì đối với tôi về việc cập nhật các chi tiết đó, là không phải là trường hợp có các cập nhật tương tự với số AssemblyInfo.cs của csproj. Tại sao sự khác biệt phải không?

Bây giờ trong một csproj như vậy, chúng tôi tình cờ tham chiếu vcxproj và csproj đổ vào nhật ký các phiên bản của tất cả các cụm được tham chiếu của nó bằng phương pháp .NET Assembly.GetReferencedAssemblies. Những gì tôi phát hiện ra là con số được báo cáo trong nhật ký đó không phải là phiên bản của vcxproj như được cung cấp bởi tài nguyên VS_VERSIONINFO tôi đã thêm (mà không nhận được chi tiết phiên bản vào tab chi tiết thuộc tính tệp). Thay vào đó, con số được báo cáo thực sự khớp với số được xác định trong số AssemblyInfo.cpp.

Vì vậy, đối với tệp vcxproj có vẻ như VS_VERSIONINFO có khả năng cập nhật nội dung bạn tìm thấy trong tab chi tiết thuộc tính tệp nhưng AssemblyInfo.cpp có khả năng hiển thị phiên bản là GetReferencedAssemblies. Trong C# hai khu vực báo cáo này dường như được thống nhất. Có lẽ có một cách để trực tiếp AssemblyInfo.cpp để tuyên truyền vào các chi tiết tập tin trong một số thời trang, nhưng những gì tôi sẽ gió lên làm là nhân đôi các thông tin xây dựng cho cả hai địa điểm trong một bước prebuild. Có lẽ ai đó có thể tìm ra cách tiếp cận tốt hơn.

1

Tại sao không chỉ sửa lỗi? Trên ghi chú đó, bạn nhận được lỗi nào?

Tệp này cung cấp thông tin như số phiên bản chắc chắn cần thiết để sử dụng hội đồng bạn đã tạo.

+0

Các lỗi được mô tả trong http://stackoverflow.com/questions/810827/lnk2022-metadata-operation-failed-driving-me-insane ... về cách tệp "chắc chắn là cần thiết", có vẻ như để làm việc tốt mà không có nó?!? – demoncodemonkey

+0

Nếu không có thông tin đó trình biên dịch không thể xác định nếu lắp ráp là 1. một trong những quyền và 2. trong ngày hay không. Vấn đề bạn liên kết để nhọt xuống một sự không phù hợp giữa các bản xây dựng của hội đồng. Bằng cách trung lập nó, bạn không còn nhận được lỗi không khớp vì trình biên dịch không thể nói rằng có sự khác biệt. – NotMe

+0

Vì vậy, trên thực tế, bạn chưa giải quyết được vấn đề. Thay vào đó bạn chỉ cần ẩn nó. – NotMe

1

Cho đến giờ tôi chưa bao giờ có AssemblyInfo.cpp trong các tệp dll C++ được quản lý của mình, vì vậy tôi không nghĩ rằng nó là cần thiết.

(Tôi vừa thêm tệp để có thông tin phiên bản cho C++ dll của tôi).

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