我有一个使用 ClickOnce 部署的解决方案。
它由一个应用程序、几个引用的程序集和一个 SQL Server Compact 数据库组成。
还有一个程序集不被主应用程序引用,而只是在运行时加载。该程序集需要与应用程序一起部署在与应用程序二进制文件相同的目录中。
我设置 Visual Studio 以在编译后将“插件”程序集复制到 UI 项目的 \bin\debug(或 \bin\release)目录。
然后我将该文件添加到 UI 项目中,而不是作为参考,而只是作为文件。我将构建操作设置为“内容”,这样它就会显示在 UI 项目的“属性/发布”对话框中。
当我第一次发布应用程序时,它就像一个魅力。但是后来我更新了插件程序集,甚至给了它一个不同的版本号并再次发布,结果发现程序集没有更新,但是第一个上传的仍然在使用。(即使在没有事先安装的干净计算机上)。
我进行了一些挖掘,发现程序集(LibComposites.dll)被复制到clickonce应用程序存储其二进制文件的目录作为它们存储数据文件的目录。
在这两种情况下,第一个发布的版本。
总而言之,我有一个引用一些程序集的应用程序:
Control.exe 引用 --> LibLLC.dll、LibDataLayer.dll、LibLLCExtenders.dll
在运行时加载 --> LibComposites.dll(也引用 LibLLC.dll)
我需要将新版本的 LibComposites.dll 部署到与每个发布的应用程序相同的目录中。
为什么该程序集的第一个发布版本仍在使用
如何强制 LibComposites.dll 被每次发布覆盖?