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

Я написал довольно простое приложение с C # /. 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 .
  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.

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

Сначала вам нужно опубликовать файл:

  1. BUILD -> PUBLISH или щелкнув правой кнопкой мыши проект в обозревателе решений -> свойства -> опубликовать или выбрать проект в обозревателе решений и нажать Alt + Enter. ПРИМЕЧАНИЕ. Если вы используете Visual Studio 2013, тогда в свойствах вы должны перейти к BUILD, а затем вы необходимо отключить определение константы DEBUG и определить константу TRACE, и вы готовы к работе. Представление

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

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

Interesting Posts

Обнаружение, если используется браузер на мобильном устройстве (iOS / Android phone / tablet)

Неправильный URL-адрес перенаправления на поисковые системы для всех браузеров (yahoo в моем случае)

Окно удаленного рабочего стола вернется к ярлыку хоста

Excel: переносная формула для ссылки на предыдущий (относительный) рабочий лист

Поддержка \ K в regex

Конкатенация строк в Less

ggplot с центрированными именами на карте

java.lang.ClassNotFoundException после изменения ничего в проекте, но обновление eclipse android sdk

Какой тип данных MySQL следует использовать для широты / долготы с 8 десятичными знаками?

как эмулировать «insert ignore» и «on duplicate key update» (sql merge) с postgresql?

ViewPager и fragmentы – какой способ сохранить состояние fragmentа?

Почему объект Object.toString () по умолчанию возвращает шестнадцатеричное представление hash-кода?

В чем разница между .Equals и ==

Возможно ли создать «uber» jar, содержащую classы проекта и зависимости проекта как банки с пользовательским файлом манифеста?

Как группировать похожие элементы в списке с помощью Haskell?

Давайте будем гением компьютера.