引言:
在项目中,有一 些库(比如叫:XXX.dll)是通过反射实现动态加载的,调用程序并不一定引用了该库(xxx.dll),在调试的时候,也就每次在编译完成之后,手动将xxx.dll拷贝到调用的程序目录下。看起来就有点傻的操作,虽然知道可以通过生成事件中,写写脚本就能解决,每次还是先去看看电影听听歌去了,懒得写。某次实在忍不住,觉得做为一个写Code总是忍受反复出现的操作,简直说不过去。
案例:
下面就以一个小例子,稍微演示一个小功能。
ConsoleService 为服务启动程序,调用BLL
Bll 调用DALFactory,返回IDAL 的接口对象。
DALFactory 负责根据配置,来确定调用的到底是 OracleDAL , SQLServerDal,SqlServerDapperDal ,
那么在编译 ConsoleService ,Debug 目录下不会有 OracleDAL , SQLServerDal,SqlServerDapperDal 对应的dll 文件。
那就写一个编译事件吧…将OracleDAL , SQLServerDal,SqlServerDapperDal 生成时拷贝到 ConsoleService 的目录下。如果是Debug模式,则拷贝到ConsoleService 的Debug目录, 同样如果是Release,则拷贝到ConsoleService 的Release目录,
输入: copy $(TargetPath) $(SolutionDir)ConsoleService\bin\$(ConfigurationName);
依次打开 : OracleDAL , SQLServerDal,SqlServerDapperDal 项目,加入这段话,就OK了。
也许,你会不放心,这些到底是啥意思啊…
没关系,你在点击”编辑后期生成事件”按钮后,弹出的”后期生成事件命令行”编辑器,点击”宏”,可以看看各个宏到底是指哪个路径…
更多的功能自己去开拓发现。还有更好的应用请及时告知我。
其他的一些参考:
VS2012 生成事件 – stoneniqiu : http://www.tuicool.com/articles/fMZrmq
以上两个都看看,东西不难。飘过一眼就会了。