2009-12-19 33 views
5

Tôi có một hội đồng Interop nằm trong GAC; Windows Explorer hiển thị rõ ràng nó được liệt kê trong thư mục C:\WINDOWS\assembly. Tuy nhiên, khi tôi cố gắng thêm một tham chiếu đến nó trong từ Visual Studio, tôi không thể nhìn thấy nó bất cứ nơi nào trong hộp thoại Thêm tham chiếu.Hội GAC Thiếu trong hộp thoại Thêm Tham chiếu

Nếu điều này xảy ra với bạn, lý do cho điều này là gì? Và làm cách nào để khắc phục điều này?

(Việc lắp ráp là thực nằm ở C:\WINDOWS\assembly\GAC_MSIL thư mục, nếu bạn phải biết.)

Trả lời

0

"C: \ WINDOWS \ lắp ráp" là một thư mục đặc biệt mà trong Windows Explorer sẽ liệt kê các cụm (và lắp ráp thông tin) trong các thư mục con khác nhau.

Đối với trường hợp của bạn, bạn có thể cần trỏ nó vào đường dẫn vật lý là "C: \ Windows \ assembly \ GAC_MSIL ..... dll" trong VS.NET.

+0

Tôi biết điều đó. Nhưng làm thế nào để bạn 'duyệt' đến thư mục con đó. Windows Explorer sẽ không cho phép bạn. Bạn có ngụ ý rằng tôi phải quay trở lại để biên dịch dòng lệnh? Phải có một cách tốt hơn. –

+0

Thành thật mà nói, tôi cũng rất bối rối. Ở nơi đầu tiên, nếu nó xuất hiện trong thư mục assembly, bạn sẽ có thể xem trong tab "Browse" của hộp thoại "Add Reference. Xin lỗi bạn, hy vọng ai đó có thể giúp đỡ ở đây. –

5

Thêm một trong các khóa đăng ký sau, thư mục cần tìm ở đâu và MyAssemblies là danh mục các hội đồng của bạn. Lưu ý HKCU là dành cho người dùng hiện tại và HKLM dành cho tất cả mọi người trên cùng một máy tính.

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>" 
+0

Điều này khác với [HKEY_LOCAL_MACHINE \ PHẦN MỀM \ Microsoft \.NETFramework \ AssemblyFolders] (Sự khác biệt là \ AssemblyFoldersEx \ MyAssemblies ...)? Đọc http://support.microsoft.com/kb/306149 Tôi giả định rằng khóa không có sẽ là chính xác ... – RonnBlack

+0

Như đã lưu ý bởi @Soundararajan ở nơi khác trên trang này, VS sẽ tìm và xây dựng thành công với các hội đồng GAC nếu bạn thêm chúng vào tệp '.csproj' của bạn theo cách thủ công. Thay đổi khóa registry như được mô tả ở đây chỉ cần thiết nếu bạn muốn có thể sử dụng giao diện GUI của VS 'Add Reference'. –

2

Như người khác đã chỉ ra, chỉ cần cài đặt hội đồng trong GAC không đảm bảo nó sẽ hiển thị trong Hộp thoại Thêm tham chiếu. Tôi đã tìm thấy this trang MSDN có các chi tiết. Xem phần Để hiển thị một hội đồng trong hộp thoại Thêm tài liệu tham khảo.

-1

Sử dụng lệnh này dưới Visual studio command prompt

regsvr32/u shfusion.dll

3

tôi đã tạo ra một công cụ mà sẽ giúp bạn đạt được mục tiêu của bạn. Muse VSReferences sẽ cho phép bạn thêm tham chiếu Bộ nhớ Cache toàn cầu vào dự án từ mục menu Thêm Tham chiếu GAC.

+0

Đáng buồn thay, nó không hỗ trợ Visual Studio 2012. – Thought

+1

@ Suy nghĩ: Tôi có * không chính thức * sửa đổi phần mở rộng để hỗ trợ VS2012 và VS2013. Nó có sẵn để tải về [ở đây] (http://ge.tt/2COX9iS/v/1?c). –

0

Bạn cũng có thể ánh xạ thư mục GAC vào ổ đĩa ảo và sau đó bạn có thể thêm tham chiếu GAC qua tab duyệt.

Manual bởi MZ-Tools

0

Ngoài ra, tôi thay đổi nội dung các tập tin dự án và bổ sung tài liệu tham khảo bằng tay.

  1. Cài đặt lắp ráp trong GAC. gacutil /i "Foo.dll"
  2. Tìm tên mạnh của hội đồng. gacutil /l sẽ cung cấp cho bạn danh sách mà từ đó bạn có thể chọn.
  3. Trong hồ sơ dự án tốn thêm dòng sau (từ bước trước)
  4. <Reference Include="Foo, Version=x.x, Culture=neutral, PublicKeyToken=xxx, processorArchitecture=MSIL" />
  5. Và nó hoạt động. :)
Các vấn đề liên quan