2008-09-09 4 views
1

.netプロジェクトのすべての必要なアセンブリ(.netフレームワークを除く)を、セットアップファイルとしてnsisにパッケージ化する準備が整ったフォルダに取得する方法はありますか?アプリケーションで必要なアセンブリの一覧を取得する

私はdllのリストを取得するためにリフレクションを使用する小さなコンソールアプリケーションを作成しようとしましたが、dllが.netフレームワークかどうかを判断する簡単な方法を見つけることに悩まされています。

答えは、すべての依存関係を出力するためのVisual Studioの簡単なスイッチ、またはそれを実行できるスタンドアロンのアプリケーション、Nsisのプラグイン、または私が見逃した反射に関する情報である可能性があります。

+0

dllが.netフレームワークかどうかを判断する簡単な方法の点では、mscorlibのC:\ WINDOWS \ MicrosoftのAssemblyオブジェクトのCodebaseプロパティを使用することが最善の方法です.NET \ Frameworkを使用していますが、すべての.netフレームワークアセンブリではありません。 –

+0

NSISインストーラの目的に応じて、このことに注意してください。 –

答えて

1

Visual Studio 2005では、プロジェクトに関連付けられた各参照に「ローカルコピー」というプロパティがあります。これはtrue/falseに設定できます。 trueの場合、dllはあなたのために現在の設定ディレクトリにコピーされます。

0

Dependency Walkerが必要です。またはDepends.Net

+1

依存関係ウォーカーはアセンブリ参照を解決しません(http://www.dependencywalker.com/faq.html参照)。 –

1

これにはNDependを使用できます。ダウンロードし、新しいNDependプロジェクトを作成し、&をアセンブリをApplication Assembliesデータグリッドビューにドラッグすると、アプリケーションアセンブリのセットに必要なティアアセンブリがNDependで直ちに解決されます。

また、NDependにどこに見えるように指示するためのフォルダのリストを提供することもできます。ティアアセンブリが見つからない場合、NDependはそれを見つからないものとしてマークします。これは貴重な情報だと思います。

関連する問題