如何在没有依赖项的情况下检索.Net项目的输出

时间:2012-01-09 11:05:52

标签: .net

当构建.Net项目时,输出被复制到输出文件夹(例如:bin文件夹);不仅复制了从项目源代码发出的二进制文件,还复制了标有选项CopyLocal = True的所有依赖项(文件引用)。

出于自定义构建任务的目的(即:在Team Build上进行编译时),我想知道如何从没有这些依赖项的构建中获取二进制文件列表(我可能不会 - 并且不希望 - 设置CopyLocal = False)。

我的问题是我没有找到一种干净的方法来确定这个输出。我最接近的解决方案是循环项目文件,读取AssemblyName并检查是否有预见的pdb,xml,resx文件。但是,我有时会遗漏资源文件(?)以及其他输出,因为我不知道所有可能的项目。

所以我的问题是:你知道任何方法/技巧/算法来获取Build发布的二进制文件列表;即程序集,附属程序集(+子文件夹的路径),pbd,xml(即:文档)但没有依赖项?

2 个答案:

答案 0 :(得分:0)

您可以将其添加到所有程序集的构建后事件中:

copy "$(TargetDir)$(TargetName).???" "C:\TargetDir"

您将在c:\ TargetDir

中获得程序集

答案 1 :(得分:0)

我有一个(也许是一个非常愚蠢的)想法...

在构建期间(在Team Build上)使用“obj”文件夹中生成的FileListAbsolute.txt怎么样?它精确地包含构建的输出(dll,resx,xml,...),没有依赖项。我可以使用Build Environment变量(路径等)轻松地检索它并在其上循环以获取从“obj”文件夹中删除到“bin”文件夹中的文件的名称。