2010-02-12 9 views
11

Tôi đang sử dụng Visual Studio 2008 và tôi có một giải pháp chứa nhiều dự án. Tôi có 1 snk để ký hợp đồng của tôi và điều này sống trong một thư mục giải pháp.Nhiều dự án cần sử dụng 1 tệp SNK

Tôi đã liên kết snk với từng dự án của mình nhưng bây giờ khi tôi cố gắng ký dự án của mình với liên kết đó, tôi không thể tìm thấy tệp snk bằng hộp thoại tệp.

Tôi có bỏ lỡ một bước ở đây không?

Solution 
    > Solution Folder 
     MyKey.snk 
    > Project X 
     > _LinkedFiles 
      MyKey.snk (physical file doesn't appear here but shows in VS) 
     > ... 

Trả lời

2

Vâng, không có nhiều phản hồi ở đây nhưng tôi đã tìm thấy một giải pháp mà tôi cảm thấy thoải mái. Tôi đã có một ProductAssemblyInfo mà sống trong một thư mục giải pháp nhưng được liên kết với từng dự án như dưới đây.

Solution 
    > Build (Solution Folder) 
     MyKey.snk 
     ProductAssemblyInfo.cs 
    > Project X 
     > _LinkedFiles 
      ProductAssemblyInfo.cs 
     > ... 

Các ProductLevelAssembly chứa các dòng sau:

[assembly: AssemblyKeyFile("../../Build/MyKey.snk")] 

Bằng cách đó các tập tin quan trọng chưa bao giờ được sao chép vào từng dự án nhưng mỗi lắp ráp vẫn có chữ ký của chìa khóa.

+1

AssemblyKeyFile không được dùng nữa – Nick

0

Đừng liên kết nó, chỉ cần sao chép. Nếu bạn xây dựng lại SNK, bạn sẽ cần phải sao chép nó vào tất cả các dự án một lần nữa, nhưng khả năng cần phải làm điều đó là RẤT thấp. Trong thực tế, chúng tôi chỉ thay đổi SNK khi sửa đổi số phiên bản chính.

Ngoài ra khi bạn liên kết tệp, bạn đang liên kết tệp đó trong tệp giải pháp, không tạo bản sao chỉnh sửa cả hai địa điểm cùng một lúc. Hộp thoại trình duyệt sẽ chỉ hiển thị cho bạn các tệp tồn tại trên ổ đĩa.

+0

Câu trả lời này về mặt kỹ thuật sẽ làm việc. Nhưng hãy nhớ rằng, tệp khóa PRIVATE của bạn (.snk) giống như điều có nội dung "Chúng tôi là người chúng tôi nói chúng tôi" ... vì vậy việc sao chép nó có thể là một nguy cơ bảo mật. Vì vậy, tôi đồng ý với câu trả lời, nhưng nó đi kèm với một tuyên bố từ chối trách nhiệm (IMHO). – granadaCoder