MSBuild Изменить значение конфигурации на основе сборки отладки / выпуска - PullRequest
3 голосов
/ 17 января 2011

В моем app.config у меня есть

<endpoint address="http://debug.example.com/Endpoint.asmx" stuff />

Как я могу изменить задачи сборки, чтобы при сборке релиза менялся адрес конечной точки на

<endpoint address="http://live.example.com/Endpoint.asmx" stuff />

Ответы [ 3 ]

4 голосов
/ 17 января 2011

Если ваши конфигурации отладки / выпуска называются Debug и Release соответственно, это должно сделать это:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
  <endpoint address="http://debug.example.com/Endpoint.asmx" stuff />
  <!-- other things depending on Debug Configuration can go here -->
</PropertGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
  <endpoint address="http://live.example.com/Endpoint.asmx" stuff />
</PropertGroup>
2 голосов
/ 17 января 2011

Если вы используете пакет расширения MSBuild , задача Xml позволит вам изменить запись в файле XML. Импортируйте пользовательские задачи в файл MSBuild:

<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.tasks" />

и обновите значение XML:

<PropertyGroup>
   <OldValue>http://debug.example.com/Endpoint.asmx</OldValue>
   <NewValue>http://live.example.com/Endpoint.asmx</NewValue>
</PropertyGroup>

<MSBuild.ExtensionPack.Xml.XmlFile 
    TaskAction="UpdateAttribute" 
    File="app.config" 
    XPath="/configuration/system.serviceModel/client/endpoint[@address='$(OldValue)']" 
    Key="address"
    Value="$(NewValue)"
/>

Замените ваш XPath и выполняйте его только во время сборки релиза, используя Condition.

0 голосов
/ 18 сентября 2013

Если вы используете VS 2012 или выше, вы можете добавить преобразование конфигурации, чтобы заменить значения при сборке. Если вы используете 2010, это доступно для web.config автоматически, но для app.configs вам придется немного взломать файл * .csproj, описанный здесь: http://www.andrewdenhertog.com/msbuild/setting-web-app-settings-configuration-transforms-ducks-nuts-msbuild-part-8/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...