Рекомендуемый подход к развертыванию консольного приложения VMware PowerCLI - PullRequest
1 голос
/ 13 июня 2011

PowerCLI с .NET имеет некоторые зависимости от DLL, которые вы получаете только при установке PowerCLI на каждую машину, которую вы хотите запустить. У меня есть консольное приложение с аргументами командной строки, которое при развертывании с использованием обычного метода не работает из-за неудовлетворенных зависимостей ... эти сборки являются частью GAC.

Развертывание Clickonce оказалось бесполезным ... оно не распознало мои аргументы, хотя я передал их как параметры запроса.

Наконец, я установил VMware PowerCLI на этом удаленном компьютере. Затем запустил .exe и все заработало. Есть ли способ избежать установки PowerCLI и иметь возможность включать все зависимости с моим exe во время развертывания?

Ответы [ 2 ]

1 голос
/ 16 ноября 2012

Вы также можете автоматизировать установку PowerCLI с помощью однострочного скрипта Powershell для установки без вывода сообщений, если проблема скрывает установку от пользователей.

Выражение вызова ("cmd / c '$ powerCLIexeFilePath' / S / VADDLOCAL = ALL / V / qn")

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

В зависимости от того, где именно вы хотите развернуть консольное приложение, вам может не повезти.Согласно этой странице и наиболее релевантному сообщению на форуме, которое я смог найти , сборки PowerCLI не распространяются.Лучше всего, если вы хотите распространять это приложение за пределами вашей компании, это использовать SDK для веб-сервисов - огромная боль, поскольку вы уже разработали приложение.

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

  1. На компьютере разработчика скопируйте любой файл PowerCLI .dll, на который вы ссылаетесь, из GAC (в% WINDIR% \сборки) в локальный каталог ваших решений.
  2. Измените ссылки в проекте, чтобы они указывали на локальные версии .dll.
  3. Откройте представление «Свойства» для каждой из ссылок иубедитесь, что для параметра «Копировать локально» установлено значение «Истина».
  4. Скомпилируйте и разверните консольное приложение (и его coresident .dll) на целевом компьютере, оно должно ссылаться на них в локальном каталоге и запускаться без внешних зависимостей.

Надеюсь, это поможет!

...