我有一个带有两个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构建的项目
答案 0 :(得分:1)
我过去使用的一种方法是在PL项目上有一个postBuild事件,它将你的dll复制到LocationX(像这样的)
XCOPY $(TargetFileName) LocationX /R /Y
(需要/ R / Y来强制文件的覆盖,如果dll存储在源代码控制中并且是只读的,则通常需要该覆盖...否则不需要)。
然后在PW中不使用项目引用,而是引用LocationX中的dll。然后所有这些都可以在你的机器和构建盒上工作。
您仍然可以在解决方案中包含PL,因此调试仍然可以正常工作。
请注意,使用PostBuild事件是一种“旧”方式,最好创建一个执行xcopy工作的AfterBuild MsBuild目标。但结果相同。