我有一种情况,我想使用MSBuild将输出程序集从一个项目复制到我的目标应用程序的输出目录中,而不需要在MSBuild Copy任务中使用硬编码路径.这是场景:
项目A - Web应用程序项目
项目B - Dal接口项目
项目C - 达尔实施项目
还有一个Business层,但与我想要解决的MSBuild问题无关.
我的业务层有一个对我的Dal.Interface项目的引用.我的Web项目有一个对Business层的引用,并且就目前而言,执行构建会将业务层和Dal.Interface项目拉入输出.到现在为止还挺好.现在,为了运行Web应用程序,它需要Dal实现.我不想在任何地方引用实现,因为我想对接口强制执行编码而没有引用意味着它不会出现在intellisense等中.
所以我认为我可以通过MSBuild复制操作作为AfterBuild任务来处理这个问题(我在构建Web项目时构建了Dal实现设置,但没有引用).我不想在MSBuild参数中硬编码路径或其他任何东西,所以我试图弄清楚如何从Web应用程序项目的MSBuild文件中引用Dal项目的输出.
所以根据上面提到的项目,我想看到的是:
Web应用程序构建开始了
所有必需的项目都已构建(已配置,因此已完成)
MSBuild"AfterBuild"任务启动,Project C(Dal Implementation)的输出被复制到Project A的Web目录(Web应用程序)
第3部分是我被困的地方.
我确信这可以做到,我只是找不到帮助的好参考.在此先感谢您的帮助.
我已经做了这个工作,虽然我很想找到一个更清晰的解决方案,它可以在MSBuild中获得内置参数的优势(比如$(TargetDir)等,但是指向我想要获取输出的项目).无论如何,这就是我所做的:
我希望看到一个更清洁的解决方案,但现在应该这样做.