ASP.Net-Webanwendung Config-Transformation hinzufügen abgeblendet


87

Ich habe meiner Lösung ein vorhandenes ASP.Net-Webanwendungsprojekt hinzugefügt. Zusätzlich zu den Standard-Debug- und Release-Konfigurationen verfügt diese Lösung über zwei benutzerdefinierte Konfigurationen, SAT und UAT. Für die neue Webanwendung wird durch Klicken mit der rechten Maustaste auf Web.Config das Kontextmenü angezeigt, die Option für "Add Config Transform" ist jedoch abgeblendet.

Ich bin ratlos. Das neue Projekt ist eine Webanwendung. Der Konfigurationsmanager zeigt nicht die beiden benutzerdefinierten Konfigurationen für dieses Projekt an, sondern für die anderen Projekte. Das Projekt scheint die richtigen Einträge in der Lösungsdatei zu haben.

Gedanken?

Antworten:


113

Sie müssen zuerst die Konfigurationen im Configuration Manager definieren. Um sicherzugehen, dass Sie den Configuration Manager aufrufen, können Sie darauf zugreifen, indem Sie auf Build-> Configuraton Manager gehen

Wählen Sie in der Dropdown-Liste Active Solution Configuration die Option Active Solution Configuration aus <New...>. Sobald Sie hinzugefügt haben, können Sie "Config Transform hinzufügen".

Bearbeiten Sie Ihre Lösungsdatei nicht direkt. Es wird nur Kopfschmerzen verursachen.


6
Duh. Ich hatte das schon einmal versucht, aber das Kontrollkästchen "Erstellen" konnte nicht deaktiviert werden, sodass es als "Duplikat" fehlschlug. Sobald ich das Kontrollkästchen "Erstellen" deaktiviert hatte, funktionierte es.
paulv7260

@maplemale Gleiche hier, Option noch grau
Anders Lindén

Es tut mir leid, ich kann mich nicht erinnern, wie ich das zum Laufen gebracht habe. Ich habe die sln-Datei möglicherweise direkt gehackt, entgegen Jeremys Antwort, es ist manchmal nur die einzige zeitfähige Option. Ich habe dieses Problem seit dem Upgrade auf VS2015 nicht mehr gehabt.
Maplemale

2
Lösungs- und Projektkonfigurationen sind unterschiedlich! Sie müssen eine Konfiguration in einem bestimmten Projekt erstellen, bevor diese Transformation verwendet werden kann. Aktivieren Sie entweder "Neue Projektkonfigurationen erstellen", um die Konfiguration in allen Projekten gleichzeitig zu erstellen, oder führen Sie sie einzeln aus, wie dies bei @ paulv7260 der Fall war.
Patrick

Ich habe überhaupt keine Option. Bereits eine Build-Konfiguration hinzugefügt.
MrFox

42

Während wir mit PublishProfiles arbeiten, war die Antwort für mich, mit der rechten Maustaste auf die entsprechende pubxmlDatei (im PropertiesUnterordner des Projektordners PublishProfiles) zu klicken und dann auszuwählen Add Config Transform. Keine Manager benötigt;).


Diese Lösung funktioniert für mich viel besser, da ich nur diese Transformation hinzufügen möchte, sonst nichts. Die neue aktive Lösungskonfiguration wirkt sich auf alle Projekte in der Lösung aus, was in meinem Fall nicht relevant ist. Vielen Dank!
Ben

Perfekt. Funktioniert in meinem alten Web Forms-Projekt, das ich jetzt in Visual Studio 2015 bearbeite. Ich liebe es. Danke dir.
bkwdesign

5
Getestet und an VS 2015 arbeitend. Ich kann jedoch immer noch nicht verstehen, warum die "Add Config Transform"
abgeblendet

20

In meinem Fall war in Visual Studio 2015, als ich eine neue Lösung basierend auf einer Projektvorlage erstellte, die Konfigurationstransformation hinzufügen ausgegraut - jedoch aus einem anderen Grund:

Wenn Sie auf "Alle Dateien anzeigen " klicken , werden die Dateien bereits angezeigt - nur ausgeblendet. Daher wurde die Schaltfläche ausgegraut (da sie nicht hinzugefügt werden müssen, da sie bereits vorhanden sind).

  1. Klicken Sie auf das Symbol "Alle Dateien anzeigen":
    Geben Sie hier die Bildbeschreibung ein

  2. Jetzt können Sie "Web.config" erweitern:
    Geben Sie hier die Bildbeschreibung ein

  3. Doppelklicken Sie auf eine der Transformationsdateien ( Web.Debug.configoder Web.Release.config), um sie zu öffnen und zu bearbeiten.

Anmerkungen:

  • Ich wollte keine zusätzliche Konfiguration hinzufügen, sondern nur Debug und Release verwenden . Wenn Sie eine erstellen, diese auswählen und die Transformationsdatei noch nicht vorhanden ist, ist der Kontextmenüpunkt Konfigurationsumwandlung hinzufügen aktiv und nicht ausgegraut.

  • Wenn Sie zusätzliche Konfigurationstransformationsdateien erstellen möchten, beachten Sie, dass in Visual Studio Konfigurationstransformationen mit Konfigurationen korreliert sind. Um eine weitere Transformation hinzuzufügen, müssen Sie zuerst eine neue Konfiguration hinzufügen. Gehen Sie wie folgt vor, um eine weitere hinzuzufügen: Fügen Sie über den Konfigurationsmanager (die Dropdown-Liste, in der Sie Debug oder Release auswählen können) zuerst eine neue Konfiguration hinzu, z. B. myNewConfig. Wählen Sie dann myNewConfig. Wählen Sie nun im Projektmappen-Explorer Web.config aus, klicken Sie mit der rechten Maustaste und wählen Sie im Kontextmenü "Config Transform hinzufügen" - es wird Web.myNewConfig.config erstellt. Sobald es vorhanden ist, wird das Kontextmenü wieder abgeblendet, da VS nur eine Transformation pro Konfiguration zulässt.


