msbuild опубликовать с другим app.config - PullRequest
0 голосов
/ 28 июля 2011

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

в настоящее время мой скрипт сборки выглядит так:

<PropertyGroup>
    <ProjectFile>.\BarcodeScannerApp\BarcodeScannerApp.csproj</ProjectFile>
    <SolutionFile>.\BarcodeScannerApp.sln</SolutionFile>        
    <PublishLoc>http://publishlocation.com</PublishLoc>
    <Configuration>release</Configuration>
    <GenerateManifests>false</GenerateManifests>
    <BootstrapperEnabled>true</BootstrapperEnabled>
    <ApplicationVersion>1.0.0.*</ApplicationVersion>
    <UpdateEnabled>true</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateUrl>http://backoffice-dev/</UpdateUrl>
</PropertyGroup>

<Target Name="PublishApp">      

    <MSBuild Projects="$(SolutionFile)" 
             Targets="Publish"               
             Properties="PublishUrl=$(PublishLoc);
             Configuration=$(Configuration);
             GenerateManifests=$(GenerateManifests);
             BootstrapperEnabled=$(BootstrapperEnabled);
             ApplicationVersion=$(ApplicationVersion);
             UpdateEnabled=$(UpdateEnabled);
             UpdateMode=$(UpdateMode);
             UpdateUrl=$(UpdateUrl)"
    />

</Target>

в настоящее время, когда этот скриптзапустить, он генерирует файл BarcodeScannerApp.exe.config, который является копией app.config, который у меня есть в решении.Я хочу использовать другой файл конфигурации в зависимости от того, какую конфигурацию я настроил (Отладка / Выпуск).

1 Ответ

1 голос
/ 28 июля 2011

Сначала необходимо определить свойства, которые ссылаются на путь app.config для всех файлов конфигурации, например:

<DebugConfig>...</DebugConfig>
<ReleaseConfig>...</ReleaseConfig>
<TargetConfigPath>...</TargetConfigPath>

А затем, используя WHEN, выбрать подходящий и перезаписать в целевой каталог * 1006.*

<When Condition="'$(Configuration)'=='DEBUG'">
     ...
</When>

<When Condition="'$(Configuration)'=='RELEASE'">
     ...
</When>

Вы можете переписать файлы перед выполнением PublishApp target, введя новую цель и создав зависимость цели.

...