我希望管理员为我注册一些DLL,但他可能不希望安装整个SDK。
他可以安装gacutil.exe
吗?如果是这样,他在哪里可以得到它?我只是将gacutil.exe
文件通过电子邮件发送给他,他必须把它放在他的机器上才能使用它?
答案 0 :(得分:22)
我通过复制 gacutil.exe , gacutil.exe.config 和 gacutlrc.dll 来实现它。我理解这是违反许可证的,但是你无法在VisualStudio Express中获得InstallShield,所以这是最简单的解决方案。
答案 1 :(得分:7)
Per Hans对我的问题的评论,这违反了许可证。这里最好的办法是创建一个快速的setup.exe或msi,它将文件安装到GAC中,我已经完成了。
答案 2 :(得分:7)
老问题,但是在没有安装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/
答案 3 :(得分:2)
另一种方法是只需手动将DLL拖放到c:\ windows \ assembly。
对于.net 4,我相信程序集文件夹是c:\ windows \ microsoft.net \ assembly - 虽然我没有在.net 4上以这种方式测试过简单的xcopy。