6

3 つのプロジェクトで構成されるソリューションがあります。ソリューション内のプロジェクトの 1 つからの依存関係のみを含む展開プロジェクトを作成しました。

これまでに行ったことは、セットアップと展開プロジェクトで、「アプリケーション フォルダー」を右クリックして [追加] --> [プロジェクト出力] を選択しました。次に、ドロップダウンからメイン プロジェクトを選択し、[プライマリ出力] を選択しました。[OK] をクリックすると、そのプロジェクトの依存関係がデプロイに正常に含まれました。

ソリューション内の他の DLL に対して同じプロセスを繰り返そうとしましたが、それらの依存関係が含まれていませんでした。

各プロジェクトのすべての依存関係を含めるにはどうすればよいですか?

4

2 に答える 2

1

Visual Studio セットアップ プロジェクトによって検出された依存関係は、提案に似ていることに注意してください。誤検知は非常に一般的であるため、信頼しすぎないようにしてください。

プロのインストーラーの場合、正しい依存関係を自分で判断し、適切な形式でプロジェクトに追加する必要があります。たとえば、一部の依存関係は、インストーラーの前提条件として追加できるランタイムまたはフレームワークの一部である場合があります。

アプリケーションの依存関係がわからない場合は、依存関係ウォーカーを使用してみてください。

于 2012-06-14T06:38:24.637 に答える
0

VS セットアップ プロジェクトの依存関係ウォーク機能は非常に強力で、直接的な依存関係チェックと製品のバイナリ パッケージ化に最適な場所です。ビルドの詳細度が向上すると、各 DLL のどのバージョンが参照されているかを直接分析できるため、ビルド参照を更新するために必要な情報が得られます。残念ながら、バージョン情報は依存関係に組み込まれており、検索パスで利用可能な適切なバージョンが見つからない場合、セットアップ プロジェクトは問題を検出しない可能性があります。

誤検知に関しては、私の経験では、そのツリーに実際のコード パスがあるかどうかに関係なく、バイナリ参照が取り込まれます。この問題の解決策は、コードをリファクタリングすることです (プロジェクトをもう少し細かくします)。

直接のプロジェクト参照を使用しない場合、セットアップ プロジェクトはそれらの依存関係を取り込みません。それはあなたが遭遇している問題ですか?それ以外の場合は、ログの詳細度を上げて、期待する参照を検索します。探しているバージョン、検索した場所、および何も取得しなかった理由を示す必要があります。

于 2015-08-14T01:37:53.843 に答える