找出缺少应用程序的依赖项

时间:2013-01-21 17:35:57

标签: c#

如何验证应用程序的所有依赖项是否位于文件夹中(而不是GAC中)?

例如,我们有一个具有四个依赖关系的应用程序A:B,C,D,E。

构建后我们有一个文件夹:

\ForDeployment\A.exe
\ForDeployment\B.dll
\ForDeployment\E.dll

由于某种原因,两个程序集(C和D)不在文件夹中。

如何确定文件夹中缺少哪些程序集?我们正在寻找可以在每次构建时启动的代码或命令行工具。

编辑:

更改“复制本地”设置无关紧要,因为:

  • 我有百个解决方案。任何时候任何开发人员都可能将此设置更改为错误的设置(或使用“Copy local”=“false”添加新的依赖关系)。我正在寻找的工具也应该解决这个问题

  • GAC中的依赖关系永远不会复制到结果文件夹(在VS2010中)

2 个答案:

答案 0 :(得分:1)

只需将将本地复制设置为true即可查找相关的依赖项。这样你就可以确保在本地拥有一个程序集的副本。

答案 1 :(得分:0)

你可以这样做:

if(!FileExist)
     Output message "Missing File"

每次启动程序时,只需为每个依赖项文件执行此操作。但我只是在评论中遵循Gabe的建议,并在所有依赖项上将Copy Local设置为true。