项目要做大, 必然要切分. 切分成各个小项目.
为了源代码的安全和开发环境的简化.
需要将某些底层项目独立出来. 做成Framework.
就包含 类库Framework 和 网站Framework 两种.
先说类库类型的Framework如何重复使用.
之前我一直把类库型的Framework 都生成到一个固定的文件夹 D:\output\ 下. 这样很简单. 一会就搞定. 但是这样会有几个小问题.
1. 这种生成到其它目录的方法不符合visual studio 的口味. 有些功能vs 默认是到 bin/debug下去找的.
2. 如果 重新生成 而不是生成的时候. 会把这个固定的文件夹 D:\output\ 下的内容都清空掉. 如果其它项目恰好引用了这个里面的某个 dll. 那么很不幸. 已经没了..
所以后来使用了新方案.
巧妙的使用xcopy 解决了重新生成时会清空目标文件夹的问题. 解决了引用死循环的问题.
具体操作方法. 选择某个项目的属性. 修改其中的生成事件, 在后期生成事件命令行中. 增加
xcopy /y /f $(TargetPath) D:\DevOutput\lib\
如下图
当然生成的目录还是 bin/Deubg目录下. 这样就跟vs工具比较吻合了.
其它项目引用的时候, 直接从 D:\DevOutput\lib\下面引用即可.
为了方便团队开发. 建议这个路径还是设置成共享比较好.大家共用一个结果集.
盘符也改成 Z:\DevOutput\lib\ 方便团队共享
如果是网站型Framework 又该如何重用共享呢?
里面牵扯到页面静态文件等等.
且看下图
图上写的也很清楚了.
补充一点.这个地方的文件夹是发布出来的. 不是源文件…
嗯关于如何发布网站, 我想还是贴个图吧. 有些新手确实不懂.
首先要保证项目文件结构合理,例如我的Framework 项目下面只有一个Framework文件夹,确保发布生成的文件都在这个目录下. 不会太乱.
下面是发布步骤.
发布结果, 如下图.
当然bin也是刚刚发布出来的. web.config也是刚发布出来的.
发布的文件是编译后的aspx, 而不是源代码.
发布最大的特点是会覆盖老的文件, 而不是整个文件夹清空重来.
好到此为止, 我们已经有Framework 的dll和文件夹了. 请问如何在新的项目里面重用呢??? 如果仅仅是重用dll 我就不说了. 很简单. 直接添加引用即可.
但是如何重用 aspx页面呢? 而且还要保持目录层次不变.
这里就要引出强大的工具叫做 符号链接 了….符号链接你可以看作是目录的快捷方式.
我们把新项目 比如说 “微信APP下单网站/”下的bin文件夹和Framework文件夹. 链接到 D:\Devoutput\bin 和 D:\Devoutput\Framework
这样我们的目录就成了这个样子.
然后调试项目什么的就跟独立网站一模一样了.
嗯. 下面说一下怎么做符号链接, 当然如果你不嫌麻烦可以手工复制过来, 效果是一样的.就是每次生成发布以后都要复制. 很烦的……..所谓的符号链接, 目的就是为了省去你的复制黏贴工作…..
符号链接命令如下, 在你的新项目下面创建一个 “创建项目FrameWork运行环境.bat” 文件,文件内容为.
mklink /j bin D:\DevOutput\bin
mklink /j Framework D:\DevOutput\Framework
mklink /j Static D:\DevOutput\Static
pause
然后运行就可以了..