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

StackOverflow https://stackoverflow.com/questions/68561

  •  09-06-2019
  •  | 
  •  

Вопрос

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, а все остальные не отмечены.Поэтому я не могу найти никакой причины для этого странного требования времени выполнения.Кто-нибудь знает, как решить эту проблему?

Это было полезно?

Решение

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

  1. Щелкните правой кнопкой мыши на проекте установки
  2. Выберите "Просмотр" -> "Условия запуска".
  3. Разверните узел "Условия запуска", если он еще не развернут
  4. Щелкните правой кнопкой мыши узел ".NET Framework" и выберите "Окно свойств".
  5. В окне "Свойства" измените значение "Версия" на соответствующее значение, в вашем случае 2.0.50727.

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

Другие советы

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

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

Сравнивая файлы проектов с помощью 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"
            }
        }
    }

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top