56 votes

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

Je suis entrain de créer un publiables et quand je navigue à obj\Debug\Package\PackageTmp répertoire, je vois le web.config de la chaîne de connexion est remplacé par un remplaçables jeton, et je ne veux simplement pas que. Je ne vais pas utiliser l'édition de fichiers de commandes ou quoi que ce soit, je vais être de copier les fichiers dans le répertoire (je suis à l'aide de la publication de système de paquets uniquement pour se débarrasser de beaucoup de généré dynamiquement des fichiers alors que je suis en essais de mon projet et d'obtenir les frais/fichier d'origine de l'arborescence de mon projet) je ne veux pas de ces web.config jetons et transforme etc, je veux juste mon web.fichier de configuration pour être copiés comme n'importe quel autre fichier. Comment puis-je y parvenir? J'ai vu l' /p:AutoParameterizationWebConfigConnectionStrings=False méthode pour la commad ligne, mais je ne suis pas en utilisant la ligne de commande, je suis à l'aide de l'interface graphique pour créer le package. Comment vais-je arrêter de web.config de modifier la chaîne de connexion à un jeton?

Et avant de vous dire: Oui, je sais que je peux copier le site web d'origine.config de mon répertoire d'origine, mais je ne veux pas traiter avec cela et que, je veux finir avec un seul clic, comme je suis en essais publier le package et souvent re-création du package.

103voto

Andre Albuquerque Points 826

Vous devez éditer votre fichier .csproj et dans le groupe de propriétés de débogage, vous devrez ajouter les éléments suivants:

 <AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
 

J'ai le suivant sur les configurations Release et ReleaseCERT dans mon Project.csproj (j'ai seulement ajouté la ligne 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>
 

17voto

drzaus Points 3344

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

(Est-ce que c'est peut-être parce que j'utilise VS2012?)

-2voto

Danikenan Points 1

J'ai dû ajouter les éléments suivants dans la section Release conditions de mon fichier Project.csproj :

 <InsertAdditionalWebCofigConnectionStrings>False</InsertAdditionalWebCofigConnectionStrings>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X