我们需要调整我们的应用程序以通过 ClickOnce 使用。该应用程序由一个 .exe 文件和大量 Visual C++ 库组成,其中一些是其他库使用的进程内 COM 服务器。
目前我们的安装程序确实regsvr32
注册了 COM 服务器,但看起来 ClickOnce 应用程序在安装期间不允许修改注册表。所以我们需要别的东西。
选项一是删除CoCreateInstance()
并改为使用LoadLibraryEx()
/ DllGetClassObject()
。这将需要修改代码,但非常可靠 - 我看不出有任何原因导致这不起作用。
选项二是对清单使用并行 COM 激活。我立即看到的问题是我们在每个夜间构建中增加版本号,因此我们将不得不自动更新清单。这不是很鼓舞人心。使用并行 COM 激活还有哪些其他不那么明显的限制?