【问题标题】:What is the equivalent of Application.ExecutablePath in Windows ServiceWindows服务中Application.ExecutablePath的等价物是什么
【发布时间】:2013-06-16 00:05:34
【问题描述】:

在 Windows 窗体应用程序中,我使用 Application.Executable 路径来获取 App.config。,

我需要访问 Windows 服务中的 app.config。那会是什么?

【问题讨论】:

  • System.Reflection.Assembly.GetExecutingAssembly().Location?

标签: c# windows winforms c#-4.0


【解决方案1】:

几个选项:

System.Reflection.Assembly.GetExecutingAssembly().Location

对于当前程序集。或者,您可以从类型派生它:

System.Reflection.Assembly.GetAssembly(typeof(MyAssemblyType)).Location

然后(在任何一个上)您都可以使用Path.GetDirectoryName 来获取它的来源文件夹(假设您的 app.config 位于同一目录中)。

【讨论】:

    【解决方案2】:

    看看AppDomain.BaseDirectory Property

    获取程序集解析器用来探测的基目录 程序集。

    最常见的用法类似于

    var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
    

    【讨论】:

      【解决方案3】:

      您可以使用 ConfigurationManager 读取 App.config :

      1) 向您的项目添加参考 System.Configuration。

      2) 像这样使用 ConfigurationManager 来读取 App.config :

      ConfigurationManager.AppSettings["KeySample"]
      

      在配置文件中,您可以像这样添加密钥:

      <configuration>
          <appSettings>
             <add key="KeySample" value="SampleValue"/>
          </appSettings>
      </configuration>
      

      因此您不必获取路径。

      【讨论】:

        【解决方案4】:

        可能的选择是

            AppDomain.CurrentDomain.BaseDirectory
        OR
            Assembly.Location
        OR
            Assembly.GetExecutingAssembly().CodeBase
        

        就我个人而言,我使用了最后一个。

        【讨论】:

          猜你喜欢
          • 2017-05-01
          • 1970-01-01
          • 2011-11-23
          • 1970-01-01
          • 2013-09-07
          • 2022-07-27
          • 2014-01-27
          • 2011-01-31
          • 2019-06-21
          相关资源
          最近更新 更多