簡體   English   中英

CLR 如何從程序集中加載文件?

[英]How does CLR load a file from an assembly?

下面是一個多文件程序集,由兩個托管模塊組成,一個帶有清單: 在此處輸入圖像描述

所以 RUT.netmodule(RUT 代表罕見的使用類型)是一個文件(.netmodule),它是程序集的一部分。

假設我的客戶端應用程序引用了RUT.netmodule中的一個類型, MultiFileLibrary.dll是一個強名稱程序集,它安裝在 GAC 中。 因為RUT.netmodule在物理上並不駐留在MultiFileLibrary.dll中,所以 GAC 不會有RUT.netmodule

所以我的問題是,也許 CLR 被配置為檢查應用程序的基目錄以在知道引用的類型在不同的模塊文件中之后查找RUT.netmodule 但這也意味着RUT.netmodule必須始終位於應用程序的基本目錄中,這對我來說聽起來很奇怪,好像我有多個應用程序然后我需要在它們的基本目錄中擁有多個RUT.netmodule 是否有一種在 GAC 中“安裝” RUT.netmodule的方法,或者當在 GAC 中安裝MultiFileLibrary.dll時,任何 .netmodule 文件也會被復制到 GAC 中?

我從未使用過多文件程序集,但據我所知,您應該能夠使用程序集 linker 工具 (al.exe) 對 .netmodule 進行簽名。 文檔包含一個可能相關的小引號:

如何:使用強名稱簽署程序集
...

  • 通過使用程序集 Linker (Al.exe) 將 .NET 框架代碼模塊(.netmodule 文件)與密鑰文件鏈接。

我的猜測是,即使您將程序集放在 GAC 中,它仍然會引用 .netmodule 並且如果 .netmodule 已簽名,它應該可以工作。 希望這些信息對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM