Лучший способ развернуть приложение Visual Studio, которое может работать без установки


80

Я написал довольно простое приложение на C # /. NET и не могу придумать, как его опубликовать. Это своего рода «инструмент», который пользователи запускают только один раз или каждые несколько месяцев. Из-за этого я надеюсь, что есть способ развернуть его там, где его не нужно устанавливать для запуска (его можно просто запустить, дважды щелкнув EXE-файл сразу после загрузки).

Однако ему по-прежнему необходимо (каким-то образом) включить правильную версию .NET, библиотек и т.д., чтобы он работал правильно. Я знаю, что это включено при использовании ClickOnce, но при этом приложение все равно устанавливается на компьютер пользователя.

Как это можно сделать?

ИЗМЕНИТЬ - \ bin \ Debug

myAppName.application
myAppName.exe
myAppName.exe.config
myAppName.exe.manifest
myAppName.pdb
myAppName.vshost.application
myAppName.vshost.exe
myAppName.vshost.exe.config
myAppName.vshost.exe.manifest
extraLibrary.dll

а также две папки

app.publish
Resources

Ответы:


106

Это возможно и обманчиво просто:

  1. «Опубликуйте» приложение (скажем, в какую-нибудь папку на диске C) либо из меню « Сборка», либо из свойств проекта → « Опубликовать» . Это создаст установщик для приложения ClickOnce .
  2. Но вместо использования созданного установщика найдите созданные файлы (EXE-файл и файлы .config , .manifest и .application , а также любые файлы DLL и т. Д.) - все они находятся в одной папке и обычно в папке bin\DebugПапка под файлом проекта ( .csproj ).
  3. Заархивируйте эту папку (оставьте все файлы * .vhost. * И app.publishпапку (они не нужны) и файлы .pdb, если вы не предусмотрели отладку непосредственно в системе вашего пользователя (например, с помощью удаленного управления)) и предоставьте ее пользователям.

Дополнительным преимуществом является то, что в качестве приложения ClickOnce для запуска ему не требуются административные привилегии (если ваше приложение следует обычным рекомендациям по выбору папок для данных приложения и т.

Что касается .NET, вы можете проверить минимально необходимую версию .NET, установленную (или вообще) в приложении (у большинства пользователей она уже установлена) и отобразить диалоговое окно со ссылкой на страницу загрузки на веб-сайте Microsoft. (или укажите на одну из ваших страниц, которая может перенаправлять на страницу Microsoft - это сделает ее более надежной, если URL-адрес Microsoft изменится). Поскольку это небольшая утилита, вы можете нацелить .NET 2.0, чтобы уменьшить вероятность того, что пользователю придется установить .NET.

Оно работает. Мы используем этот метод во время разработки и тестирования, чтобы избежать необходимости постоянно удалять и устанавливать приложение, оставаясь при этом достаточно близким к тому, как будет работать окончательное приложение.


2
Спасибо, работает как шарм! Мне пришлось использовать кнопку «Файлы приложения ...» в свойствах публикации моего проекта, чтобы принудительно включить все библиотеки DLL, на которые есть ссылки, поскольку по умолчанию все ссылки не включены.
— JulienVan

43
Из любопытства, чем это отличается от копирования файлов прямо из \ bin \ Release?
— Эрик Эскилдсен

10
Я также хотел бы знать, чем это отличается от копирования файлов прямо из \ bin \ Release?
— CoDeGiRl

1
действительно отличный ответ, я скопировал все перечисленные файлы из Application Filesвкладки публикации и .application, .manifest, .config, .exe and other dlls.. спасибо сэр за второй пункт в вашем ответе :) ..
— Мохаммед Суфиан

3
Это ничем не отличается от простого создания проекта и получения файлов из папки bin (отладка или выпуск). Запуск мастера публикации для создания неиспользуемого установщика просто снова создает сам проект, как при нажатии кнопки «Сборка». Более короткий ответ - просто убедиться, что проект строится, затем перейти в папку bin проекта и скопировать файлы (или заархивировать их для легкого копирования) в то место, откуда вы хотите запустить программу. Вам все равно нужно убедиться, что на компьютере пользователя установлена ​​правильная версия .Net. Просто она должна соответствовать версии, в которой встроено ваше приложение.
— Джефф Бленман, 03

2

Для начала вам необходимо опубликовать файл:

  1. СБОРКА -> ПУБЛИКАЦИЯ или щелкнув правой кнопкой мыши проект в Обозревателе решений -> свойства -> опубликовать или выбрать проект в Обозревателе решений и нажать Alt+ Enter ПРИМЕЧАНИЕ: если вы используете Visual Studio 2013, то в свойствах вы должны перейти в СОЗДАТЬ, а затем вам нужно отключите определение константы DEBUG и определите константу TRACE, и все готово. Представление

  2. Сохраните файл в определенной папке. Найдите созданные файлы (EXE-файл и файлы .config, .manifest и .application, а также любые файлы DLL и т. Д.) - все они находятся в одной папке и обычно в bin\Debugпапке под файлом проекта (.csproj ). В Visual Studio они находятся в папке Application Files, а внутри вам нужны только файлы .exe и dll. (Вы должны удалить ClickOnce и другие файлы, а затем сделать эту папку zip-файлом и распространить его.)

ПРИМЕЧАНИЕ. Приложение ClickOnce устанавливает проект в систему, но имеет одно преимущество. Здесь вам НЕ требуются административные привилегии для запуска (если ваше приложение следует обычным рекомендациям по выбору папок для данных приложения и т. Д.).


2
Зачем вам нужно устанавливать для DEBUG и TRACE определенные значения?
— Питер Мортенсен

У вас может быть включен условный атрибут Trace или Debug для сборки, либо оба, либо ни один из них. Таким образом, существует четыре типа сборки: отладка, трассировка, оба или ни один. Некоторые сборки выпуска для производственного развертывания могут не содержать ни того, ни другого; большинство отладочных сборок содержат оба. .................................................. ................................. msdn.microsoft.com/en-us/library/aa983575(v=vs .71) .aspx ............................................. .................................................. ..... msdn.microsoft.com/en-IN/library/ms164714.aspx
— abe312

1
На stackoverflow всегда будет помощь тем, кто ее попросит;) скажите, в какой части вы не поняли? Я действительно создал рабочее приложение с помощью своего метода после небольшого исследования. Я использовал Visual Studio 2013
— abe312

1
Я не вижу ничего под названием «Опубликовать» в VS2015
— UuDdLrLrSs 01

1
И Visual Studio 2008, и Visual Studio 2017 имеют пункт «Опубликовать <имя проекта>» в меню «Сборка» (возможно, он был пропущен в Studio 2015?). В любом случае, это также можно сделать в свойствах проекта «Опубликовать» → «Опубликовать сейчас» (как на скриншоте здесь).
— Питер Мортенсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.