Как получить доступ к 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.,