Запуск консольного приложения C # clickonce - PullRequest
1 голос
/ 10 июня 2011

У меня есть консольное приложение командной строки, которое ссылается на dll 'VMware.Vim.dll', но в нем есть другие dll, такие как VimService41.dll, VimService20.dll и т. Д., Сохраненные в GAC на моей локальной машине. Я хочу развернуть этот exe-файл на любом компьютере и иметь возможность запускать его, передавая аргументы. Когда я копирую exe и VMware.Vim.dll, он жалуется на другие отсутствующие dll, хотя они не являются частью папки выпуска.

Я попробовал опцию «Опубликовать» и создал приложение ClickOnce, чтобы развернуть его на компьютере, с которого я хочу запустить исполняемый файл. Это создало файл setup.exe и файл манифеста. Когда я запускаю его, он жалуется, что внешние библиотеки не были добавлены в GAC.

Как запустить консольное приложение clickonce, передав аргументы?

Ответы [ 4 ]

4 голосов
/ 13 июня 2011

Во-первых, вы не запускаете приложение ClickOnce при запуске EXE.Если вы собираетесь это сделать, просто скопируйте папку bin из вашей сборки на компьютер.Вы тратите свою жизнь, используя ClickOnce, если вам не нужно делать автоматические обновления.

Во-вторых, вы можете попробовать отследить все необходимые вам dll и включить их в проект.Это включает в себя все вторичные или третичные зависимости.Добавьте их в свой проект, установите действие сборки «content» и установите «copy to output directory» в «copy Always».Затем они будут включены в выходной каталог при сборке.

DLL некоторых приложений будут работать при локальном развертывании (например, DirectX), а некоторые - нет (SQLServer Express).Вам просто нужно попробовать и посмотреть, если это так.

Я бы сказал, однако, что использование сборок VMWare, вероятно, противоречит EULA.Это все равно что пытаться включить сборки Office для запуска Excel на машине без установленной версии.

Что касается передачи аргументов, если вы действительно хотите использовать его в качестве приложения ClickOnce, вот запись в блогеобъяснение того, как передавать аргументы в автономное (или онлайн) приложение ClickOnce:

http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/

1 голос
/ 10 июня 2011

Если вы хотите использовать ClickOnce, вам нужно добавить пользовательский предварительный реквизит, чтобы приложение установило его зависимости в GAC.

Посмотрите на: http://msdn.microsoft.com/en-us/library/ms165429(v=VS.100).aspx

0 голосов
/ 10 июня 2011

Если вы можете найти все зависимости, которые вы можете включить в них (установив их для локального копирования в VS) с выпуском, тогда у вас не должно возникнуть проблем.

0 голосов
/ 10 июня 2011

Я не думаю, что этот сценарий подходит для клика один раз. Если вам нужно установить вещи, которые изменяют gac, вам нужно использовать установщик.

...