Aplikacja sieci Web ASP.Net Dodaj konfigurację transformacji wyszarzona

88

Dodałem istniejący projekt aplikacji internetowej ASP.Net do mojego rozwiązania. Oprócz standardowych konfiguracji debugowania i wydania to rozwiązanie ma również dwie konfiguracje niestandardowe, SAT i UAT. W przypadku nowej aplikacji internetowej kliknięcie prawym przyciskiem myszy Web.Config powoduje wyświetlenie menu kontekstowego, ale opcja „Dodaj konfigurację transformacji” jest wyszarzona.

Jestem zagubiony. Nowy projekt to aplikacja internetowa. Configuration Manager nie wyświetla dwóch niestandardowych konfiguracji dla tego projektu, ale robi to w przypadku innych projektów. Wydaje się, że projekt ma poprawne wpisy w pliku rozwiązania.

Myśli?

paulv7260
źródło

Odpowiedzi:

115

Najpierw musisz zdefiniować konfiguracje w menedżerze konfiguracji. Aby upewnić się, że uruchamiasz Configuration Manager, możesz uzyskać do niego dostęp, przechodząc do: Build-> Configuraton Manager

Z listy rozwijanej Konfiguracja aktywnego rozwiązania wybierz <New...>. Po dodaniu będziesz mógł „dodać konfigurację transformacji”.

Nie edytuj pliku rozwiązania bezpośrednio. Spowoduje to tylko bóle głowy.

Jeremy
źródło
6
Duh. Próbowałem tego wcześniej, ale nie udało mi się odznaczyć pola „Utwórz”, więc nie powiodło się jako „duplikat”. Jak tylko odznaczyłem pole „Utwórz”, zadziałało.
paulv7260
@maplemale To samo tutaj, opcja nadal szara
Anders Lindén
Przepraszam, nie pamiętam, jak to działa. Mogłem zhakować plik sln bezpośrednio, w przeciwieństwie do odpowiedzi Jeremy'ego, czasami jest to jedyna możliwa do wykonania opcja. Jednak nie miałem tego problemu od czasu aktualizacji do VS2015.
maplemale
2
Konfiguracje rozwiązań i projektów są różne! Musisz utworzyć konfigurację w danym projekcie, zanim będzie można użyć tej transformacji. Zaznacz opcję „Utwórz nowe konfiguracje projektu”, aby utworzyć konfigurację we wszystkich projektach naraz, lub zrób to indywidualnie, tak jak zrobił to @ paulv7260.
Patrick
1
Jeśli nadal jest wyszarzona, upewnij się, że projekt sieci Web ma konfigurację kompilacji zgodną z nazwą konfiguracji rozwiązania i upewnij się, że jest ona zaznaczona.
jmatthias,
45

Ponieważ pracujemy z PublishProfiles, dla mnie odpowiedzią było kliknięcie prawym przyciskiem myszy odpowiedniego pubxmlpliku (znajdującego się w Propertiespodfolderze folderu projektu PublishProfiles), a następnie wybranie Add Config Transform. Nie potrzeba żadnych menedżerów;).

Paul Siersma
źródło
To rozwiązanie działa dla mnie znacznie lepiej, ponieważ chcę tylko dodać tę transformację, nic więcej. Nowa konfiguracja aktywnego rozwiązania ma wpływ na wszystkie projekty w rozwiązaniu, co nie ma znaczenia w moim przypadku. Dzięki!
Ben
Idealny. Działa w moim starym projekcie formularzy sieci Web, który teraz edytuję w programie Visual Studio 2015. Uwielbiam to. Dziękuję Ci.
bkwdesign
5
Testowane i pracuję nad VS 2015. Jednak nadal nie rozumiem, dlaczego opcja „Dodaj transformację konfiguracji” jest wyszarzona
Illidan
20

W moim przypadku w Visual Studio 2015, kiedy tworzyłem nowe rozwiązanie na podstawie szablonu projektu, opcja Add Config Transform była wyszarzona - ale z innego powodu:

Kliknięcie „Pokaż wszystkie pliki” ujawniło, że pliki już tam były - tylko ukryte. W związku z tym przycisk był wyszarzony (ponieważ nie ma potrzeby ich dodawania, ponieważ już tam są).

  1. Kliknij ikonę „Pokaż wszystkie pliki”:
    wprowadź opis obrazu tutaj

  2. Teraz możesz rozwinąć „Web.config”:
    wprowadź opis obrazu tutaj

  3. Kliknij dwukrotnie dowolny plik transformacji ( Web.Debug.configlub Web.Release.config), aby go otworzyć i edytować.

Uwagi:

  • Nie chciałem dodawać dodatkowej konfiguracji, po prostu użyj Debug and Release . Jeśli utworzysz taki plik, wybierz go, a plik transformacji jeszcze nie istnieje, wówczas pozycja menu kontekstowego Dodaj konfigurację transformacji jest aktywna i nie jest wyszarzona.

  • Jeśli chcesz utworzyć dodatkowe pliki transformacji konfiguracji , pamiętaj, że w programie Visual Studio transformacje konfiguracji są skorelowane z konfiguracjami. Aby dodać kolejną transformację, musisz najpierw dodać nową konfigurację. Aby dodać kolejną, wykonaj następujące czynności: Za pomocą menedżera konfiguracji (menu rozwijanego, w którym możesz wybrać Debuguj lub Zwolnij), dodaj najpierw nową konfigurację, np. MyNewConfig. Następnie wybierz myNewConfig. Teraz wybierz Web.config w Eksploratorze rozwiązań, kliknij prawym przyciskiem myszy i wybierz w menu kontekstowym „Dodaj konfigurację transformacji” - utworzy on plik Web.myNewConfig.config. Gdy już istnieje, menu kontekstowe będzie ponownie wyszarzone, ponieważ VS zezwala tylko na jedną transformację na konfigurację.

