我正在考虑使应用程序更加模块化并访问 dll,以便在客户想要不同的功能时可以更改它们。
我知道如何创建 dll 并引用它们,但我正在尝试找到一种方法来创建一个可执行文件,该可执行文件会将不同版本的 dll 安装到所需的应用程序文件夹中。我想避免将新的 dll 放入原始项目并构建一个新的安装文件,并且我想让最终用户的事情变得简单。
目前我正在使用 Visual Studio 2010
我正在考虑使应用程序更加模块化并访问 dll,以便在客户想要不同的功能时可以更改它们。
我知道如何创建 dll 并引用它们,但我正在尝试找到一种方法来创建一个可执行文件,该可执行文件会将不同版本的 dll 安装到所需的应用程序文件夹中。我想避免将新的 dll 放入原始项目并构建一个新的安装文件,并且我想让最终用户的事情变得简单。
目前我正在使用 Visual Studio 2010
您可以为每个 dll 创建 MSI 文件并使用标准安装程序过程来更新 dll。也可以编写一个下载和提取的 exe,它具有任意数量的逻辑(许可、不时下载位置......)。
两者的结合似乎是一件有趣的事情。一个引导程序下载 msi 文件并静默安装它们。您可以在安装程序中拥有高级功能,同时可以自由决定自己安装什么以及何时安装。
技术方面突然出现在我的脑海中:使用中的文件可能不会更改,如果您更改界面,则未更改的主程序将无法使用新库。
看来您正在寻找插件架构,您可能想查看 MEF 或 Unity 来执行组合,但这更多是附带说明。
这个很棒的网站上几乎没有可用的SO 线程。您应该探索它们并尝试以最佳方式实施您遇到的任何情况。
检查这些参考链接:
如果您已经使用 VS 安装项目,您可以部署此项目的新版本,它将升级现有安装。查看设置和升级 ID。服务的停止和启动可以通过可以在项目中定义的自定义操作来完成,并将在您的设置提交或回滚等时执行。
DotNet 中的补丁开发
如何制作可补丁/可更新的应用程序?
使用 .net windows 应用程序创建补丁文件
注意:请参阅此单击如何为现有安装程序构建补丁