[英]Unregistering COM dll with a C# Setup Project
我已经坚持了一段时间。 我将尽我所能尝试用最简单的术语进行解释。 我将竭尽所能。
我有一个C#项目,该项目使用我不断更新的VB6编译的ActiveX DLL。 我编译安装项目,将其发送到客户端,然后他们运行安装程序。 在构建更新的安装项目时,我将增加安装项目的“版本”,以免被“已安装另一个版本”所困扰。
几次更新后开始发生的事情我开始注意到DLL不会在安装程序中更新为新版本。 客户端计算机已安装并注册了原始DLL。 第一个症状:从客户端C#代码找不到方法异常。
这不是共享的DLL,仅此应用程序需要它。
我注意到,(通过常规过程)卸载应用程序时,虽然我会将此文件的属性“ Permanent”设置为false,但DLL也并未从应用程序文件夹中删除。 注册表中的注册条目也将保留。
我确实在VS6.0中更新DLL的版本(通常会增加内部版本号),然后再进行构建。 然后在VS2008中,我将其从“引用”中删除,然后从“浏览”选项卡中再次添加,而无需在我的开发机上重新注册它并从“ COM”选项卡中添加它。
我想到了这些选择。
任何帮助都将受到极大欢迎。
出于好奇? 为什么不尝试使用WiX? http://wixtoolset.org/
这对于构建安装程序非常有用,您可以像以下操作一样轻松地进行操作:
<File Id="guifreak3" Name="Guifreaks.NavigationBar.XmlSerializers.dll" Source="$(var.Plex.MobileHub.Client.Interface.TargetDir)Guifreaks.NavigationBar.XmlSerializers.dll"/>
卸载后,Wix会自动删除该dll。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.