5

创建 Visual Studio 加载项时,如何将 app.config 用于加载项。如果我在项目中添加一个并部署它,那么当加载项运行并且我以编程方式尝试通过 ConfigurationManager.AppSettings 访问它时,它不会获取加载项的配置文件。
我做错了什么还是有其他方法可以访问加载项的基于文件的配置设置?

4

1 回答 1

8

ConfigurationManager.AppSettings 为您加载到的 AppDomain 选择配置文件。该配置文件通常与入口点可执行文件相关联。在您的情况下,您无法控制入口点可执行文件或运行的 AppDomain,因此您无法使用 ConfigurationManager.AppSettings。

您的问题基本上归结为“我怎样才能拥有与 DLL 关联的配置文件?” (C# Dll 配置文件)。你需要做两件事:

  1. 将应用程序配置文件项添加到您的项目中,并确保将其部署到与 DLL 相同的文件夹中。
  2. 使用如下代码从 DLL 访问配置文件:

     string pluginAssemblyPath = Assembly.GetExecutingAssembly().Location;
     Configuration configuration = ConfigurationManager.OpenExeConfiguration(pluginAssemblyPath);
     string someValue = configuration.AppSettings.Settings["SomeKey"].Value;
    

这肯定适用于不使用卷影复制加载的常规 DLL。我不确定 VS 如何加载它的插件。如果您遇到问题,请告诉我,我可以针对通过卷影副本加载的 DLL 发布解决方法。

于 2010-10-13T22:48:22.313 回答