2009-08-08 3 views
9

Возможно ли развертывание приложения .NET 2.0 в качестве переносимого исполняемого файла? Чтобы моя программа могла запускаться на флэш-диске без установленной платформы .NET Framework 2.0 на целевой машине. Или, возможно, можно распространять мою программу с требуемыми DLL-библиотеками .NET, чтобы не требовалось устанавливать инфраструктуру?Развертывание приложения C# (.NET 2.0) в качестве переносного приложения?

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

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

Любой вид помощи был бы оценен :)

Спасибо.

fyi: моя IDE представляет собой Microsoft Visual C# 2008 Express Edition с .NET Framework 2.0 в качестве целевой среды.

ответ

9

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

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

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

8

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

You может потенциально посмотреть на новый статический линкера моно, но это о нем ...

1

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

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

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

1

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

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

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

+0

делает эту работу? – Andreas

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