Cor*_*nel 8 .net installshield gac
我必须使用InstallSheild向GAC注册多个程序集,并且我还需要在INSTALLDIR上复制程序集.最好的方法是什么?另外我需要调用regasm.exe来进行程序集; 我可以使用InstallShield吗?
我真的需要为每个必须在GAC注册的程序集提供一个新的"组件"吗?
Chr*_*ter 11
此答案假定您使用的是Windows Installer项目类型.
1)为每个DLL文件创建一个组件,将其作为密钥文件,并将目标文件夹设置为GlobalAssemblyCache.这指示Windows Installer使用MsiPublishAssemblies标准操作,该操作又调用Fusion以在GAC中注册程序集.这实际上是GACUTIL为您所做的.请记住:GACUTIL不可再发行.如果程序集包含协同文件,请将它们作为协同文件添加到同一组件中.
2)如果程序集是ComVisible,则为每个DLL创建一个组件,将其标记为密钥文件并将.NET ComInterop设置为true.这将导致在构建时提取COM信息,并告诉Windows Installer使用MsiPublishAssemblies标准操作将信息写入注册表.注意:如果在程序集的注册部分中有自定义用户代码,则不会捕获该代码.这是每个MSDN regasm /regfile不执行此代码路径.您必须手动将此信息输入到InstallShield的该组件的注册表视图中.
3)是的,您可以在全局和/或私有地部署强名称程序集.是否可以看到私有组件取决于具有引用的程序集是否具有UseSpecific设置.