Целевая версия .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, так что это было просто упражнение, чтобы увидеть, разрешило ли изменение версии что-то еще и обратно.
Ответы
Ответ 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 год. Надеюсь, это поможет вам.