Подтвердить что ты не робот

Целевая версия .NET Framework не соответствует состоянию запуска

У меня есть проект С#, который я создаю в VS 2010. Он ссылается на проект С++ через COM, который также является частью решения. В прошлую пятницу я сделал успешную сборку, изменил одну строку кода, сделал еще одну сборку, и я начал получать сообщение об ошибке .NET.

Целевая версия .NET Framework в проекте не соответствует версии запуска .NET Framework версии .NET Framework 3.5. Обновите версию условия запуска .NET Framework для соответствия целевой версии .NET Framework в диалоговом окне "Дополнительные параметры компиляции" (VB) или на странице приложения (С#, F #).

  • Проект → Свойства → Приложение → Целевая структура (для каждого проекта в Debug и Release)
  • Проект → Свойства → Опубликовать → Предварительные требования (подтвержденный .NET 3.5 и установщик Windows 3.1)
  • Настройка → Условия запуска → .NET Framework
  • Настройка → Свойства → Предварительные требования

Я также просмотрел код vdproj для моего установщика, подтвердив условия запуска .NET 3.5:

"ComponentsUrl" = "8:"
"Items"
{
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
    {
        "Name" = "8:.NET Framework 3.5 SP1"
        "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
    }
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
    {
        "Name" = "8:Windows Installer 3.1"
        "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
    }
}

"ComponentsUrl" = "8:"
"Items"
{
     "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
     {
         "Name" = "8:.NET Framework 3.5 SP1"
         "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
     }
     "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
     {
         "Name" = "8:Windows Installer 3.1"
         "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
     }
}

"LaunchCondition"
{
    "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_799EF2A78D074B669D0B30310FD56A67"
    {
        "Name" = "8:.NET Framework"
        "Message" = "8:[VSDNETMSG]"
        "FrameworkVersion" = "8:.NETFramework,Version=v3.5"
        "AllowLaterVersions" = "11:FALSE"
        "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=131000"
    }
}

Поскольку я строю для компилятора x86 и x64, у меня есть два проекта установки. Второй, для процессора x86, не получает ошибку .NET. Я сравнил код в своем vdproj с этим, и он выглядит одинаково.

Я нашел несколько потоков по этой проблеме, включая очень хороший здесь, но ни один из них не помог мне решить эту проблему. Любые предложения были бы полезными.

ИЗМЕНИТЬ

Я изменил все на .NET 4.0, чтобы убедиться, что это имеет значение, и проект был успешно выполнен. Я изменил его, и он снова дал мне ошибку версии .NET. Я проверил файл vdproj для любой ссылки "4.0" и нашел его только для AspNetVersion, который также произошел в x86-версии программы установки, которая работает.

"AspNetVersion" = "8:4.0.30319.0"

Мне нужно выпустить с .NET 3.5, так что это было просто упражнение, чтобы увидеть, разрешило ли изменение версии что-то еще и обратно.

4b9b3361

Ответ 1

Оказывается, что код С++ также был связан с .NET по какой-то причине. Я использовал эту статью, чтобы помочь мне изменить версию С++.NET с 4.0 до 3.5. Основные шаги

  • Откройте проект С++ vcxproj в текстовом редакторе
  • Найти <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    • Возможно, это необходимо создать в группе свойств Globals PropertyGroup
  • Изменить с 4.0 до 3.5
  • Открыть проект в VS
  • Щелкните правой кнопкой мыши проект С++ и выберите свойства
  • Выберите "Общие свойства" и убедитесь, что версия 3.5
  • Выберите Свойства конфигурации → Общие
  • Убедитесь, что для набора инструментов платформы установлено значение v90

Ответ 2

Чтобы изменить его через пользовательский интерфейс (не текстовый редактор). Взято из здесь.

1) Выберите установщик проекта

2) В обозревателе решений или в Навигаторе решений щелкните значок в верхней части панели "Редактор условий запуска" (в VS2010 это значок с биноклем, в VS2015 и VS2017 значок - это лист бумаги с фильтром перед ним). (кричите Мэтту и Бобу Ван де Вейверу в комментариях).

3) В разделе "Условия запуска" выберите ".Net framework" справа в "Properties". Выберите "Version", вы увидите выпадающий список. измените структуру на свою целевую структуру.

4) Build и install.

Если затем вы получите сообщение, подобное следующему:

ПРЕДУПРЕЖДЕНИЕ. Версия условия запуска .NET Framework ".NET Framework 4" не соответствует выбранному пакету начальной загрузки .NET Framework. Обновите условие запуска .NET Framework, чтобы оно соответствовало версии .NET Framework, выбранной в диалоговом окне "Предварительные условия".

Выполните следующие шаги:

1) Щелкните правой кнопкой мыши проект установщика и выберите "Свойства".

2) Нажмите кнопку "Предварительные условия".

3) Change as desired.

ОБНОВЛЕНИЕ: Обновил описание значка редактора условий запуска для другой версии VS, согласно комментариям.

Ответ 3

С той же проблемой, что и этот проект, был преобразован с 2008 по 2010 год.

Чтобы изменить загрузчик, я открыл .csproj и вручную удалил экземпляры из 3.5 в нем:

<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
  <Visible>False</Visible>
  <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
  <Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
  <Visible>False</Visible>
  <ProductName>.NET Framework 3.5 SP1</ProductName>
  <Install>false</Install>
</BootstrapperPackage>

Кроме того, я узнал, что вы можете просто щелкнуть правой кнопкой мыши по проекту "Установка и развертывание", нажать "Свойства", перейти к предварительным требованиям и выбрать правильную платформу .NET.

Было сложно найти его, вам нужно нажать кнопку Предварительные требования.

Ответ 4

Я также столкнулся с той же проблемой. Я сделал ошибку, что целевая структура кадров была разной во всех местах. Я могу убедиться, что в нижеупомянутых местах должна быть выбрана та же самая структура. Я использую VS2015. Поместите 1 - щелкните правой кнопкой мыши на Project-> Свойства → приложение → целевой фреймворк для меня (.Net framework 4), который вы можете выбрать в соответствии с вашим проектом. Место 2 - Щелкните правой кнопкой мыши по проекту установщика → Свойства → prerequisites-> выберите Microsoft Framework 4 (X86 и X64) для вас, это зависит от того, какую платформу вы нацеливаете. Место 3 - Щелкните правой кнопкой мыши по проекту установщика → щелкните по view-> условие запуска ->.net Framework → щелкните правой кнопкой мыши по properties-> выберите> net framework 4. Я работал со службами Windows и столкнулся с этой проблемой при обновлении с 2010 по 2015 год. Надеюсь, это поможет вам.