3

InstallShield で依存関係が解決されていません。

私の環境は VS 2010 と InstallShield Limited Edition です。InstallShield Limited Edition プロジェクトを使用して展開しようとしているプロジェクトがあります。デプロイするプロジェクトには、NuGet を介して追加されたいくつかの参照があります。

<packages>
  <package id="Common.Logging" version="2.0.0" />
  <package id="CsvHelper" version="1.4.0" />
  <package id="log4net" version="1.2.10" />
  <package id="NServiceBus" version="3.2.1" />
  <package id="NServiceBus.Host" version="3.2.1" />
  <package id="Quartz" version="2.0.1" />
</packages>

セットアップ プロジェクトでは、プロジェクトのプライマリ出力を追加しました (ステップ 2 アプリケーション データ/ファイルの指定)。1 つを除いて、すべての依存関係が追加されます (プライマリ出力を右クリック -> ビルド時のスキャンからの依存関係)。Quartz.dll は、そのリストおよびインストールされているファイルから欠落しています。

すべての依存関係が解決され、セットアップに追加されるように、これを修正するにはどうすればよいですか?

NuGet 経由で新しいバージョンが利用可能になると、Quartz.dll の場所が変更されるため、Quartz.dll を手動で追加したくありません。

ところで: Quartz.dll はプロジェクト参照です。

4

1 に答える 1

0

IMO、依存関係分析ツール (およびその他のプロファイリング ツール) は、アプリケーションがどのように機能するか、およびその実行時/展開のニーズについて独自の分析を行う際にデータポイントを取得するのに適しています。

このプロセスを自動の「簡単な」ボタンでカプセル化しようとするのは、良い戦略ではありません。

コードに「quartz.dll」が必要であることがわかっている場合は、次のことを確認してください。

1) 再配布可能です 2) 展開ソリューションがまだありません (たとえば、System.Windows.Forms は .NET FRamework インストールによって展開されます) 3) 必要に応じて手動でインストールにオーサリングします。4) 依存関係のスキャンをオフにして、すべての依存関係に対してこのプロセスを繰り返します。

ソフトウェアにそれを理解してもらうよりも手間がかかりますか? もちろん。それはより決定論的で信頼できるでしょうか?絶対に...そしてそれが私たちが大金を支払われる理由です。

于 2012-06-08T12:32:21.183 に答える