28

我希望管理员为我注册一些 DLL,但他可能不希望安装整个 SDK。

他可以安装gacutil.exe吗?如果是这样,他在哪里可以得到它?我是否只是将gacutil.exe文件通过电子邮件发送给他,他必须将它放在他的机器上的哪个位置才能使用它?

4

4 回答 4

27

我通过复制gacutil.exegacutil.exe.configgacutlrc.dll让它工作了。我知道这违反了许可证,但是您无法在 VisualStudio Express 中获得 InstallShield,因此这是最简单的解决方案。

于 2014-07-10T14:11:40.637 回答
20

老问题,但是在没有安装 SDK 的机器上紧要关头,只要 PowerShell 可用,您就可以这样做:

#Note that you should be running PowerShell as an Administrator
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")            
$publish = New-Object System.EnterpriseServices.Internal.Publish            
$publish.GacInstall("C:\Path\To\DLL.dll")

来自https://www.andrewcbancroft.com/2015/12/16/using-powershell-to-install-a-dll-into-the-gac/

于 2017-04-05T14:28:24.190 回答
8

根据汉斯对我的问题的评论,这是违反许可证的。最好的办法是创建一个快速的 setup.exe 或 msi,它将文件安装到 GAC 中,我已经这样做了。

于 2011-04-11T05:02:42.917 回答
2

另一种方法是手动将 DLL 拖放到 c:\windows\assembly。

对于 .net 4,我相信程序集文件夹是 c:\windows\microsoft.net\assembly - 尽管我没有在 .net 4 上以这种方式测试过简单的 xcopy 添加。

于 2012-03-15T22:47:41.200 回答