Лучший способ развертывания приложения 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

Это возможно и обманчиво легко:

  1. "Опубликовать" приложение (скажем, в какую-нибудь папку на диске C) либо из меню "Сборка", либо из свойств проекта → "Опубликовать". Это создаст установщик для приложения ClickOnce.
  2. Но вместо использования созданного установщика найдите произведенные файлы (EXE файлы, файлы.config,.manifest и.application вместе с любыми файлами DLL и т.д.) - все они находятся в одной папке и обычно находятся в Папка bin\Debug под файлом проекта (.csproj).
  3. Заархивируйте эту папку (пропустите все файлы *.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 не может сделать это? Он делает это уже для публикации веб-приложений... кажется довольно тривиальной функцией для включения в продукт для консольных приложений.

Благодарю. Джон