我的程序必须与通过ClickOnce部署的某些第三方应用程序集成。为了方便这个过程,该应用程序的制造商提供了一个.NET DLL,我可以在我的程序中引用它。该DLL随其应用程序一起提供,并且与其可执行文件位于同一文件夹中。如果我理解正确,则无法预测ClickOnce应用程序的安装位置。如果我事先不知道它将位于哪个文件夹中,那么在运行时链接该DLL的最佳策略是什么?
答案 0 :(得分:1)
一种解决方案是让供应商在安装期间或在首次启动时创建指向当前应用位置的注册表项。我知道它并不漂亮,但它是一种可靠的方法,可以确保您找到应用程序并且更新不会让您指向不存在的应用程序。
我将此方法与我的一次性部署一起用于指向app目录和数据目录。
想到另一个optoin ......你能直接从部署点获取dll吗?我的click-once部署点具有.application文件以及所有程序集。这里的问题是您需要知道最新版本才能找到正确的装配。
祝你好运。答案 1 :(得分:1)
在ClickOnce的EXE项目中,
1)将此DLL添加为"内容" (您在构建类型中设置此项)。 2)在"应用程序文件中......"对于Click Once,找到新添加的DLL添加集的条目,将发布状态设置为" Include"而不是"包括(自动)"。
下次发布一次点击时,DLL将与EXE放在同一个文件夹中。