Лучший способ развертывания приложения Visual Studio, которое может работать без установки
Я написал довольно простое приложение с С#/.NET и не могу найти хороший способ опубликовать его. Это своего рода "инструмент", который пользователи будут запускать только один раз или запускать каждые несколько месяцев. Из-за этого я надеюсь, что есть способ, которым я мог бы развернуть его там, где он не нуждался бы в установке для запуска (его можно было просто запустить, дважды щелкнув EXE файл сразу после загрузки).
Тем не менее, ему все еще нужно (каким-то образом) включить правильную версию .NET, библиотеки и т.д., чтобы она работала корректно. Я знаю, что это включено при использовании ClickOnce, но оно все еще устанавливает приложение на пользовательский компьютер.
Есть ли способ сделать это?
EDIT -\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
Ответы
Ответ 1
Это возможно и обманчиво легко:
- "Опубликовать" приложение (скажем, в какую-нибудь папку на диске C) либо из меню "Сборка", либо из свойств проекта → "Опубликовать". Это создаст установщик для приложения ClickOnce.
- Но вместо использования созданного установщика найдите произведенные файлы (EXE файлы, файлы.config,.manifest и.application вместе с любыми файлами DLL и т.д.) - все они находятся в одной папке и обычно находятся в Папка
bin\Debug
под файлом проекта (.csproj). - Заархивируйте эту папку (пропустите все файлы *.vhost. *
app.publish
папку app.publish
(они не нужны), а также файлы.pdb, если только вы не предвидите отладку непосредственно в вашей пользовательской системе (например, с помощью дистанционного управления)), и предоставить его пользователям.
Дополнительным преимуществом является то, что, как приложение ClickOnce, оно не требует административных привилегий для запуска (если ваше приложение следует обычным правилам, какие папки использовать для данных приложения и т.д.).
Что касается.NET, вы можете проверить, установлена ли минимальная требуемая версия.NET (или вообще установлена) в приложении (у большинства пользователей она уже установлена) и открыть диалоговое окно со ссылкой на страницу загрузки на веб-сайте Microsoft. (или укажите на одну из ваших страниц, которые могли бы перенаправить на страницу Microsoft - это делает ее более надежной, если URL-адрес Microsoft изменится). Поскольку это небольшая утилита, вы можете настроить таргетинг на.NET 2.0, чтобы уменьшить вероятность того, что пользователь установит.NET.
Оно работает. Мы используем этот метод во время разработки и тестирования, чтобы избежать необходимости постоянно удалять и устанавливать приложение, и все еще достаточно близко к тому, как будет работать конечное приложение.
Ответ 2
Сначала вам нужно опубликовать файл:
-
BUILD → PUBLISH или щелкнув правой кнопкой мыши проект в обозревателе решений → свойства → опубликовать или выбрать проект в обозревателе решений и нажать Alt + Enter
ПРИМЕЧАНИЕ: если вы используете Visual Studio 2013, то в свойствах вы должны перейти к BUILD, а затем вам нужно отключить определение константы DEBUG и определить TRACE постоянный, и вы готовы к работе.
-
Сохраните файл в определенной папке.
Найдите созданные файлы (EXE файл и файлы .config,.manifest и .application вместе с любыми DLL файлами и т.д.) - все они находятся в одной папке и обычно находятся в папке bin\Debug
под файлом проекта (.csproj).
В Visual Studio они находятся в папке "Файлы приложений" и внутри них вам нужны только файлы .exe и dll.
(Вам нужно удалить ClickOnce и другие файлы, а затем сделать эту папку zip файлом и распространять ее.)
ПРИМЕЧАНИЕ. Приложение ClickOnce устанавливает проект в систему, но имеет одно преимущество. Вам НЕ нужны административные привилегии для запуска (если ваше приложение следует нормальным правилам, для каких папок использовать данные приложения и т.д.).
Ответ 3
Эрик и CoDeGiRl уже упоминали об этом...
Самый простой способ опубликовать консольное приложение - скопировать файлы из папки bin/Release проекта рабочей области в папку развертывания.
Вопрос в том, почему Visual Studio не может сделать это? Он делает это уже для публикации веб-приложений... кажется довольно тривиальной функцией для включения в продукт для консольных приложений.
Благодарю. Джон