如何在团队构建中复制dll文件

4
我有一堆外部dll文件,我在多个项目中使用这些文件。这些项目都引用了这些dll文件,并且一切都可以编译通过。
现在我正在尝试为我的项目启用Team Foundation Server构建。当我运行构建时,它会抱怨找不到所需的文件。如何让TFS找到所需的文件呢?
我想我可以在自定义构建模板中使用copydirectory Windows工作流函数,但我不确定这是否是正确的做法。另外,如果我使用copydirectory,如何引用驻留在TFS上而不是文件系统上的目录?我应该将文件复制到哪里?

1
你使用的是哪个 TFS 版本? - askmish
1个回答

2
尝试这样做:(如果使用的是2010年版本) 在Workspaces选项卡中,您可以映射包含您想要的所有DLL的文件夹,只需确保在项目中适当地引用程序集即可。
例如,如果您的项目引用了位于项目根文件夹之前的程序集,您可以设置workspace 如下所示: $\Team Project\src -> $(BuildDirectory)\src $\Team Project\dlls -> $(BuildDirectory)
这样做应该可以解决您的问题。
在VS2010构建中还有一种方法:您应该为项目的预构建步骤添加复制命令(选择项目->属性->生成事件)。
如果您想使用windows workflow模板方法,请参考此指南:http://blogs.msdn.com/b/buckh/archive/2010/01/21/deep-dive-on-windows-workflow-4-0-activities.aspx

我已经尝试将目录添加到“builddefinition:Workspaces->WorkingFolders”屏幕中的列表中,但并没有起作用。另外,关于您添加自定义构建事件的想法,我如何引用存在于TFS服务器上的文件?我认为这是不可能的。 - Jason Cheng
当活动被触发时,TFS服务器中存在的文件应该自动进行交叉引用。我认为你可以尝试这个方法:Build Definition-> Workspace选项卡。将您的dll在源代码控制中的位置添加为服务器路径和本地路径,您希望下载dll的位置。除非您的问题真正描述了您的服务器设置情况,否则很难完全回答与您需求相关的问题。 - askmish
好的,我使用了你的方法成功地解决了问题。我想第一次可能是我做错了什么或者使用了错误的路径。谢谢! - Jason Cheng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接