我需要创建一个小型应用程序或脚本,以将.NET程序集安装到GAC中。我读过有几种方法可以做到这一点,包括:
gacutil.exe
new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");
但是,如果我仅在计算机上创建了适当的目录并将程序集复制到该目录,会发生什么情况? GAC目录的结构如下:
C:\Windows\assembly\GAC_MSIL\Foo\<version#>__<public token>\Foo.dll
除了创建文件夹结构并将程序集放入其中之外,以上两种方法还有什么特别的作用吗?
最佳答案
我强烈建议使用现有方法(如您提到的方法),因为它们都受Microsoft支持和维护,并且将继续与将来的版本一起使用。
快速浏览gacutil.exe
和Process Monitor可以发现,除了复制文件之外,它还有更多其他功能:
WINDOWS\assembly\GACLock.dat
等)HKLM\SOFTWARE\Microsoft\Fusion\GACChangeNotification\...
)HKLM\SOFTWARE\Microsoft\Fusion\NativeImagesIndex...
)System.EnterpriseServices
中的包装器与this old blog post非常相似,并且应该可以正常工作。
关于.net - 以编程方式将.NET程序集安装到GAC中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460793/