Развертывание приложения C # (.NET 2.0) в качестве переносимого приложения? - PullRequest
9 голосов
/ 08 августа 2009

Можно ли развернуть приложение .NET 2.0 как переносимый исполняемый файл? Так что моя программа может быть запущена на Flash Disk без .NET Framework 2.0, установленного на целевой машине. Или, возможно, можно распространять мою программу с необходимыми DLL-библиотеками .NET, чтобы не требовалась установка фреймворка?

Я знаю, что есть несколько альтернативных инструментов для превращения моего .NET exe в один собственный исполняемый файл, например RemoteSoft Salamander, Xenocode Postbuild и Thinstall, но, к сожалению, я не могу себе этого позволить.

Я также пытался встроить зависимости с mkbundle Моно, но это испортило мою программу = \ (без визуального стиля XP, сломал некоторые элементы управления и его функциональность)

Буду признателен за любую помощь:)

Спасибо.

к сведению: моя IDE - это Microsoft Visual C # 2008 Express Edition с .NET Framework 2.0 в качестве целевой платформы.

Ответы [ 4 ]

9 голосов
/ 08 августа 2009

Ну, кроме таких вещей, как Salamander и Thinstall (теперь VMWare ThinApp), вам нужно будет установить .NET, если вы действительно хотите запустить .NET.

Это может быть в состоянии запустить Mono без его фактической установки (не статически связывая вашу программу, но включая Mono на флешке) Я подозреваю, что это будет сложно, так как вы должны будете рассказать среде выполнения о таких вещах, как местоположение GAC.

Я не вижу ничего в FAQ по Mono по этому поводу, но вы можете проверить связь со списком рассылки Mono - это звучит как потенциально интересная и полезная вещь, которую можно сделать.

8 голосов
/ 08 августа 2009

Нет; вам нужен либо установленный фреймворк, либо инструменты, о которых вы упоминали.

Вы могли бы потенциально взглянуть на новый статический компоновщик mono, но это все ...

1 голос
/ 26 мая 2012

Я сам не пробовал, но вот процедура:

  • Создайте проект на C #.
  • В обозревателе решений внутри вашего проекта есть строка "Ссылка". Нажмите на плюс рядом с ним. Теперь вы можете увидеть все зависимости вашего проекта. Удалите все неиспользуемые ссылки (удалите и попробуйте запустить / построить. Если это возможно, то это не используется. Если есть ошибка, верните ее, добавив ее (щелкните правой кнопкой мыши, «Добавить ссылку» «)).
  • Для каждой ссылки перейдите в Свойства и в свойстве «Копировать локально» выберите «Истина». Для каждого изображения, значка ... сделать так, как указано.
  • Перестрой свой проект. Теперь в папке Build / Release (внутри bin) вы увидите много dll-файлов. Эти файлы содержат информацию о каждом ресурсе.
  • Скопируйте все файлы в папке (из шага № 4) в новую папку.
  • Перейдите в папку «\ Microsoft.Net \ Framework \» и скопируйте файл «mscrolib.dll» в новую папку с шага 5. Если вы не можете найти этот файл, вы всегда можете выполнить поиск в жесткий диск с папкой Windows.
  • Теперь ваше приложение переносимо (со всем содержимым папки).

- Источник: http://www.codeproject.com/Tips/392308/Csharp-Portable-Exe-File

1 голос
/ 08 августа 2009

Ну, Thinstall очень дорогой и он работает не во всех ситуациях. Если вы хотите запустить свое приложение без установленного .Net, вы можете столкнуться с проблемами, хотя есть инструменты, которые делают это В Xenocode есть инструмент , который может сделать это за вас, и это дешевле, чем thinstall.

Но если вы спросите мое мнение, это плохая идея использовать их. Лучше убедите свой целевой рынок установить .Net 2 (что в наши дни является довольно универсальным), а затем упакуйте все свои библиотечные файлы в один файл, используя более дешевый инструмент, похожий на Obfuscator (есть хороший от Smartassembly .)

Я давно пользуюсь Thinstall и много работаю над этой технологией, так что я не отстреливаюсь без опыта.

...