Cómo deshacerse de "Repl(ReplacableToken))" en la web.config completamente


Estoy creando un paquete publicable y cuando navego al directorio obj\Debug\Package\PackageTmp, estoy viendo la web.la cadena de conexión de config es reemplazada por un token reemplazable, y simplemente no quiero eso. No voy a utilizar la publicación de archivos por lotes ni nada, voy a copiar los archivos en el directorio (estoy utilizando el sistema de paquetes de publicación solo para deshacerse de un montón de archivos generados dinámicamente mientras estoy probando mi proyecto y obtener el árbol de archivos fresco/original de mi proyecto) web.config tokens y transformaciones, etc., solo quiero mi web.archivo de configuración a copiar como cualquier otro archivo. ¿Cómo lo logro? He visto el método /p:AutoParameterizationWebConfigConnectionStrings=False para la línea de comandos pero no estoy usando la línea de comandos, estoy usando la GUI para crear el paquete. ¿Cómo voy a detener web.config de cambiar la cadena de conexión a un token?

Y antes de decir: Sí, sé que puedo copiar la web original.config de mi directorio original, pero no quiero tratar con esto y aquello, quiero termínelo con un solo clic mientras estoy probando el paquete de publicación y recreando el paquete con frecuencia.

4 answers

Tienes que editar tu .csproj y en el PropertyGroup de depuración tendrás que añadir lo siguiente:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

Tengo las siguientes Configuraciones en Release y ReleaseCERT en mi Proyecto.csproj (Solo he añadido la línea AutoParameterizationWebConfigConnectionStrings):

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '**Release**|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <!-- add the following line to avoid ConnectionString tokenization -->
    <AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == '**ReleaseCERT**|AnyCPU'">
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <!-- add the following line to avoid ConnectionString tokenization -->
    <AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
</PropertyGroup>
 101
Author: Andre Albuquerque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-28 16:37:23

Tuve que hacer lo que la respuesta aceptada dijo, pero en su lugar en el archivo Properties/PublishProfiles/__THEPROFILE__.pubxml en lugar del archivo .csproj.

(esto puede porque estoy usando VS2012?)

 15
Author: drzaus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:36

Tuve un problema similar cuando estaba tratando de crear un paquete de proyecto web externamente para una configuración WiX de acuerdo con las instrucciones Travis Illig. Lo resolví añadiendo el AutoParameterizationWebConfigConnectionStrings=False al MSBuild/@Properties:

<MSBuild Projects="%(ProjectReference.FullPath)"
         Targets="Package"
         Properties="Configuration=$(Configuration);Platform=AnyCPU;AutoParameterizationWebConfigConnectionStrings=False"
         Condition="'%(ProjectReference.WebProject)'=='True'"
 5
Author: Ryszard Dżegan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-05 11:47:14

Tuve que agregar lo siguiente en la sección de condición Release de mi archivo Project.csproj:

<InsertAdditionalWebCofigConnectionStrings>False</InsertAdditionalWebCofigConnectionStrings>
 -2
Author: Danikenan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-03 18:34:30