2012-04-28 3 views
0

Моя задача - создать простую программу, которая подключается к Интернету (используя Wininet) и загружает текстовый файл. Затем он отображает данные в виде виджета listBox. Требовалось создать приложение на основе графического интерфейса, поэтому я использовал Windows Forms в Visual Studio Express 2010.Проблемы с совместимостью приложений Windows Forms (visual studio 2010)

Приложение отлично работает на моем ПК, однако я понял, что он работает только на моем ПК. Я установил дистрибутивы NetNet и Visual Studio 2010 на другой компьютер, и там он отлично работал. Теперь, человек, для которого я делаю это, хочет максимальной совместимости на ПК с Windows. Я полностью застрял здесь. Должен ли я переключиться на более старую версию VSE?

Из-за того, что я мог искать, использование/MT вместо/MD заставит приложение связываться статически, однако мое приложение также использует/CLR, и они несовместимы.

Любые идеи?

Примечание: Я ранее делал подобное приложение (загрузка и отображение) с помощью вывода консоли, и он отлично работает везде.

+0

Вы не можете использовать/MT в приложении Winforms. Это не может иметь ничего общего с «максимальной совместимостью», конечно, он просит установщика, поэтому ему не нужно самостоятельно устанавливать зависимости. В Express Edition нет поддержки для создания инсталляторов, вам нужно либо обновить, либо использовать другой инструмент. Как WiX или InstallShield. –

+0

Приложение очень просто, и он хочет только приложение в одном файле exe. Включив/MT, я думал, что статическая привязка будет возможна, и, следовательно, совместимость может быть обеспечена, но, как выясняется, WinForms не принимает/MT. – tecfreak

+0

@HansPassant: В качестве побочного вопроса можно установить зависимости в качестве фоновой операции (не видимой пользователю) в программе установки? – tecfreak

ответ

0

Зависит от того, что подразумевается под «максимальной совместимостью на ПК с Windows». Если вы можете связать необходимые распределяемые компоненты, ваша программа должна работать (как вы обнаружили на втором ПК), если окна на ПК способны выполнять двоичные файлы (например, не 32-битный ПК, пытающийся выполнить 64-битные двоичные файлы)

+0

Я не думаю, что распространять resdistributables допустимо. Он хочет простой, единственный файл .exe. – tecfreak

+0

Вы не можете запускать программу .Net без существующей инфраструктуры .Net. Это похоже на tring для запуска java-байт-кода без присутствия JVM. – Attila

+0

Конечно, я не увлекаюсь запуском приложения без рамки. Мой вопрос заключается в том, следует ли мне использовать более старую версию VSE (2008?), Поскольку на большинстве ПК сегодня установлены распространяемые дистрибутивы 2008 года? Будет ли использоваться более старая версия .Net? – tecfreak

0

Я был в вашей ситуации.

Я могу предоставить вам бесплатный .NET-приложение-runner (RunNetApp.exe), которое автоматически устанавливает .NET Framework 4 перед запуском приложения в первый раз. Если фреймворк уже установлен на целевой машине, он запускает только ваше приложение.

Я также предлагаю изменить структуру приложения на «Профиль клиента .NET Framework 4». Его настройка составляет около 40 МБ (по сравнению с 200 МБ полной «.NET framework 4»).

Полезно?

+0

Спасибо, но я не думаю, что мне это нужно прямо сейчас. – tecfreak

Смежные вопросы