VS2008 Setup Project всегда требует .NET 3.5 во время установки, но мне это не нужно!

1. Создайте и создайте проект Windows Forms по умолчанию и посмотрите на свойства проекта. В нем говорится, что проект нацелен на .NET Framework 2.0.

2, создайте проект установки, который устанавливает только один исполняемый файл из проекта Windows Forms.

3, запустите этот установщик, и он всегда говорит, что ему нужно установить .NET 3.5 SP1 на машине. Но это, очевидно, действительно нуждается в 2.0, и поэтому я не хочу, чтобы клиенты были вынуждены устанавливать .NET 3.5, когда они им не нужны. Возможно, у них уже установлен 2.0, поэтому принудительное обновление нежелательно!

Я просмотрел предварительные условия проекта установки и проверил запись в .NET Framework 2.0, а все остальные не отмечены. Поэтому я не могу найти причины для этого необычного требования времени выполнения. Кто-нибудь знает, как решить эту проблему?

Ответ 1

Не нужно редактировать файл вручную. Подсказка находится чуть выше GUID: "LaunchCondition".

  • Щелкните правой кнопкой мыши проект настройки
  • Выберите "Вид" → "Условия запуска"
  • Разверните "Условия запуска" node, если он еще не расширен.
  • Щелкните правой кнопкой мыши ".NET Framework" node и выберите "Окно свойств"
  • В окне "Свойства" измените значение "Версия" на соответствующее значение, в вашем случае 2.0.50727.

Я не уверен, почему это не установлено должным образом с самого начала.

Ответ 2

Даже если вы нацеливаете развертывание 2.0, некоторые из ваших сборок могут потребовать 3.5. Например, для LINQ требуется 3.0. Это должно, однако, отразиться при построении. Проверьте каждую сборку, чтобы убедиться, что она совместима с 2.0. Вы не хотите, чтобы какие-то вещи выглядели примерно так. Если это так, я предполагаю, что это будет сторонняя библиотека управления с поддержкой WPF.

Ответ 3

В конце концов я нашел ответ на свой вопрос.

Сравнивая файлы проектов с помощью Notepad, я заметил, что проект установки в VS2008 имеет запись, запрашивающая версию 3.5, и тот же раздел в проекте VS2005 был отмечен как 2.0. Странно то, что раздел выглядит как-то, что нельзя изменить вручную в среде Visual Studio, и поэтому вы вынуждены вручную обновлять файл проекта. В любом месте здесь находится оскорбительная область файла проекта для тех, кто сталкивается с той же проблемой...

"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"
            }
        }
    }

Ответ 4

Я всегда использовал Innosetup для развертывания моих проектов. Он очень быстрый и очень настраиваемый. Там почти ничего, что вы не можете сделать с небольшим количеством сценариев. Innosetup может определить, какая версия Framework установлена, и запросить пользователя, если правильная версия отсутствует (со сценарием).

Я рекомендую вам попробовать альтернативные инструменты развертывания, такие как Innosetup, и посмотреть, нравятся ли они вам. Там есть много возможностей.