2008-09-09 137 views
1

是否有辦法將.net項目的所有必需程序集(不包括.net框架)都獲取到準備好作爲安裝文件打包到nsis的文件夾中?獲取應用程序所需的程序集列表

我已經嘗試編寫一個小型控制檯應用程序,它使用反射來獲取dll列表,但一直在尋找一種萬無一失的方式來確定dll是否來自.net框架。

答案可能是在Visual Studio中一個簡單的開關輸出所有的依賴,或一個獨立的應用程序,可以做到這一點,或者NSIS一個插件,或者說我已經錯過了上反映的一些信息。

+0

在確定如果DLL是從.NET框架與否的萬無一失的方法而言,我所能做的最好是使用Assembly對象,這對於mscorlib中是「C的codebase屬性:\ WINDOWS \微軟.NET \框架,但它並不適用於所有的.NET Framework組件。 – 2008-09-09 15:03:25

+0

你要小心這一點,取決於你的NSIS安裝是什麼,你可能會發現,你不小心在您安裝一個DLL,你不要沒有許可證來重新分配。 – 2008-09-14 23:49:10

回答

1

在Visual Studio(至少2005年 - 我現在正在使用的)中,與項目關聯的每個引用都有一個名爲「Copy Local」的屬性,可將其設置爲true/false。當它爲true時,它會將dll的複製到當前的配置目錄中。

1

您可以使用NDepend這個。下載它,建立一個新的NDepend項目,拖拽&將你的程序集放到應用程序集數據網格視圖中,你會看到NDepend立即解析你的應用程序集合所需的層組件。

你也可以提供一個文件夾列表來告訴NDepend在哪裏看。如果無法找到層組件,那麼NDepend會將其標記爲未找到,我認爲這是一個有價值的信息。

相關問題