Application Web ASP.Net Ajouter une transformation de configuration grisée


88

J'ai ajouté un projet d'application Web ASP.Net existant à ma solution. En plus des configurations de débogage et de publication standard, cette solution a é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 "Ajouter une transformation de configuration" est grisée.

Je suis à perte. 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.

Pensées?

Réponses:


115

Vous devez d'abord définir les configurations dans Configuration Manager. Pour être sûr que vous affichez Configuration Manager, vous pouvez y accéder en accédant à: Build-> Configuraton Manager

Dans la liste déroulante 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 causera que des maux de tête.


6
Duh. J'avais essayé cela avant mais je n'ai pas réussi à décocher la case "créer", donc cela échouait en tant que "duplicata". Dès que j'ai décoché la case "créer", cela a fonctionné.
paulv7260

@maplemale Même chose ici, option toujours grise
Anders Lindén

Je suis désolé, je ne me souviens pas comment cela fonctionne.J'ai peut-être piraté le fichier sln directement, contrairement à la réponse de Jeremy, c'est parfois juste la seule option viable dans le temps. Je n'ai pas eu ce problème depuis la mise à niveau vers VS2015.
maplemale

2
Les configurations de solution et de projet sont différentes! Vous devez créer une configuration dans un projet donné avant de pouvoir utiliser cette transformation. Cochez «Créer de nouvelles configurations de projet» pour créer la configuration dans tous les projets à la fois, ou faites-le individuellement comme @ paulv7260 l'a fait.
Patrick

1
S'il est toujours grisé, assurez-vous que votre projet Web a une configuration de construction qui correspond au nom de la configuration de la solution et assurez-vous qu'elle est sélectionnée.
jmatthias

45

Comme nous travaillons avec PublishProfiles, pour moi, la réponse était de cliquer avec le bouton droit de la souris sur le pubxmlfichier pertinent (situé dans le Propertiessous- dossier du dossier du projet PublishProfiles), puis de sélectionner Add Config Transform. Aucun gestionnaire nécessaire;).


Cette solution fonctionne beaucoup mieux pour moi car je ne veux que cette transformation ajoutée, rien d'autre. La nouvelle configuration de la solution active a un impact sur tous les projets de la solution, ce qui n'est pas pertinent dans mon cas. Merci!
Ben

Parfait. Fonctionne dans mon ancien projet Web Forms que je modifie actuellement dans Visual Studio 2015. J'adore. Merci.
bkwdesign

5
Testé et fonctionne sur VS 2015. Cependant, je ne comprends toujours pas pourquoi "Ajouter une transformation de configuration" est grisé
Illidan

20

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

