当构建.Net项目时,输出被复制到输出文件夹(例如:bin文件夹);不仅复制了从项目源代码发出的二进制文件,还复制了标有选项CopyLocal = True的所有依赖项(文件引用)。
出于自定义构建任务的目的(即:在Team Build上进行编译时),我想知道如何从没有这些依赖项的构建中获取二进制文件列表(我可能不会 - 并且不希望 - 设置CopyLocal = False)。
我的问题是我没有找到一种干净的方法来确定这个输出。我最接近的解决方案是循环项目文件,读取AssemblyName并检查是否有预见的pdb,xml,resx文件。但是,我有时会遗漏资源文件(?)以及其他输出,因为我不知道所有可能的项目。
所以我的问题是:你知道任何方法/技巧/算法来获取Build发布的二进制文件列表;即程序集,附属程序集(+子文件夹的路径),pbd,xml(即:文档)但没有依赖项?
答案 0 :(得分:0)
您可以将其添加到所有程序集的构建后事件中:
copy "$(TargetDir)$(TargetName).???" "C:\TargetDir"
您将在c:\ TargetDir
中获得程序集答案 1 :(得分:0)
我有一个(也许是一个非常愚蠢的)想法...
在构建期间(在Team Build上)使用“obj”文件夹中生成的FileListAbsolute.txt怎么样?它精确地包含构建的输出(dll,resx,xml,...),没有依赖项。我可以使用Build Environment变量(路径等)轻松地检索它并在其上循环以获取从“obj”文件夹中删除到“bin”文件夹中的文件的名称。