向GAC注册/安装程序集的"正确"方法是什么?

Rob*_*t P 14 .net windows installer gac

似乎有很多不同的方法来向GAC注册程序集,就像它们"工作"一样.但是,做到这一点的"正确"方式是什么?

回应Lou Franco(和gacutil):

我正在使用Gacutil进行开发,但在我看来并不是安装它的正确方法,因为gacutil不包含在.NET 1.1之前的基本.NET实用程序中 - 它只是一个开发人员工具.

附加:Gacutil(如下面的回复中所示)不可再发行,因此不应在任何您打算提供给非开发人员的应用程序中使用.AKA,客户.请参阅此博客文章(和评论)作者:Aaron Stebner.

回应使用WIX:

WIX可能很棒而且全部,但它如何在引擎盖下工作?WIX以正确的方式安装组件的方式有哪些细节?怎么看起来呢?它是系统/ .NET调用吗?是否需要在System32中的某个地方隐藏一些需要进行的调用?

(编辑:看起来WIX使用了MSI.请在接受的答案中查看我的评论.)

最终编辑:将组件安装到GAC的正确方法似乎是使用Windows安装程序,而不是其他任何东西.我要试试Wix.谢谢大家!

Che*_*rra 17

有了Wix,我会做这样的事情:


<DirectoryRef Id="MyDirectory" >
    <Component Id="MyComponent" Guid="PUT-GUID-HERE" DiskId="1">
        <File Id="MyAssembly" Name="MyAssembly.dll" Assembly=".net" KeyPath="yes" Source="MyAssembly.dll" />
    </Component>
</DirectoryRef>

当您对WiX中的文件使用属性Assembly =".net"时,它将在此组件的MsiAssembly和MsiAssemblyName表中创建条目,并将其标记为GAC组件.