我有一种情况,我想将输出程序集从一个项目复制到使用MSBuild的目标应用程序的输出目录中,而不在我的MSBuild中硬编码路径复制任务。这里的情景:MSBuild将另一个项目的输出复制到当前项目的输出中
- 项目A - Web应用程序项目
- 项目B - 德尔接口项目
- 项目C - 德尔实施项目
有一个业务层过,但没有我期待解决的MSBuild问题的相关性。
我的业务层有一个对我的Dal.Interface项目的参考。我的web项目有一个对业务层的引用,现在,构建将把业务层和Dal.Interface项目拉到输出中。到现在为止还挺好。现在为了让Web应用程序运行,它需要Dal实现。我不想在任何地方引用实现,因为我想强制编码到接口,没有引用意味着它不会显示在智能感知等。
所以我想我可以通过MSBuild副本来处理作为AfterBuild任务运行(我有Dal实现设置在Web项目构建时构建,仅仅未被引用)。我不想在MSBuild参数中硬编码路径或其他任何东西,所以我想弄清楚如何从Web应用程序项目的MSBuild文件中引用Dal项目的输出。
因此,基于以上这提到的项目是什么,我想看看发生了:
- 的Web应用程序的构建被踢掉
- 所有必需项目筹建(已配置的,所以这样做)
- 的MSBuild“AfterBuild”任务拉开序幕,并从项目C(DAL实施)输出复制到项目A(Web应用程序)
部分的Bin目录3就是我卡住了。
我确信这可以做到,我只是没有找到一个很好的参考帮助。预先感谢您的帮助。
I + 1'd这个年代以前。正如你所建议的,这不是干净的 - 显然,如果OutDir发生变化,这会中断。当使用TeamBuild进行构建时。 (以防其他人看到这一点,并没有意识到缺点)。另请参阅http://stackoverflow.com/questions/2325598/determining-outputs-of-a-projectreference-in-msbuild/2325620#2325620 – 2010-02-24 11:41:52
请参阅http:// stackoverflow。com/questions/2325598/determine-outputs-a-projectreference-in-msbuild/2325620#2325620一个解决我提到的问题的方法的示例 – 2010-02-24 13:08:34