2010-06-01 33 views
37

Tôi cần phải đăng ký một hội đồng trong GAC sử dụng tập tin thực thi. Có cách nào để tìm vị trí lắp đặt của GacUtil.exe hoặc có cách nào để đăng ký hội đồng không có GacUtil không?C# cách đăng ký lắp ráp GAC không có GacUtil?

+0

http://stackoverflow.com/a/2611435/17034 –

Trả lời

25

GacUtil không được cài đặt với một khung cài đặt chỉ với một cài đặt SDK - vì vậy bạn không thể đảm bảo nó sẽ được trên hộp bạn đang cài đặt trên.

này sẽ không làm việc trong tập tin thực thi của bạn, nhưng nếu bạn đã phát triển các ứng dụng cho mình, bạn có thể sử dụng phương pháp GacInstall mô tả dưới đây:
http://msdn.microsoft.com/en-us/library/system.enterpriseservices.internal.publish.gacinstall.aspx

Ngoài ra tôi khuyên bạn nên tạo một file .msi để triển khai các ứng dụng . Hướng dẫn ở đây:
http://www.dreamincode.net/forums/topic/58021-deploying-a-c%23-application-visual-studio-setup-project/

Nó sẽ là một giải pháp không lưu ý để bao gồm một bản sao của gacutil.exe trong phân phối của bạn vì nó đi kèm theo một giấy phép khác nhau và bạn có thể không được cấp phép để phân phối lại nó

25

bestbet của bạn được sử dụng một kịch bản PowerShell mà kết thúc tốt đẹp Publish.GacInstall, chẳng hạn như this one

+0

1: WOW! Câu trả lời cụ thể này nên được chấp nhận, bởi vì nó đưa ra câu trả lời trực tiếp cho câu hỏi trên. ** Force là chuỗi với bạn. ** –

7

Bạn có thể cài đặt một dll vào GAC (lắp ráp bộ nhớ cache toàn cầu) bằng cách làm như sau

[Reflection.Assembly]::LoadWithPartialName("System.EnterpriseServices") | Out-Null 
[System.EnterpriseServices.Internal.Publish] $publish = new-object System.EnterpriseServices.Internal.Publish 
$publish.GacInstall(<<FullFilePathToTheDll>>) 

Điều này phải làm rất ít với PowerShell bản địa nhưng đúng hơn với việc khởi tạo và sử dụng các thư viện .NET từ PowerShell

Thực hiện iisreset.

Source

0

Tôi đã sử dụng InnoSetup và tạo cài đặt bao gồm lắp ráp của tôi.

Điểm mấu quan trọng là như dưới đây:

Source: "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"; DestDir: "{app}"; StrongAssemblyName: "WinSCPnet, Version=1.3.7.7333, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf, ProcessorArchitecture=MSIL"; Flags: ignoreversion gacinstall uninsnosharedfileprompt 
Các vấn đề liên quan