Проект установки VS2008 всегда требует .NET 3.5 во время установки, но мне это не нужно! - PullRequest
11 голосов
/ 16 сентября 2008

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

Ответы [ 4 ]

21 голосов
/ 16 сентября 2008

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

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

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

1 голос
/ 16 сентября 2008

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

Сравнение файлов проектов с помощью Блокнота Я заметил, что в проекте установки в 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"
            }
        }
    }
1 голос
/ 16 сентября 2008

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

0 голосов
/ 28 декабря 2008

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

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

...