我如何从两个独立的项目引用一个app.config ?csproj文件)



我在我的应用程序中有两个。csproj文件,它们都生成一个。exe,并且都有需要app.config值的c#程序。因此,由于只能有一个app.config文件(它们被构建到同一个文件夹中),我想我只是把第二个程序(让我们称之为b.cs/b.exe)需要的值放在第一个程序(a.cs/a.exe)的.csproj的app.config中。但第二个程序似乎无法访问app.config。它在那里,值在那里,但当我运行字符串x = ConfigurationManager.AppSettings["BuildVersion"];, x总是空的。如果我从a.exe运行相同的代码,它工作得很好。就好像app.config在.exe文件中嵌入了一些信息,我无法在任何地方看到或设置。

任何想法如何我可以访问值在一个应用程序。从两个独立的项目配置?

您可以将app.config留在一个项目中,但将其作为链接的(虚拟)文件添加到另一个项目中。这里的说明包括。csproj中的内容文件,这些文件位于项目锥体之外

    右键单击VS.中的项目
  • Add -> Existing Item…
  • 选择它,
  • 添加为链接(在对话框中的添加按钮下拉)。

您是否尝试过添加链接项?

将app.config放在一个公共位置,然后右键单击每个项目选择Add -> Existing Item。选择文件,点击Add按钮上的箭头,选择Add as link

与Add共享代码

你可以使用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>

然后像平常一样引用你需要的项目。

添加作为链接工作,但我需要复制b.exe.config文件到输出目录太。我猜这个文件是在a.exe.config之外生成的,它们只是基于添加的链接彼此的副本。

最新更新