Компилиране на приложение VS2012 в .exe без какъвто и да е инсталатор

Има ли начин да публикувате приложение VS2012 (WPF) в .exe без инсталатор? Знам как да използвам инсталаторите на ClickOnce, но се чудех дали може да се направи една крачка напред.

Много малки програми изглежда идват в .rar с някои файлове на приложения и .exe, които работят и не трябва да се инсталират. Възможно ли е това във VS2012? (или 2010 г.)


person Wilson    schedule 28.03.2013    source източник
comment
инсталиран ли е .net на целевата машина? имате ли зависимости от трета страна?   -  person Daniel A. White    schedule 28.03.2013
comment
@DanielA.White Вероятно бих го разпространил на Vista и по-нови, така че да. XP няма .NET, нали? И не е за конкретен проект, просто е любопитно - но да, имам библиотеки на трети страни за някои проекти.   -  person Wilson    schedule 28.03.2013
comment
зависи от версията на .net/windows combo, която се опитвате да насочите.   -  person Daniel A. White    schedule 28.03.2013


Отговори (3)


Да, разбира се, възможно е. Просто компилирайте приложението си в режим Release и вземете всичко, което имате в папката Release.

person realnero    schedule 28.03.2013
comment
@Wilson, трябва да се уверите, че е инсталирана правилната .net версия! - person Daniel A. White; 28.03.2013
comment
@Daniel A. White Как мога да направя това, докато все още използвам самостоятелен? Версиите на .NET еднакви ли са при всички инсталации на XP и т.н.? - person Wilson; 28.03.2013

Това е възможно с Visual Studio 2012 в зависимост от вашите нужди и вашия подход към разработването на вашето приложение. Ще изброя няколко опции, но не приемайте това като изчерпателно, тъй като има много начини да постигнете едно и също нещо. Предполагам, че искате решение с "1 щракване" за потребителя.

  1. Можете да вградите всички ресурси на вашето приложение в приложението, позволявайки на потребителите ви да могат просто да изтеглят или копирайте .exe и го стартирайте отвсякъде и той "просто работи".

Плюсове: Единственият метод, който ви дава това, което сте поискали. Един .exe без нужда от инсталатор.

Минуси: Не можете да редактирате нито един от вградените ресурси без повторно компилиране на приложението. Също така не можете да съхранявате потребителски настройки поради същата причина (въпреки че бихте могли тихо да създадете файл с настройки в App_Data или подобен).

  1. Саморазархивиращ се архив. Това е методът WinRAR, който споменахте във вашия въпрос. Вие вграждате вашето приложение в саморазархивиращ се архив, който е настроен да извлича към потребителската Temp директория или App_Data (или подобен) и да стартира вашия exe при успешно извличане.

Плюсове: Получавате възможността да актуализирате вашите ресурси, тъй като те не са вградени в действителното ви приложение.

Недостатъци: Технически, това все още е инсталатор; макар и много лек и самостоятелен.

Има още, като еднократно кликване; и т.н., но това обясняваше общата идея.

Забележка: Ще трябва да се инсталира правилната .NET версия, за да работят толкова просто, както описах.

person Frazell Thomas    schedule 28.03.2013

Ето опасенията, за които мога да се сетя, че инсталаторът се грижи, за които трябва да се тревожите:

  1. Правилната .NET рамка вече съществува.
  2. Всички модули, които препращате от GAC, вече са инсталирани.
  3. Не се нуждаете от персонализирани записи в регистъра или разрешения, за да бъдат предоставени.
  4. Приложението ви няма достъп до нищо, което би му попречило да работи в среда с „ниско доверие“, когато потребителят не работи като администратор.

Със сигурност има още, но по същество, ако вашето приложение е самостоятелно и не използва никакви външни ресурси и е инсталирана правилната .NET рамка, трябва да можете просто да копирате изхода на компилацията и да тръгнете.

person jlew    schedule 28.03.2013