我的应用程序中有两个.csproj文件,它们都生成一个.exe,并且都有需要来自app.config的值的C#程序。所以,因为只有一个app.config文件(它们构建在同一个文件夹中)我以为我只是把第二个程序(让我们称之为b.cs / b.exe)的值放在应用程序中第一个程序的.csproj的.config(a.cs / a.exe)。但第二个程序似乎无法访问app.config。它存在并且值存在但是当我运行字符串x = ConfigurationManager.AppSettings [“BuildVersion”];时,x始终为空。如果我从a.exe运行相同的代码,它工作正常。这就像app.config有一些嵌入.exe文件中的信息,我无法在任何地方看到或设置。
如何从两个独立的项目中访问anapp.config中的值?
答案 0 :(得分:3)
您可以将app.config
保留在一个项目中,但可以将其添加为另一个项目中的链接(虚拟)文件。来自此处的说明Including content files in .csproj that are outside the project cone
答案 1 :(得分:1)
您是否尝试过添加关联商品?
将app.config放在一个公共位置,然后右键单击每个项目以选择添加 - > 现有项目。选择文件并单击添加按钮上的箭头,然后选择添加为链接。
答案 2 :(得分:0)
您可以使用app.config appSettings节点中的file参数将其指向您需要的其他应用程序配置设置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
</startup>
<appSettings file="C:\MasterConfig.config">
<add key="applicationMode" value="Dev"/>
<add key="ServiceInterval" value="02:00:00"/>
</appSettings>
</configuration>
然后像平常一样参考你需要的物品。
答案 3 :(得分:0)
添加链接工作,但我需要将b.exe.config文件复制到输出目录。我猜这个文件除了a.exe.config之外还生成了它们,它们只是根据添加的链接相互复制。