Вопрос

Я не хочу устанавливать Slow Cheetah на все серверы сборки.

Мы используем Slow Cheetah для преобразования конфигурации, и он работает совершенно нормально.Он генерирует несколько файлов app.config, и мы вносим в них изменения по желанию.

Мы настроили несколько серверов.У всех них есть свои репозитории кода, они извлекают код из командной строки и создают пакеты соответствующим образом.В этих кодах есть эти конфигурационные файлы.Но все же, когда мы компилируем приложение из командной строки, пакеты не генерируются с преобразованием, если на них не установлен slow cheetah.В остальном все работает нормально.

Мы никогда не знаем, когда настраиваем новый сервер и нового пользователя, поэтому невозможно установить Slow cheetah на каждый из них

Можно как-то использовать slow cheetah dll в приложении и вызывать метод transform вручную из него?

Спасибо

Это было полезно?

Решение

Подробный шаг по шаговому процессу, определенному здесь

http://sedodream.com/2011/12/slowchethetahxmltransformsfromaciserver.aspx

Спасибо

Другие советы

Как альтернатива SlowCheth, можно обрабатывать эту функциональность, отредактировав файлы проекта вручную.Это немного более громоздкое, чтобы настроить, но это означает, что у вас не требуется дополнительных DLL.

Откройте файл вашего проекта в текстовом редакторе.В нижней части файла проекта, непосредственно перед закрывающим тегом, включите следующее:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterCompile" Condition="exists('app.$(Configuration).config')">
    <!-- Generate transformed app config in the intermediate directory -->
    <TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
    <!-- Force build process to use the transformed configuration file from now on. -->
    <ItemGroup>
        <AppConfigWithTargetPath Remove="app.config" />
        <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
            <TargetPath>$(TargetFileName).config</TargetPath>
        </AppConfigWithTargetPath>
    </ItemGroup>
</Target>
.

Затем найдите в своем файле проекта строку и замените его следующим:

<ItemGroup>
    <Content Include="App.config" />
    <Content Include="App.Debug.config">
        <DependentUpon>App.config</DependentUpon>
    </Content>
    <Content Include="App.Release.config">
        <DependentUpon>App.config</DependentUpon>
    </Content>
</ItemGroup>
.

Вам нужно добавить дополнительный контент, включите для каждой конфигурации, которую вы добавляете - к сожалению, с этим методом вы не получаете простые «Добавить преобразование» контекстного меню.

После этого это случай создания файлов в вашем каталоге проекта, а затем вы готовы к работе.Это не так, как Slick, как SlowCheth, но он сохраняет ваш код портативным.

Самая последняя версия SlowCheetah (2.5.14) доступна на Самородок.При добавлении через nuget он сохраняется в packages папка в локальном каталоге решения (как и все пакеты nuget), что означает, что теперь она должна работать на любом сервере сборки "из коробки".

Я включаю SlowCheth в приложении, как следующее, чтобы избежать его установки на серверах, которые создают решение:

  1. в вашем решении root, у меня есть инструменты папок, которые содержат (среди прочего) SlowCheth
    1. myproject / tools / slowcheethah / slowcheeth.tasks.dll
    2. myproject / tools / slowchethah / slowcheeth.transforms.targets
    3. в (web-) приложений проекта .csproj-файл, у меня есть это:
      
        <PropertyGroup>
                <SlowCheetahTargets Condition=" '$(SlowCheetahTargets)'=='' ">$(MSBuildProjectDirectory)\..\Tools\SlowCheetah\SlowCheetah.Transforms.targets  </SlowCheetahTargets>
         </PropertyGroup>
      
      .

      И это:

      <Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" />
      
      .

      .. И, кажется, справляется с работой очень хорошо, даже при строительстве / публикации от TeamCity.

      Редактировать:

      Вы найдете два файла, упомянутые в %localappdata%\Microsoft\MSBuild\SlowCheetah\v1 (drive:\Users\yourusername\AppData\Local\Microsoft\MSBuild\SlowCheetah\v1), когда вы установили SlowCheetah в Visual Studio.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top