VS.NET解决方案在构建服务器上构建不同

时间:2010-04-20 23:55:53

标签: visual-studio-2008 msbuild build-process continuous-integration nant

我有一个带有两个Project,ProjectWeb和ProjectLibrary的VS.NET解决方案。 PW取决于PL,所以我有一个VS.NET 项目引用PW中的PL。

这在我的开发盒上运行得很好,但当它全部到达构建服务器时,我有两个不同的构建项目,一个用于PL,一个用于PW。我想构建PL并在某处复制二进制文件。然后,我想使用之前PL版本中的二进制文件来构建PW。

但是,自从PW VS.NET项目引用了一个只在构建服务器上构建PW时不存在的项目,这是否可行?

如何设置

具体来说,我使用的是CC.NET和NAnt,但我还有其他使用Hudson和直接MS构建的项目

1 个答案:

答案 0 :(得分:1)

我过去使用的一种方法是在PL项目上有一个postBuild事件,它将你的dll复制到LocationX(像这样的

XCOPY $(TargetFileName) LocationX /R /Y

(需要/ R / Y来强制文件的覆盖,如果dll存储在源代码控制中并且是只读的,则通常需要该覆盖...否则不需要)。

然后在PW中不使用项目引用,而是引用LocationX中的dll。然后所有这些都可以在你的机器和构建盒上工作。

您仍然可以在解决方案中包含PL,因此调试仍然可以正常工作。

请注意,使用PostBuild事件是一种“旧”方式,最好创建一个执行xcopy工作的AfterBuild MsBuild目标。但结果相同。

相关问题