2008-09-16 10 views
11

1, Utwórz i zbuduj domyślny projekt Windows Forms i spójrz na właściwości projektu. Mówi, że projekt jest ukierunkowany na .NET Framework 2.0.Instalacja programu VS2008 zawsze wymaga .NET 3.5 podczas instalacji, ale nie jest to konieczne!

2, Utwórz projekt instalacji, który instaluje pojedynczy plik wykonywalny z projektu Windows Forms.

3, Uruchom ten instalator i zawsze mówi, że musi zainstalować .NET 3.5 SP1 na komputerze. Ale oczywiście tak naprawdę potrzebuje tylko 2,0, więc nie chcę, aby klienci byli zmuszani do instalowania .NET 3.5, kiedy tego nie potrzebują. Mogą już mieć zainstalowany 2.0, więc wymuszanie aktualizacji nie jest pożądane!

Przyjrzałem się wymaganiom wstępnym projektu instalacji i sprawdziłem wpis .NET Framework 2.0, a wszystkie pozostałe są odznaczone. Więc nie mogę znaleźć żadnego powodu dla tego dziwnego wymogu środowiska wykonawczego. Ktoś wie, jak rozwiązać ten problem?

Odpowiedz

21

Nie trzeba ręcznie edytować pliku. Wskazówka znajduje się tuż nad identyfikatorem GUID: "LaunchCondition".

  1. prawym przyciskiem myszy projekt instalacyjny
  2. Wybierz „Widok” -> „Uruchom warunki”
  3. Rozwiń węzeł „Uruchom warunki”, jeśli nie jest jeszcze rozwinięty
  4. Prawo kliknij”NET Struktura "węzeł i wybierz" Okno właściwości "
  5. W oknie" Właściwości "zmień wartość" Wersja "na odpowiednią wartość, w twoim przypadku 2.0.50727.

Nie jestem pewien, dlaczego nie zostało to odpowiednio ustawione od samego początku.

1

Nawet jeśli celujesz w wdrożenie 2.0, niektóre z twoich złożeń mogą wymagać 3,5. Na przykład LINQ wymaga wersji 3.0. Powinno to jednak znaleźć odzwierciedlenie podczas kompilacji. Sprawdź każdy zespół, aby upewnić się, że jest on zgodny z 2.0. Nie chcesz żadnych skradających się 3,5 rzeczy. Jeśli tak jest, domyślam się, że jest to biblioteka kontrolna firmy zewnętrznej z obsługą WPF.

1

W końcu znalazłem odpowiedź na moje własne pytanie.

Porównując pliki projektów za pomocą Notatnika, zauważyłem, że projekt instalacji w VS2008 ma wpis, który żąda wersji 3.5, a ta sama sekcja w projekcie VS2005 została oznaczona jako 2.0. Dziwne jest to, że sekcja wygląda jak coś, czego nie można ręcznie zmienić w środowisku Visual Studio i dlatego jesteś zmuszony ręcznie zaktualizować plik projektu. Gdziekolwiek jest tutaj obraźliwy obszar pliku projektu dla tych, którzy napotykają ten sam problem ...

"Deployable" 
{ 
    "CustomAction" 
    { 
    } 
    "DefaultFeature" 
    { 
    "Name" = "8:DefaultFeature" 
    "Title" = "8:" 
    "Description" = "8:" 
    } 
    "ExternalPersistence" 
    { 
     "LaunchCondition" 
     { 
      "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC497D835F7243569DCCC3E3ACE4196D" 
      { 
      "Name" = "8:.NET Framework" 
      "Message" = "8:[VSDNETMSG]" 
      "Version" = "8:3.5.30729" <--- UPDATE THIS TO 8:2.0.50727 
      "AllowLaterVersions" = "11:FALSE" 
      "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617" 
      } 
     } 
    } 
0

Zawsze używałem Innosetup do wdrażania moich projektów. Jest bardzo szybki i bardzo dostosowywany. Nie ma prawie nic, czego nie można zrobić za pomocą skryptów. Innosetup może wykryć, która wersja Framework jest zainstalowana, i zapytać użytkownika, jeśli nie ma odpowiedniej wersji (ze skryptami).

Polecam wypróbować alternatywne narzędzia do wdrażania, takie jak Innosetup i sprawdzić, czy je lubisz. Tam jest mnóstwo okazji.