1

PowerCLI with .NET には、実行する各マシンに PowerCLI をインストールした場合にのみ取得する dll への依存関係がいくつかあります。コマンド ライン引数を持つコンソール アプリがありますが、通常の方法を使用して展開すると、依存関係が満たされていないため機能しません...これらのアセンブリは GAC の一部です。

Clickonce の展開は役に立たないことが判明しました.引数をクエリパラメーターとして渡しましたが、引数を認識しませんでした。

最後に、このリモート マシンに VMware PowerCLI をインストールしました。次に、.exeを実行すると、機能しました。PowerCLI のインストールを回避し、デプロイ時にすべての依存関係を exe に含める方法はありますか?

4

2 に答える 2

1

問題がユーザーからインストールを隠している場合は、サイレント インストールの 1 行の Powershell スクリプトを使用して PowerCLI インストールを自動化することもできます。

呼び出し式 ("cmd /c '$powerCLIexeFilePath'/S /VADDLOCAL=ALL /V/qn")

于 2012-11-16T16:53:03.117 に答える
1

コンソール アプリケーションをデプロイする正確な場所によっては、うまくいかない場合があります。このページ私が見つけた最も関連性の高いフォーラムの投稿によると、PowerCLI アセンブリは再配布可能ではありません。このアプリケーションを社外に配布する場合の最善の策は、Web サービス SDK を使用することです。これは、既にアプリケーションを開発しているため、非常に面倒なことです。

アプリケーションが内部使用のみであり、それを宛先サーバーにデプロイするだけであると仮定すると、次のようにしてアセンブリをローカルで参照できます。

  1. 開発マシンで、参照する PowerCLI .dll を GAC (%WINDIR%\assembly) からソリューションのローカル ディレクトリにコピーします。
  2. プロジェクト内の参照を変更して、.dll のローカル バージョンを指すようにします。
  3. 各参照の [プロパティ] ビューを開き、[ローカルにコピー] が True に設定されていることを確認します。
  4. コンソール アプリケーション (および共存する .dll) をコンパイルしてターゲット マシンに展開します。ローカル ディレクトリでそれらを参照し、外部依存関係なしで実行する必要があります。

それが役立つことを願っています!

于 2011-06-15T15:22:56.563 に答える