C# 无法访问其他项目的app.config文件

C# 无法访问其他项目的app.config文件,c#,app-config,C#,App Config,目前我有两个应用程序,App1和App2 App1有一个app.config文件,我在其中存储字符串InstallDir。我可以使用Properties.Settings.Default.InstallDir从App1 fine访问此文件。这很好,但我需要能够从App2访问它 我在VS中将可访问性从内部更改为公共。当我尝试从App2访问它时,我添加了对App1的引用并使用App1;和App1.Properties.Settings.Default.InstallDir,但它只是不返回任何内容。它

目前我有两个应用程序,App1和App2

App1有一个app.config文件,我在其中存储字符串InstallDir。我可以使用Properties.Settings.Default.InstallDir从App1 fine访问此文件。这很好,但我需要能够从App2访问它

我在VS中将可访问性从内部更改为公共。当我尝试从App2访问它时,我添加了对App1的引用并使用App1;和App1.Properties.Settings.Default.InstallDir,但它只是不返回任何内容。它不会抛出异常,只返回一个空白字符串


非常感谢您的任何想法。

每个应用程序都有自己的app.config文件,在运行时从中读取配置。您在App2中引用了App1,它允许您访问App1.Properties.Settings.Default.InstallDir变量,但在运行时,由于App2的app.config中没有相应的值,因此返回null。

如果您想访问两个项目之间的一些我认为是共享的配置选项,在第一个配置文件上创建配置的包装器,比如说一个静态类,并从第二个项目中使用它。

您只能编写自己的代码来切换读取另一个配置文件,即使您添加App2作为引用,它也不会神奇地授予您访问权限,将其作为普通文件读取,或使用ConfigurationManager.openMappedExconfiguration:

您的应用程序将只加载了一个配置文件,如果要从另一个文件读取值,则需要显式加载它


请看下面的帮助。

谢谢。不过我有点困惑。因此,如果在App2的配置文件中没有相同的值,我无法从App2访问App1中的值?@BaliC,是的,我就是这么说的。谢谢。我需要在应用程序关闭后保留InstallDir的值,这就是我使用配置文件的原因。除非静态类中的变量在应用程序关闭后以某种方式保留?@Bali:该应用程序如何关闭?你指的是EXE项目吗?是的,我指的是EXE项目,所以当应用程序关闭时,我需要保存值,就像我可以将其保存到配置文件中一样,这样当它打开时,我可以再次访问它。是的,但关闭以保存其配置数据是该应用程序的职责。关闭后,您仍然可以在其他项目中访问该信息。目前我的app.config是用exe编译的,所以它不是作为单独的文件编译的,我想在它成为单独的文件之前,我无法使用它。作为注释,为什么不把这些信息放在两个应用程序都可以访问的第三个位置,比如单独的配置文件或数据库?您正在讨论的配置类型感觉比app.config中通常使用的配置更不稳定。