Pregunta

No quiero instalar Slow Cheetah en todos los servidores de compilación.

Estamos utilizando Slow Cheetah config transformaciones y está funcionando perfectamente bien.Genera múltiples de la aplicación.los archivos de configuración y hacemos cambios como desee.

Tenemos el programa de instalación de varios servidores.Todos ellos tiene su código de repositorios, que tire el código de línea de comandos y construir los paquetes en consecuencia.Aquellos códigos que tiene los archivos de configuración en el mismo.Pero aún cuando se compile la aplicación desde la línea de comandos, los paquetes no se genera con la transformación, si slow cheetah no está instalado en ellos.De lo contrario, funciona bien.

Nunca sabemos cuando nos instalación de un nuevo servidor y un usuario nuevo, por lo que no es posible instalar Slow cheetah en cada uno de ellos

Es posible de alguna manera lenta cheetah dll en la aplicación y llamar al método de transformación de forma manual a partir de ella?

Gracias

¿Fue útil?

Otros consejos

Como alternativa a Slowcheetah, es posible manejar esta funcionalidad editando manualmente los archivos de su proyecto.Es un poco más engorroso para configurar, pero sí significa que no se requiere DLL adicionales.

Abra su archivo de proyecto en un editor de texto.En la parte inferior del archivo del proyecto, justo antes de la etiqueta de cierre, incluya lo siguiente:

<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>

Luego, busque en su archivo de proyecto la línea y reemplácelo con lo siguiente:

<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>

Deberá agregar un contenido adicional Incluir para cada configuración que agregue, desafortunadamente con este método, no obtiene el menú contextual "Agregar transformas" sencillo.

Después de eso, es un caso de crear los archivos en su directorio de proyecto, y luego está listo para ir.No es tan resbaladizo como Slowcheetah, pero sí mantiene su código portátil.

La versión más reciente de SlowCheetah (2.5.14) está disponible en Nuget.Cuando se añade a través de nuget es almacenado en la packages carpeta en la solución local de directorio (como todos los paquetes de nuget), lo que significa que debería funcionar en cualquier servidor de generación de la caja ahora.

Incluyo SloweEtah en la aplicación como la siguiente, para evitar que se instale en los servidores que construyen la solución:

  1. En mi raíz de solución, tengo una carpeta herramientas que contienen (entre otras cosas) SloweEtah
    1. MyProject / Tools / SloweEtah / SloweEtah.tasks.dll
    2. MyProject / Herramientas / SloweEtah / SloweEtah.Transforms.Targets
    3. En el archivo .csproj de proyecto de aplicación (web-), tengo esto:
      
        <PropertyGroup>
                <SlowCheetahTargets Condition=" '$(SlowCheetahTargets)'=='' ">$(MSBuildProjectDirectory)\..\Tools\SlowCheetah\SlowCheetah.Transforms.targets  </SlowCheetahTargets>
         </PropertyGroup>
      

      y esto:

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

      .. y parece manejar el trabajo muy bien, incluso cuando se construyen / publicando desde Teamcity.

      Editar:

      Encontrará los dos archivos mencionados en %localappdata%\Microsoft\MSBuild\SlowCheetah\v1 (drive:\Users\yourusername\AppData\Local\Microsoft\MSBuild\SlowCheetah\v1) cuando haya instalado SloweEtah en Visual Studio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top