xml - app - SlowCheetah no transforma el archivo en la compilación
app.config transform (6)
Tengo un proyecto para el que estoy intentando usar SlowCheetah. He creado mi archivo de configuración (Test.web.config) y todas las transformaciones que quiero usar (Debug_Mock.config, Debug_SQL.config, Release) en mi configuración de Compilación Tengo un evento posterior a la compilación que se supone que copia el archivo transformado en otro directorio pero el archivo no se puede encontrar
(xcopy error salió con el código 4)
SlowCheetah no parece estar transformando el archivo y colocándolo en el directorio de salida (carpeta bin) como esperaba. ¿Alguien tiene alguna idea de por qué no está sucediendo, tal vez una configuración en algún lugar?
FYI: Este proceso funciona en otra máquina, con el mismo proyecto. Por lo que puedo decir la misma configuración también. Pero puede que no esté buscando en el lugar correcto.
Con SlowCheetah 2.5.15 y Visual Studio 2015, tuve que desinstalar el paquete nuget y luego eliminar manualmente lo siguiente del archivo .csproj relevante:
<Import Project="$(SlowCheetahTargets)" Condition="Exists(''$(SlowCheetahTargets)'')" Label="SlowCheetah" />
y
<PropertyGroup Label="SlowCheetah">
<SlowCheetahToolsPath>$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)/../packages/SlowCheetah.2.5.15/tools/))</SlowCheetahToolsPath>
<SlowCheetah_EnableImportFromNuGet Condition=" ''$(SlowCheetah_EnableImportFromNuGet)''=='''' ">true</SlowCheetah_EnableImportFromNuGet>
<SlowCheetah_NuGetImportPath Condition=" ''$(SlowCheetah_NuGetImportPath)''=='''' ">$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)/Properties/SlowCheetah/SlowCheetah.Transforms.targets ))</SlowCheetah_NuGetImportPath>
<SlowCheetahTargets Condition=" ''$(SlowCheetah_EnableImportFromNuGet)''==''true'' and Exists(''$(SlowCheetah_NuGetImportPath)'') ">$(SlowCheetah_NuGetImportPath)</SlowCheetahTargets>
</PropertyGroup>
Una vez que se hizo esto y se reinstaló el paquete SlowCheetah nuget, mi problema se resolvió.
Después de una reinstalación como se describe anteriormente, tuve que agregar los nodos de subType
y transformOnBuild
a mi archivo csproj, y comenzó a funcionar para mí.
<None Include="App.config">
<SubType>Designer</SubType>
<TransformOnBuild>true</TransformOnBuild>
</None>
<None Include="App.QA.config">
<DependentUpon>App.config</DependentUpon>
<IsTransformFile>True</IsTransformFile>
</None>
Para mí, encontré que el problema era que el grupo de propiedades de guepardo lento en el archivo de configuración estaba debajo de la sección donde comprobaba si existía.
Así que la solución fue simplemente mover el grupo de propiedades por encima de esa línea a algún lugar que permitiera que la transformación se ejecute como se esperaba.
Pon esto:
<PropertyGroup Label="SlowCheetah">
<SlowCheetahToolsPath>$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)/../packages/SlowCheetah.2.5.10.3/tools/))</SlowCheetahToolsPath>
<SlowCheetah_EnableImportFromNuGet Condition=" ''$(SC_EnableImportFromNuGet)''=='''' ">true</SlowCheetah_EnableImportFromNuGet>
<SlowCheetah_NuGetImportPath Condition=" ''$(SlowCheetah_NuGetImportPath)''=='''' ">$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)/Properties/SlowCheetah/SlowCheetah.Transforms.targets ))</SlowCheetah_NuGetImportPath>
<SlowCheetahTargets Condition=" ''$(SlowCheetah_EnableImportFromNuGet)''==''true'' and Exists(''$(SlowCheetah_NuGetImportPath)'') ">$(SlowCheetah_NuGetImportPath)</SlowCheetahTargets>
</PropertyGroup>
Encima de esto:
<Import Project="$(SlowCheetahTargets)" Condition="Exists(''$(SlowCheetahTargets)'')" Label="SlowCheetah" />
Tenga en cuenta que debe instalar la extensión de estudio visual SlowCheetah Y el paquete de nugets SlowCheetah para el proyecto en cuestión para que la transformación funcione.
Verifique su proyecto, si existe una carpeta llamada SlowCheetah que contiene el archivo SlowCheetah.Transforms.targets . Si falta este archivo, intente los siguientes pasos:
- haga clic derecho en la solución
- "Administrar paquetes NuGet para la solución ...", busque SlowCheetah
- haga clic en "Administrar"
- deselecciona tu proyecto y haz clic en "Aceptar"
- haga clic en "Administrar" de nuevo
- Seleccione su proyecto y haga clic una vez más "Ok"
Esto recreará el archivo que falta.
Active la verbosidad de compilación (
Tools -> Options -> Projects and Solutions -> Build and Run
) y vea la diferencia entre la versión que está funcionando y la que no.Que yo sepa, slow-Cheetah admite transformaciones de configuración para los archivos
app.config
pero noweb.configs
en depuración en la actualidad. Debería colocar un archivoweb.config
transformado en la carpetabin
de su proyecto, pero su proyecto aún se lee en elconfig file
en la carpeta raíz. Por favor, eche un vistazo a los eventos de compilación pre / post en http://sedodream.com/CommentView,guid,68b7e248-b9f5-4d07-bdfe-eb037bcf2cbb.aspx .Puede solicitar soporte de transformación de configuración web en depuración en
https://github.com/sayedihashimi/slow-cheetah/issues/39Intente volver a instalar Slow-Cheetah.