我正在使用一个在注册表中搜索dll的库。可以通过在Service Fabric群集中运行MSI来安装该dll,并将设置此路径。
但是我想避免在群集中安装MSI,而是在包本身中提供了所需的dll。在启动服务期间,我正在创建注册表项,并在程序包中提供dll的位置。一切都按预期进行。
这种方法理想吗?是否允许对注册表进行更改?如果没有,我们如何解决这个问题?任何指针表示赞赏。
答案 0 :(得分:1)
如果库必须使用注册表,则除了注册值外,您无能为力。如果您可以更改DLL以从配置文件中检索此信息,则将是理想的解决方案。
您可以在SF中完成此操作,正确的方法是使用ServiceManifest的 SetupEntryPoint 选项执行这些管理任务,然后从应用程序清单中进行选择可以设置策略以指定应该运行这些策略的用户。 here中有更详细的说明
使用此方法在SF上遇到的主要问题是,应用程序可能会在集群中移动,并且必须在每个节点上注册它,并且可能会在应用程序不再在其中运行时将其删除,以避免在集群中造成垃圾。注册表。