2015-06-22 2 views
1

У меня есть эта ассамблея, ориентированная на .NET 3.5. Код будет работать и в более поздних версиях, но мне нравится работать на Windows XP. Я имею в виду, что .NET совместима с обратной связью, не так ли? Я могу запускать приложения для .NET 3.5 на Windows 8.1.Visual Studio Assembly force-устанавливает Целевая структура

Однако, когда я запускаю свою собственную сборку, он хочет установить .NET 3.5 первым, даже если у меня уже есть 4.5.1 установлен.

Как я могу предотвратить установки 3,5 когда что-то новее уже установлен, в то время как остальные 3,5 совместимы?

+1

Что * точно * вы имеете в виду "когда я запускаю свою собственную сборку"? Вы * строите * эту сборку в Visual Studio? Если это так, ему потребуется .NET 3.5, чтобы узнать, какие из них были доступны. –

+0

Да, я создаю это в «Visual Studio», где присутствует «.NET 3.5». Когда я развертываю это на машине с «.NET 4.5» или «4.5.1», он хочет, чтобы я загружал и устанавливал «.NET 3.5», хотя он должен работать нормально. – Redsandro

ответ

2

Целевая версия .NET - единственная версия, от которой приложение будет зависеть по умолчанию. Visual Studio не будет автоматически добавлять более высокие и обратные совместимые релизы.

Делайте это вручную путем добавления других .NET версии в файле конфигурации:

  1. На панели меню Визуальный Студия:
    • Выбрать проект;
    • Добавить новый товар;
    • Выбрать Генеральный с левой панели;
    • Выберите Файл конфигурации приложения;
    • Назовите конфигурационный файл appName.exe.config.
  2. Добавить элемент для каждого .NET версии следующим образом:

Код:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v2.0.50727"/> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

См MSDN: Configure an App to Support .NET Framework 4 or 4.5


В .NET Framework 4.5 и его точечные версии обратно совместимы с приложениями, которые построен с более ранними версиями .NET Framework. Другими словами, приложения и компоненты, созданные с использованием предыдущих версий, будут работать без изменений в .NET Framework 4.5. Тем не менее, по умолчанию приложения запускаются в версии общей языковой среды исполнения, для которой они были разработаны, поэтому вам может потребоваться предоставить файл конфигурации, позволяющий вашему приложению запускаться в .NET Framework 4.5. Для получения дополнительной информации см. Раздел «Совместимость версий для приложений» ранее в этой статье.

See MSDN

+0

Похоже, мне понадобится 'appName.exe.config'. Он упоминается здесь [https://msdn.microsoft.com/en-us/library/jj152935 (v = vs.110) .aspx). Я скоро проверю это. Спасибо, что указали мне в правильном направлении, хотя лучше (для сторонников и я), если решение представлено в ответе, а не за несколько кликов. – Redsandro

+0

Ответ - сложный многоступенчатый процесс, уже доступный для людей, которые знают, где искать. Я сомневаюсь, что кто-нибудь получит что-нибудь от меня, включив всю мою MSDN-тему в мой ответ. Я чувствую, что подталкивать людей к нужному месту/правильной теме должно быть достаточно в этом случае, хотя я бы определенно поступил иначе по другим темам. – fk2

+1

Я не согласен, потому что ответ на мой конкретный вопрос на самом деле довольно прост. Но я джентльмен, поэтому вместо того, чтобы добавить свой собственный ответ и принять его, я отредактирую ваше, добавлю соответствующие шаги и приму его. :) – Redsandro