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