Cliquer sur "Afficher tous les fichiers" a révélé que les fichiers étaient déjà là - seulement cachés. Par conséquent, le bouton était grisé (car il n'est pas nécessaire de les ajouter car ils sont déjà là).

  1. Cliquez sur l'icône "Afficher tous les fichiers":
    entrez la description de l'image ici

  2. Vous pouvez maintenant développer "Web.config":
    entrez la description de l'image ici

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

Remarques:

  • Je ne voulais pas ajouter de configuration supplémentaire, utilisez simplement Debug and Release . Si vous en créez un, sélectionnez-le et que le fichier de transformation n'existe pas encore, l'élément de menu contextuel Ajouter une transformation de configuration est actif et n'est pas grisé.

  • Si vous souhaitez créer des fichiers de transformation de configuration supplémentaires , 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 un autre, procédez comme suit: Via le gestionnaire de configuration (le menu déroulant où vous pouvez sélectionner Déboguer ou Libérer), ajoutez d'abord une nouvelle configuration, par exemple myNewConfig. Sélectionnez ensuite myNewConfig. Sélectionnez maintenant Web.config dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris et sélectionnez dans le menu contextuel "Ajouter une transformation de configuration" - cela créera Web.myNewConfig.config. Une fois qu'il existe, le menu contextuel sera à nouveau grisé, car VS n'autorise qu'une seule transformation par configuration.


C'était la situation pour moi aussi. Je voulais que les fichiers de transformation de configuration restent visibles, j'ai donc commenté le <DependentUpon>Web.config</DependentUpon>dans le fichier de projet. Les transformations fonctionnent toujours comme prévu.
Ethan

Comment puis-je ajouter de nouvelles transformations de configuration?
Reshma

@Reshma - Dans Visual Studio, les transformations de configuration sont corrélées aux configurations. Via le gestionnaire de configuration (le menu déroulant où vous pouvez sélectionner Debug ou Release), ajoutez d'abord une nouvelle configuration, par exemple myNewConfig. Sélectionnez ensuite myNewConfig. Sélectionnez maintenant Web.config, faites un clic droit et sélectionnez dans le menu contextuel "Ajouter une transformation de configuration" - cela créera Web.myNewConfig.config.
Matt

Je l'ai fait Matt et j'ai pu ajouter un fichier de configuration, mais j'essaie d'ajouter un autre fichier de configuration et maintenant à nouveau le "Ajouter une transformation de configuration" est grisé. J'ai également créé un nouveau fichier de configuration pour le prochain fichier de configuration
Reshma

1
@Reshma - C'est correct, car vous ne pouvez en avoir qu'un par configuration. Pour en obtenir une autre, ajoutez une configuration supplémentaire, par exemple myNewConfig2. Sélectionnez ensuite myNewConfig2 et réessayez. Il ne devrait pas être gris cette fois - sélectionnez-le. Remarque: il sera grisé dès qu'un fichier de configuration pour cette configuration existe.
Matt

1

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

Add Config Transform était grisé.

J'ai ajouté le XML suivant à mon csproj et rechargé le projet. puis Add Config Transform était disponible. une fois sélectionnée, mes transformations d'addition 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>

1

J'ai résolu cela en réalisant deux choses:

  1. Il existe une configuration au niveau de la solution et des configurations au niveau du projet . Le fichier web.MyConfigName.config est créé en fonction des configurations au niveau du projet .
  2. Il semble que Visual Studio 2017 Configuration Manager base les configurations à ajouter à partir du dossier obj (masqué). La suppression du dossier obj pour le projet et la reconstruction mettront à jour le projet avec les configurations que vous avez ajoutées.

Pour rendre l'option "ajouter une transformation de configuration" disponible, procédez comme suit:

  1. Assurez-vous que vous avez activé Afficher les fichiers cachés
  2. Ouvrir le gestionnaire de configuration pour la solution
  3. Choisissez la configuration de solution appropriée , puis dans la liste déroulante à côté de votre projet, choisissez <New..>ou <Edit..>ajoutez, supprimez ou modifiez les configurations de projet souhaitées.
  4. Supprimez le dossier obj de votre projet. Reconstruire. Assurez-vous d'enregistrer 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 sous forme de dossiers dans votre dossier obj.
  5. Cliquez avec le bouton droit sur web.config et ajoutez votre transformation de configuration.

J'espère que ça aide quelqu'un. :)


1

Comment activer l'option "Ajouter une transformation de configuration". Veuillez suivre les étapes ci-dessous. Étape 1: Accédez à la configuration de la solution (sous l'équipe) Allez à la configuration de la solution (sous l'équipe)

Étape 2: Cliquez sur Configuration Manager Cliquez sur Configuration Manager

Étape 3: Sélectionnez Nouveau dans la fenêtre de configuration de la solution active Sélectionnez Nouveau dans la fenêtre de configuration de la solution active

Étape 4: Maintenant, donnez un nom significatif à votre nouvel élément comme Production / Staging et sélectionnez le paramètre de copie dans l'option "Release". Assurez-vous d'avoir coché la case si elle ne vient pas cochée par défaut et cliquez sur OK. Maintenant, donnez un nom significatif à votre nouvel élément comme Production / Mise en scène

Étape 5: Revenez maintenant à votre explorateur de solutions et faites un clic droit sur votre fichier Web.Config. Ajouter une transformation de configuration est activé maintenant

Hola! Ajouter une transformation de configuration est maintenant activé. :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.