Создайте приложение .NET, которое работает на любой версии .NET, если только основные требования

IronRod спросил: 14 ноября 2017 в 06:22 в: c#

Я использую VS2017 в Windows 10 для работы над проектом C #. Это действительно небольшое консольное приложение, которое ничего не делает, но требует прав администратора, а затем запускает HTA.

Код ссылается только на эти сборки .NET:

using System;
using System.Diagnostics;
using System.IO;

Поскольку все они существуют в .NET начиная с версии 2.0 и выше, представляется, что можно создать приложение без указания чего-либо, кроме .NET 2.0. Но при этом приложение отображает сообщение "необходимо установить .NET 2.0 или 3.5" при запуске его в системе, в которой установлена ​​только .NET 4.0 или более поздняя версия.

Есть ли способ создать это приложение, чтобы он не указывает версию .NET? Я пытался удалить <TargetFrameworkVersion> из файла .csproj, но он все еще строит впечатление, что это приложение .NET 4.0.

UPDATE

На основе предложенного ответа и этой статьи я обновил файл App.config, чтобы показать, что он поддерживает как v2, так и v4:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v2.0.50727"/>
  <supportedRuntime version="v4.0"/>
</startup>

Затем я построил с целевым значением NET Framework 4.6.1 и запустил его в системе Win7Pro-64bit с установленной только NET Framework 2.0 / 3.5. Он отображал сообщение "Сначала необходимо установить одну из следующих версий .NET Framework" и отображался только в v4.0.30319.

Затем я собрал приложение с целевым значением NET Framework 2.0 и запустил его на Win10Pro- 64-битная система с установленным только NET Framework 4.0. Появилось сообщение, что мне нужно "NET Framework 3.5" или мое приложение может работать неправильно. Я попробовал опцию "пропустить это", и приложение не работало.

Работая в системе в соответствии с целью, приложение работает нормально.

Почему оно просто не работает? используйте любую доступную платформу, поскольку она обозначена как поддерживающая оба?


0 ответов