Dies war auch für mich die Situation. Ich wollte, dass die Konfigurationsumwandlungsdateien sichtbar bleiben, also habe ich die <DependentUpon>Web.config</DependentUpon>in der Projektdatei auskommentiert. Die Transformationen funktionieren weiterhin wie erwartet.
Ethan

Wie kann ich neue Konfigurationstransformationen hinzufügen?
Reshma

@Reshma - In Visual Studio werden Konfigurationstransformationen mit Konfigurationen korreliert. Fügen Sie über den Konfigurationsmanager (die Dropdown-Liste, in der Sie Debug oder Release auswählen können) zuerst eine neue Konfiguration hinzu, z. B. myNewConfig. Wählen Sie dann myNewConfig. Wählen Sie nun Web.config aus, klicken Sie mit der rechten Maustaste und wählen Sie im Kontextmenü "Add Config Transform" - es wird Web.myNewConfig.config erstellt.
Matt

Ich habe das getan, Matt, und konnte eine Konfigurationsdatei hinzufügen, aber ich versuche, eine andere Konfigurationsdatei hinzuzufügen, und jetzt ist die "Konfiguration hinzufügen" wieder abgeblendet. Ich habe auch eine neue Konfigurationsdatei für die nächste Konfigurationsdatei erstellt
Reshma

1
@Reshma - Das ist richtig, da Sie nur eine pro Konfiguration haben können. Fügen Sie eine zusätzliche Konfiguration hinzu, z. B. myNewConfig2, um eine weitere zu erhalten. Wählen Sie dann myNewConfig2 und versuchen Sie es erneut. Diesmal sollte es nicht grau sein - wählen Sie es aus. Hinweis: Sobald eine Konfigurationsdatei für diese Konfiguration vorhanden ist, wird sie ausgegraut.
Matt

1

Damit dies funktioniert, musste ich meiner csproj-Datei neue Eigenschaftsgruppen hinzufügen.

Config Transform hinzufügen wurde abgeblendet.

Ich habe das folgende XML zu meinem csproj hinzugefügt und das Projekt neu geladen. dann war Add Config Transform verfügbar. Nach der Auswahl wurden meine Additionstransformationen hinzugefügt

<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

Ich habe dies gelöst, indem ich zwei Dinge realisiert habe:

  1. Es gibt eine Lösung Level - Konfiguration, und es gibt Projektebene Konfigurationen. Die Datei web.MyConfigName.config wird basierend auf dem Projekt erstellt Konfigurationen .
  2. Es scheint, dass Visual Studio 2017 Configuration Manager darauf basiert, welche Konfigurationen aus dem (versteckten) obj-Ordner hinzugefügt werden sollen. Durch Löschen des obj-Ordners für das Projekt und erneutes Erstellen wird das Projekt mit den von Ihnen hinzugefügten Konfigurationen aktualisiert.

Gehen Sie folgendermaßen vor, um die Option "Konfigurationsumwandlung hinzufügen" verfügbar zu machen:

  1. Stellen Sie sicher, dass Sie die Option Versteckte Dateien anzeigen aktiviert haben
  2. Öffnen Sie den Konfigurationsmanager für die Lösung
  3. Wählen Sie die entsprechende Lösung Config, dann in der Dropdown - Liste neben Ihrem Projekt Pick <New..>oder <Edit..>hinzuzufügen, zu entfernen oder zu bearbeiten , was Projekt configs Sie wollen.
  4. Löschen Sie den Ordner obj in Ihrem Projekt. Wiederaufbauen. Stellen Sie sicher, dass Sie die Änderungen an Ihren Projekt- und Lösungsdateien speichern. Ich habe auch Visual Studio neu gestartet, weil warum nicht. Stellen Sie sicher, dass alle Ihre Projektkonfigurationen als Ordner in Ihrem obj-Ordner angezeigt werden.
  5. Klicken Sie mit der rechten Maustaste auf web.config und fügen Sie Ihre Konfigurationsumwandlung hinzu.

Hoffe es hilft jemandem. :) :)


1

So aktivieren Sie die Option "Konfigurationsumwandlung hinzufügen". Bitte befolgen Sie die folgenden Schritte. Schritt 1: Gehen Sie zur Lösungskonfiguration (unter dem Team). Gehen Sie zur Lösungskonfiguration (unter dem Team).

Schritt 2: Klicken Sie auf Configuration Manager. Klicken Sie auf Configuration Manager

Schritt 3: Wählen Sie Neu aus Active Lösung Konfigurationsfenster Wählen Sie Neu aus Active Lösung Konfigurationsfenster

Schritt 4: Geben Sie Ihrem neuen Artikel wie Produktion / Staging einen aussagekräftigen Namen und wählen Sie die Kopiereinstellung aus der Option "Freigeben". Stellen Sie sicher, dass Sie das Kontrollkästchen aktiviert haben, wenn es nicht standardmäßig aktiviert ist, und klicken Sie auf OK. Geben Sie Ihrem neuen Artikel nun einen aussagekräftigen Namen wie Produktion / Inszenierung

Schritt 5: Kehren Sie nun zu Ihrem Lösungs-Explorer zurück und klicken Sie mit der rechten Maustaste auf Ihre Web.Config-Datei. Config Transform hinzufügen ist jetzt aktiviert

Hallo! Config Transform hinzufügen ist jetzt aktiviert. :) :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.