我希望管理员为我注册一些 DLL,但他可能不希望安装整个 SDK。
他可以安装gacutil.exe
吗?如果是这样,他在哪里可以得到它?我是否只是将gacutil.exe
文件通过电子邮件发送给他,他必须将它放在他的机器上的哪个位置才能使用它?
我希望管理员为我注册一些 DLL,但他可能不希望安装整个 SDK。
他可以安装gacutil.exe
吗?如果是这样,他在哪里可以得到它?我是否只是将gacutil.exe
文件通过电子邮件发送给他,他必须将它放在他的机器上的哪个位置才能使用它?
我通过复制gacutil.exe、gacutil.exe.config和gacutlrc.dll让它工作了。我知道这违反了许可证,但是您无法在 VisualStudio Express 中获得 InstallShield,因此这是最简单的解决方案。
老问题,但是在没有安装 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/
根据汉斯对我的问题的评论,这是违反许可证的。最好的办法是创建一个快速的 setup.exe 或 msi,它将文件安装到 GAC 中,我已经这样做了。
另一种方法是手动将 DLL 拖放到 c:\windows\assembly。
对于 .net 4,我相信程序集文件夹是 c:\windows\microsoft.net\assembly - 尽管我没有在 .net 4 上以这种方式测试过简单的 xcopy 添加。