我如何从两个独立的项目引用一个app.config ?csproj文件)
本文关键字:一个 app config 文件 csproj 引用 独立 两个 项目 | 更新日期: 2023-09-27 18:08:21
我在我的应用程序中有两个。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之外生成的,它们只是基于添加的链接彼此的副本。