2008-09-09 139 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会将其标记为未找到,我认为这是一个有价值的信息。

相关问题