如果强名称程序集“A”依赖于私有程序集“B”和“C”。当我使用'gacutil.exe'在GAC中安装A时,B和C会发生什么?我在GAC目录的文件夹中看不到它们。它是否仍然会引用B和C位置,即如果B和C在部署之前在Debug文件夹中(在A的同一目录中),在GAC中安装'A'后,A绝对会引用B和C吗?
文件夹调试: -
A.dll
B.dll
C.dll
main.exe
说,main.exe现在运行完美,并且我将它安装在另一台机器上,如果A不存在,main.exe将无法工作,所以我也在目标机器的GAC中安装A.但是我该怎么做?当我使用gacutil时,它不会将B和C复制到GAC中的A目录中吗?
答案 0 :(得分:0)
使用依赖于某些其他程序集的程序集是完全有效的(在GAC中,依赖项由app加载或根本不存在)。即如果无法加载引用的程序集,A可以提供某种方式(或自动)来禁用功能。
如果您知道所有3个程序集都应安装在GAC中,则您有责任通过设置完成此操作。
请注意,GacUtil不是重新分配的工具 - 即使它无法帮助您进行本地安装(因为它不会自动安装依赖项),它并不能真正帮助您在其他计算机上安装(假设您关心规则) 。见What's the 'correct' way of registering/installing an Assembly to the GAC?