web-dev-qa-db-fra.com

Comment se débarrasser de "$ (remplabletank ...)" dans web.config complètement

Je crée un package publiable et quand je vais naviguer vers obj\Debug\Package\PackageTmp Répertoire, je vois que la chaîne de connexion Web.config est remplacée par un jeton remplacé et je ne le veux tout simplement pas. Je n'utiliserai pas de fichiers de lots de publication ou de rien, je vais copier les fichiers de l'annuaire (j'utilise le système de package de publication uniquement pour vous éliminer de nombreux fichiers générés dynamiquement pendant que je teste mon projet et que je reçois L'arborescence de fichiers frais/originale de mon projet) Je ne veux pas que ces jetons Web.config et se transforment, etc., je veux juste que mon fichier web.config soit copié comme n'importe quel autre fichier. Comment puis-je réaliser ça? J'ai vu le /p:AutoParameterizationWebConfigConnectionStrings=False Méthode de la ligne Commun, mais je n'utilise pas la ligne de commande, j'utilise l'interface graphique pour créer le package. Comment vais-i arrêter web.config de changer la chaîne de connexion à un jeton?

Et avant de dire: Oui, je sais que je peux copier le web.config d'origine de mon annuaire d'origine, mais je ne veux pas faire face à cela et que je veux le terminer en un seul clic comme je teste le package de publication et receverez fréquemment le paquet.

56
Can Poyrazoğlu

Vous devez modifier votre fichier .CsProj et dans le groupe de débogage, vous devrez ajouter les éléments suivants:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

J'ai le suivant sur --version et Releasecert Configurations dans mon projet.csproj (je n'ai ajouté que la ligne AutoparamestrationWebConnectionsStringstrings):

<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>
102
Andre Albuquerque

Je devais faire ce que la réponse acceptée dit, mais à la place dans le Properties/PublishProfiles/__THEPROFILE__.pubxml fichier plutôt que le .csproj déposer.

(Cela peut parce que j'utilise VS2012?)

15
drzaus

J'avais un problème similaire lorsque j'essayais de créer un package de projet Web externe pour un Wix Configuration en fonction de la section Travis Illig Instructions =. Je l'ai résolu en ajoutant le AutoParameterizationWebConfigConnectionStrings=False à la MSBuild/@Properties:

<MSBuild Projects="%(ProjectReference.FullPath)"
         Targets="Package"
         Properties="Configuration=$(Configuration);Platform=AnyCPU;AutoParameterizationWebConfigConnectionStrings=False"
         Condition="'%(ProjectReference.WebProject)'=='True'"
5
Ryszard Dżegan