Matt
źródło
Taka była sytuacja również dla mnie. Chciałem, aby pliki transformacji konfiguracji pozostały widoczne, więc zakomentowałem <DependentUpon>Web.config</DependentUpon>w pliku projektu. Transformacje nadal działają zgodnie z oczekiwaniami.
Ethan
Jak mogę dodać nowe transformacje konfiguracji?
Reshma
@Reshma - w programie Visual Studio transformacje konfiguracji są skorelowane z konfiguracjami. Za pomocą menedżera konfiguracji (menu rozwijanego, w którym można wybrać Debuguj lub Zwolnij), dodaj najpierw nową konfigurację, np. MyNewConfig. Następnie wybierz myNewConfig. Teraz wybierz Web.config, kliknij prawym przyciskiem myszy i wybierz w menu kontekstowym „Dodaj konfigurację transformacji” - utworzy Web.myNewConfig.config.
Matt
Zrobiłem to Matt i udało mi się dodać jeden plik konfiguracyjny, ale próbuję dodać kolejny plik konfiguracyjny i teraz znowu opcja „dodaj konfigurację transformacji” jest wyszarzona. Utworzyłem również nowy plik konfiguracyjny dla następnego pliku konfiguracyjnego
Reshma
1
@Reshma - Zgadza się, ponieważ możesz mieć tylko jeden na konfigurację. Aby uzyskać kolejną, dodaj jedną dodatkową konfigurację, na przykład myNewConfig2. Następnie wybierz myNewConfig2 i spróbuj ponownie. Tym razem nie powinno być szare - wybierz je. Uwaga: ikona będzie wyszarzona, gdy tylko istnieje plik konfiguracyjny dla tej konfiguracji.
Matt
1

Aby to działało, musiałem dodać nowe grupy właściwości do mojego pliku csproj.

Opcja Dodaj konfigurację transformacji była wyszarzona.

Dodałem następujący kod XML do mojego csproj i ponownie załadowałem projekt. wtedy było dostępne Add Config Transform. po wybraniu moje dodatkowe transformacje zostały dodane

<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>
JGilmartin
źródło
1

Rozwiązałem to, zdając sobie sprawę z dwóch rzeczy:

  1. Istnieje konfiguracja na poziomie rozwiązania oraz konfiguracje na poziomie projektu . Plik web.MyConfigName.config jest tworzony na podstawie konfiguracji na poziomie projektu .
  2. Wygląda na to, że program Visual Studio 2017 Configuration Manager opiera się na konfiguracjach, które należy dodać z (ukrytego) folderu obj. Usunięcie folderu obj dla projektu i przebudowanie spowoduje zaktualizowanie projektu o dodane konfiguracje.

Aby udostępnić opcję „dodaj przekształcenie konfiguracji”, wykonaj następujące kroki:

  1. Upewnij się, że masz włączoną opcję Pokaż ukryte pliki
  2. Otwórz menedżera konfiguracji rozwiązania
  3. Wybierz odpowiednią konfigurację rozwiązania , a następnie z listy rozwijanej obok projektu wybierz <New..>lub <Edit..>i dodaj, usuń lub edytuj żądane konfiguracje projektu .
  4. Usuń folder obj w projekcie. Odbudować. Upewnij się, że zapisałeś zmiany w plikach projektu i rozwiązania. Zrestartowałem też Visual Studio, bo czemu nie. Sprawdź, czy wszystkie konfiguracje projektu są widoczne jako foldery w folderze obj.
  5. Kliknij prawym przyciskiem myszy web.config i dodaj transformację konfiguracji.

Mam nadzieję, że to komuś pomoże. :)

Emanuel Lindström
źródło
1

Jak włączyć opcję „Dodaj konfigurację transformacji”. Wykonaj poniższe kroki. Krok 1: Przejdź do konfiguracji rozwiązania (poniżej zespołu) Przejdź do konfiguracji rozwiązania (poniżej zespołu)

Krok 2: Kliknij Configuration Manager Kliknij Configuration Manager

Krok 3: Wybierz Nowe z okna konfiguracji aktywnego rozwiązania Wybierz Nowe z okna konfiguracji aktywnego rozwiązania

Krok 4: Teraz nadaj nowemu elementowi znaczącą nazwę, na przykład Produkcja / Staging, i wybierz ustawienie kopiowania z opcji „Release”. Upewnij się, że zaznaczyłeś pole wyboru, jeśli nie nadchodzi domyślnie, i kliknij OK. Teraz nadaj nowemu przedmiotowi znaczącą nazwę, np. Produkcja / Inscenizacja

Krok 5: Teraz wróć do eksploratora rozwiązań i kliknij prawym przyciskiem myszy plik Web.Config. Opcja Dodaj konfigurację transformacji jest teraz włączona

Hola! Opcja Dodaj konfigurację transformacji jest teraz włączona. :)

nitin27verma
źródło