代码之家  ›  专栏  ›  技术社区  ›  Nick Spreitzer

类库的配置文件物理位置在哪里?

  •  2
  • Nick Spreitzer  · 技术社区  · 16 年前

    我的猜测是这个问题将属于“哑巴”的范畴,但是,尽管如此,我还是感到困惑。

    当在windows窗体应用程序中使用配置文件时,可以在 C:\程序文件\companyname\productname\application.exe.config . 但是,在我开发的类库中,我没有看到 类库.dll.config “从visual studio安装(与另一个项目一起安装)后,将文件保存在install文件夹中。即使我在任何地方都看不到该文件,从中检索数据也可以正常工作。另外,从类库中的方法运行以下代码将返回预期的路径: C:\程序文件\companyname\productname\classlibrary.dll.config .

    如果有人能告诉我,我在这里错过了什么,那真是太棒了。

    public static string MyMethod()
    {
    Assembly assem = Assembly.GetExecutingAssembly();
    Configuration config = ConfigurationManager.OpenExeConfiguration(assem.Location);
    
    return "The assembly location was: " + assem.Location + Environment.NewLine +
    "The config file path was: " + config.FilePath;
    
    // Gives me "C:\Program files\CompanyName\ProductName\ClassLibrary.dll.config"
    
    }
    
    4 回复  |  直到 16 年前
        1
  •  3
  •   Steven G.    16 年前

    在类库中,app.config文件非常无用。应用程序设置值存储在settings.settings文件中,并编译到settings.designer.cs文件中。

    如果直接在app.config中修改某个应用程序设置的值,则不会对运行应用程序时看到的设置值产生影响。您必须实际打开设置编辑器,此时它会注意到app.config文件和settings.settings文件之间的差异,并询问您是否希望它使用app.config中的值更新您的settings.settings文件。

        2
  •  2
  •   Jaxidian    16 年前

    取决于.NET的版本。在.NET 4.0之前,类库不能使用自己的app.config文件,除非您执行自定义操作来读取数据。在这些场景中,类库的初始化需要所有适当的数据,并从使用类的配置(即最终是winform的app.config文件)传入。

        3
  •  1
  •   TLiebe    16 年前

    类库将使用调用它的可执行文件的配置文件。

        4
  •  0
  •   JohnForDummies    16 年前

    默认值存储在dll中。

    但是假设您在代码中更改设置并保存它。下次放在哪里?

    在WinXP中查找:

    C:\文档和设置\用户名\本地设置\应用程序数据\

    或在Windows Vista/7中查找:

    C:\用户\用户名\应用程序数据\本地\

    您将找到一个以应用程序命名的文件夹,并深入到该文件夹中,您将找到一个名为user.config的文件。

    例如:

    C:\documents and settings\username\local settings\application data\myapp\myapp.exe\u urlla1i3sytrhx0adqtjnjuc24oacqpgu4\1.0.0.0\user.config