Как получить доступ к app.config для события BeforeBuild из пользовательской задачи MSBuild?

Я написал специальную задачу 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");

Моя пользовательская задача не может видеть это, хотя, и GetConfig возвращается null,

Что мне здесь делать? Я предпочел бы не переписывать мой обработчик пользовательских разделов конфигурации, и меня больше интересует, скажем, указание файла app.config в свойстве MSBuild, но я сделаю все, что нужно.

2 ответа

Решение

более заинтересованы, скажем, в указании файла app.config в свойстве MSBuild

Это то, что я сделал. Работал нормально.

Вы пробовали метод ConfigurationManager.OpenExeConfiguration? Вероятно, вам следует передать этот путь в вашу задачу из вызывающего ее скрипта MSBuild.

Поскольку приложение, которое работает в данный момент, - это msbuild.exe, загруженная конфигурация была msbuild.exe.config, когда вы пытаетесь получить доступ к элементам конфигурации, как это обычно происходит в вашем приложении, вы не получите значения в файле app.config.,

Другие вопросы по тегам