我已经坚持了一段时间。我将尝试用最简单的术语和我所知的解释。我会尊重任何帮助。
我有一个C#项目,它使用VB6编译的ActiveX DLL,我不断更新。 我编译安装项目,将其发送到客户端,然后运行安装程序。在构建更新的安装项目时,我会增加安装项目的“版本”,这样就不会打扰“已经安装了另一个版本”。
在几次更新后我开始注意到DLL不会更新到安装程序中的新版本。客户端计算机已安装并注册了原始DLL。第一个症状:从客户端C#代码中找不到方法。
这不是共享DLL,只有这个应用程序需要它。
我注意到在卸载应用程序时(通过常规程序),DLL也没有从应用程序文件夹中删除,尽管我将此文件的属性“Permanent”设置为false。注册表中的注册条目也被保留。
在构建它之前,我确实在VS6.0中更新了DLL的版本(通常会增加内部版本号)。然后在VS2008中,我从References中删除它,然后从'Browse选项卡'再次添加它,而不是在我的开发机器上重新注册它并从COM选项卡添加它。
我已经考虑过这些选择。
任何帮助都会非常受欢迎。
答案 0 :(得分:0)
出于好奇心?为什么不尝试使用WiX? http://wixtoolset.org/
这对于构建安装程序非常有用,您可以像以下一样轻松地完成这些工作:
<File Id="guifreak3" Name="Guifreaks.NavigationBar.XmlSerializers.dll" Source="$(var.Plex.MobileHub.Client.Interface.TargetDir)Guifreaks.NavigationBar.XmlSerializers.dll"/>
Wix会在卸载时自动删除它。