如何从自定义MSBuild任务访问BeforeBuild事件上的app.config?

如何从自定义MSBuild任务访问BeforeBuild事件上的app.config?,msbuild,app-config,msbuild-task,Msbuild,App Config,Msbuild Task,我编写了一个自定义MSBuild任务,以从MSSQL存储过程生成模型代码。我希望对我的任务使用与应用程序相同的配置来连接到数据库。我创建了一个如下所示的配置部分 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="CoreDataConnections" type="CoreData.ConfigHandler, Cor

我编写了一个自定义MSBuild任务,以从MSSQL存储过程生成模型代码。我希望对我的任务使用与应用程序相同的配置来连接到数据库。我创建了一个如下所示的配置部分

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="CoreDataConnections" type="CoreData.ConfigHandler, CoreData"></section>
  </configSections>
  <CoreDataConnections>
  <Connection Name="BillingDB" ConnectionString="Data Source=SERVER0;Initial Catalog=DB0;persist security info=False;user id=user;password=password;packet size=4096"/>
  <Connection Name="ValidationDB" ConnectionString="data source=SERVER1;initial catalog=DB1;persist security info=False;user id=user;password=password;packet size=4096"/>
  </CoreDataConnections>
</configuration>

并通过我的应用程序全天访问它,如下所示:

Dictionary<string,string> Connections = (Dictionary<string,string>)ConfigurationSettings.GetConfig("CoreDataConnections");
Dictionary Connections=(Dictionary)ConfigurationSettings.GetConfig(“CoreDataConnections”);
但是,我的自定义任务无法看到它,并且
GetConfig
返回
null

我在这里该怎么办?我不想重写我的自定义配置节处理程序,我更感兴趣的是(比如)在MSBuild属性中指定app.config文件,但我会尽我所能。

您尝试过该方法吗?您可能应该将该路径从调用它的MSBuild脚本传递到任务中

由于当时运行的应用程序是msbuild.exe,因此当您尝试像通常在应用程序中那样访问配置元素时,加载的配置是msbuild.exe.config,因此将无法在app.config文件中获取值

更感兴趣的是,比如在MSBuild属性中指定app.config文件


我就是这么做的。工作得很好。

我最后就是这么做的。他回来看到了这个答案。