Не удается развернуть приложение Visual C#

Я смог нормально запустить свое приложение C# .net 3.5 на своей машине для разработки, но я не могу запустить его где-либо еще. На клиентских компьютерах установлен профиль клиента 4.0 .net, и после поиска того, что осталось за пределами профиля клиента, я сомневаюсь, что установка полной платформы 4.0 будет иметь значение.

Я использую классы из этих библиотек:

using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;
using System.IO;
using System.Diagnostics;
using Microsoft.Win32;

Единственное, что я делаю необычно - это определение CustomApplicationContext вместо обычного контекста приложения, который вы бы использовали для приложения Forms. Мое приложение работает в основном как NotifyIcon в системном трее, поэтому я просто настроил класс, основным интерфейсом которого является значок в системном трее. Ничего странного.

В целях тестирования у меня первая строка кода отображает MessageBox, и даже это не будет работать. Всякий раз, когда я запускаю его на машине развертывания, просто появляется окно с надписью "Приложение не удалось запустить" и закрывается.

У кого-нибудь есть идеи, почему он будет этим заниматься? Я не могу заставить его запустить немного кода.

3 ответа

Решение

Возможно, вам нужно добавить.Net4.0 в список поддерживаемых сред выполнения. Добавьте следующие строки в ваш app.config

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

Возможно, не все будет работать правильно на новой платформе, но вы пытались явно установить целевую платформу, как описано на http://msdn.microsoft.com/en-us/library/ms171868.aspx

Скопировано:

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

.NET Framework 4 не использует свою версию общеязыковой среды выполнения автоматически для запуска приложений, созданных с использованием более ранних версий.NET Framework. Для запуска более старых приложений с.NET Framework 4 необходимо скомпилировать приложение с целевой версией.NET Framework, указанной в свойствах для вашего проекта в Visual Studio, или указать поддерживаемое время выполнения с элементом в элементе конфигурации приложения.

Установка только.NET Framework 4 не приведет к печальному запуску приложения.NET 3.5. 3.5 будет запускать приложения 2.0, 3.0 и 3.5, но 4 - это капитальный ремонт, поэтому он не будет работать, если пользователи не установили 3.5 на свои машины.

Другие вопросы по тегам