92 votes

Application Web ASP.Net - Transformation de l'ajout de configuration en grisé

J'ai ajouté un projet d'application web ASP.Net existant à ma solution. En plus des configurations standard debug et release, cette solution possède également deux configurations personnalisées, SAT et UAT. Pour la nouvelle application web, un clic droit sur Web.Config affiche le menu contextuel mais l'option "Add Config Transform" est grisée.

Je suis perdu. Le nouveau projet est une application Web. Le gestionnaire de configuration n'affiche pas les deux configurations personnalisées pour ce projet, mais il le fait pour les autres projets. Le projet semble avoir les entrées correctes dans le fichier de solution.

Qu'en pensez-vous ?

124voto

Jeremy Points 5868

Vous devez d'abord définir les configurations dans le gestionnaire de configuration. Pour être sûr que vous faites apparaître le gestionnaire de configuration, vous pouvez y accéder en allant dans : Build->Configuraton Manager

En el Configuration de la solution active sélectionnez <New...> . Une fois que vous avez ajouté, vous pourrez alors "Ajouter une transformation de configuration".

Ne modifiez pas directement votre fichier de solution. Cela ne fera que causer des maux de tête.

50voto

Sub S7v7n Points 1

Comme nous travaillons avec PublishProfiles, pour moi la réponse a été de cliquer avec le bouton droit de la souris sur le fichier concerné. pubxml (qui se trouve dans le dossier du projet Properties sous-dossier PublishProfiles ), puis sélectionnez Add Config Transform . Aucun gestionnaire n'est nécessaire ;).

22voto

Matt Points 3445

Dans mon cas, dans Visual Studio 2015, lorsque j'ai créé une nouvelle solution basée sur un modèle de projet, Ajouter la transformation de la configuration était grisé - mais pour une raison différente :

En cliquant sur "Afficher tous les fichiers" a révélé que les fichiers étaient déjà là, mais cachés. Le bouton était donc grisé (car il n'est pas nécessaire de les ajouter puisqu'ils sont déjà là).

  1. Cliquez sur l'icône "Afficher tous les fichiers" :
    enter image description here

  2. Vous pouvez maintenant développer "Web.config" :
    enter image description here

  3. Double-cliquez sur l'un des fichiers de transformation ( Web.Debug.config o Web.Release.config ) pour l'ouvrir et le modifier.

Notes :

  • Je n'ai pas voulu ajouter une configuration supplémentaire, mais utiliser simplement Déboguer y Communiqué de presse . Si vous en créez un, que vous le sélectionnez et que le fichier de transformation n'existe pas encore, l'élément de menu contextuel Ajouter la transformation de la configuration est active et non grisée.

  • Une autre méthode consiste à supprimer (ou à déplacer les fichiers en dehors du répertoire du projet), puis à les recréer à partir de zéro (via le bouton Ajouter la transformation de la configuration ). Comme ils ne sont plus là, le menu ne devrait pas être grisé. Il peut être nécessaire de fermer et de rouvrir la solution après avoir supprimé les fichiers.

  • Si vous voulez créer une transformation de configuration supplémentaire gardez à l'esprit que dans Visual Studio, les transformations de configuration sont corrélées aux configurations. Pour ajouter une autre transformation, vous devez d'abord ajouter une nouvelle configuration. Pour en ajouter une autre, procédez comme suit : Via le gestionnaire de configuration (la liste déroulante où vous pouvez sélectionner Debug ou Release), ajoutez d'abord une nouvelle configuration, par exemple myNewConfig. Sélectionnez ensuite maNouvelleConfig. Sélectionnez maintenant Web.config dans l'explorateur de solutions, faites un clic droit et sélectionnez dans le menu contextuel "Add Config Transform" - cela créera Web.myNewConfig.config. Une fois qu'elle existe, le menu contextuel sera à nouveau grisé, car VS ne permet qu'une seule transformation par configuration.

4voto

J'ai résolu ce problème en réalisant deux choses :

  1. Hay un Solution et il existe une configuration de niveau Projet configurations de niveau. Le fichier web.MyConfigName.config est créé sur la base des éléments suivants projet configurations de niveau.
  2. Il semble que le gestionnaire de configuration de Visual Studio 2017 base les configurations à ajouter à partir du dossier (caché) obj. Supprimer le dossier obj pour le projet et reconstruire mettra à jour le projet avec les configurations que vous avez ajoutées.

Pour rendre l'option "add config transform" disponible, suivez ces étapes :

  1. Assurez-vous que vous avez activé la fonction Afficher les fichiers cachés
  2. Ouvrez le gestionnaire de configuration pour le Solution
  3. Choisissez l'élément pertinent Solution puis dans la liste déroulante à côté de votre projet, choisissez <New..> o <Edit..> et ajouter, supprimer ou modifier ce qui Projet les configurations que vous voulez.
  4. Supprimez le dossier obj de votre projet. Reconstruisez. Assurez-vous de sauvegarder les modifications apportées à vos fichiers de projet et de solution. J'ai également redémarré Visual Studio, car pourquoi pas. Vérifiez que vous voyez toutes les configurations de votre projet comme des dossiers dans votre dossier obj.
  5. Cliquez à droite sur web.config et ajoutez votre transformation de configuration.

J'espère que cela aidera quelqu'un :)

1voto

JGilmartin Points 1974

Pour que cela fonctionne, j'ai dû ajouter de nouveaux groupes de propriétés à mon fichier csproj.

Ajouter la transformation de la configuration a été grisé.

j'ai ajouté le XML suivant à mon csproj et j'ai rechargé le projet. alors Add Config Transform était disponible. une fois sélectionné, mes transformations supplémentaires ont été ajoutées

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'IAT_CMCD|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'UAT_CM|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

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