首页 / 知识

关于.net:在安装过程中初始化user.config或app.exe.config

2023-04-16 03:03:00

关于.net:在安装过程中初始化user.config或app.exe.config

Initializing user.config or app.exe.config during install

我正在开发一个依靠user.config来存储各种有用设置(如Intranet Web服务URL)的.NET WinForms应用程序。我们希望在安装过程中导入自定义的初始设置。这种情况的用例是,如果一家公司有100台计算机要在其上安装软件,并且它们都应参考所涉及的Intranet Web服务,则无需在所有计算机上手动进行设置。

我们当前正在使用VS2008安装项目来生成安装包。

到目前为止,我们的想法是使安装程序可以使用信息(来自模板)创建自定义的初始.config文件,然后将其放置到位,而不是安装项目安装的默认文件。

但是,除了以下几个方面,我看不到其他方法:

  • 为了使用ConfigurationManager类确定.config文件路径,将可执行文件名称硬编码到自定义安装程序操作(派生自System.Configuration.Install.Installer)中。如果可执行文件名称更改,则需要手动更改安装程序。
  • 滚动我们自己的配置类或文件/文件夹层次结构以存储设置。如果我理解正确的话,这基本上会使我们无法使用.NET提供的隔离机制的优势(这也是这里的障碍)。
  • 有谁知道任何替代方法,或使上述两种方法可口的方法?

    我担心答案可能是"不要这样做,它会破坏机制的精神,推出您自己的设置导入机制"。


    如果为大型公司创建此应用程序,则应查看组策略。不幸的是,它将使您的应用程序回到注册表的黄金时代。我知道,这将是您程序中的巨大变化,但这就是实现此目的的方法。

    但是,如果仅Web服务的URL,则必须以这种方式进行设置,那么GPO可能会显得过大。在这种情况下,我将对可执行文件的名称进行硬编码。


    我知道这并不是您要找的答案,但是您应该选择一个更"严肃"的安装程序。我们使用的是Advanced Installer,它非常实用,它可以完成所有您能想到的事情。


    如果可以在配置文件中对至少一个设置进行硬编码,则可以使用它来指向可以存储所有自定义配置设置的数据库或Web服务或网络文件路径。然后,可以使用System.Configuration.ConfigurationManager.OpenExeConfiguration()在第一次运行时或在每次应用程序启动时从该位置更新配置文件。


    安装初始化设置服务

    最新内容

    相关内容

    猜你喜欢