.net 在用户';s计算机

.net 在用户';s计算机,.net,com,installation,.net-assembly,regasm,.net,Com,Installation,.net Assembly,Regasm,我已经编写了一个程序集,它使用regasm在我的开发机器上注册并运行良好。我想知道在用户的计算机上部署这样一个库的推荐方法是什么。我的用户将使用Excel VBA中的COM库 我知道我可以编写一个简单的脚本调用regasm并将其交付给用户,但我不确定这是否是最佳实践。例如,在交付几个更新之后,我的用户可能最终注册了库的多个版本,因此如果不再需要,我想为他们提供一种卸载旧版本的方法。用户将自己编写VBA脚本,这样他们就知道他们使用的COM库的版本,所以他们应该能够知道可以卸载哪些版本 最佳做法是什

我已经编写了一个程序集,它使用regasm在我的开发机器上注册并运行良好。我想知道在用户的计算机上部署这样一个库的推荐方法是什么。我的用户将使用Excel VBA中的COM库

我知道我可以编写一个简单的脚本调用regasm并将其交付给用户,但我不确定这是否是最佳实践。例如,在交付几个更新之后,我的用户可能最终注册了库的多个版本,因此如果不再需要,我想为他们提供一种卸载旧版本的方法。用户将自己编写VBA脚本,这样他们就知道他们使用的COM库的版本,所以他们应该能够知道可以卸载哪些版本

最佳做法是什么?

我使用它来安装应用程序,它支持使用其套件中名为Heat的工具创建这些注册条目。它有一点学习曲线,但我发现它是一个很棒的安装套件。它是免费的,而且被广泛使用


如果您正在寻找一个更简单的解决方案,您可以像您所说的那样创建一个批处理文件,手动注册/注销dll并安装/卸载文件。

如果您完全不说明您希望使用此服务器的客户端程序的类型,则无法有意义地回答此问题。COM有一个强大的DLL地狱的问题,你会陷入麻烦,只是任意删除或更换旧版本。“您破坏客户端程序的几率非常高。@HansPassant-编辑。因此您不知道客户端程序员使用的是什么版本。”。不要自动卸载旧版本,您必须让它们自行决定。确保新版本可以与旧版本和平共存。这意味着您必须使用新的[AssemblyVersion]部署到GAC。并且遵循COM规则,接口中的更改需要新的GUID,因此新版本的注册不会覆盖旧版本。