.net 网站项目dll引用,项目引用的管理问题
2010-08-06 10:41
239 查看
一般大一点的程序
为了增强程序的可复用性,多将各个逻辑上独立的模块独立出来做为一个单独的项目来管理
一般的为了方便管理项目都把项目生成dll文件然后再引用,这样的好处是
一,源代码安全可以管理
二,程序的独立性更好一点
三.可单独发布dll文件
但是当一个程序越做越大的时候就会发现独立的项目越来越多,dll引用成了一个很大的问题.
大家知道类库项目添加dll引用只要选择一次,下次就可以自动到引用目录中查找同名dll文件
所以类库项目添加dll引用以后就不需要管理了,项目会根据dll文件的改变而自动更新引用!
(注意,类库生成路径要统一写成Z:/bin/dllname.dll 这个样子,前面必须带盘符否则嵌入源代码管理后,别人获取后会改成相对路径的,这样就不对了!必须要写盘符哦最好生成路径和源代码不要放到一个盘中)
以后添加引用都到z:/bin文件夹下添加就都统一了!
但是网站项目的dll引用就不一样了
所有的dll都需要放到bin文件夹下!
假设我有一个网站项目,很大下面分了很多个子网站.
这样的话每个子网站下都需要建立一个bin文件夹,如果有源代码修改过并重新生成dll
这样每个bin文件夹下都需要重新复制一份新的dll文件!
如果是一个网站还好,多个的话那就完了!改一次代码每个网站下都要重新复制一遍.每次找dll都累死人!还谈什么工作
所以为了解决这个问题,我思考了很久.想到了两个方案,
第一个是做一个文件复制工具.监测文件改动自动把改动过的dll复制到每个bin文件夹下
东西也确实做出来了!效果还可以!不过复制起来有点慢!还会出现把*.tmp文件也复制的情况!
还有一种方案更简单更省事!
就是使用符号链接
可能很多人不知道什么是符号链接.可以自己百度一下
具体的思路就是把每个网站下的bin文件夹映射到z:/bin目录.
这样只要修改z:/bin文件夹内的dll其他网站下的bin文件就自动的都改了.因为其实是同一个文件夹
建立符号链接有个工具叫junction.exe
为了方便管理免得每次都重新建立符号链接自己做了一个批处理
到http://download.csdn.net/source/2600862下载
代码如下:
junction "E:/projects/GM/GMSaasBan/View/dcs/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/crm/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/dms/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/erp/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/fms/bin" "d:/wmb_bin/wmb_bin"
这样只要替换目录就可以自动的设置符号链接了
注意:
1.像E:/projects/GM/GMSaasBan/View/dcs/bin前面的源路径映射到目的路径d:/wmb_bin/wmb_bin的时候
每个网站的bin目录之中必须为空,否则会建立符号链接失败.有的即便空了也会失败,
2.映射物理路径中不能包含中文哦!否则建立会失败的
3.有的时候还是建立不成功的话,删掉目录重新建个bin目录再符号链接基本上就可以了
好了.各位只要源代码重新生成以下.或者dll改动一下.各个映射过的网站bin会自动更新dll引用的!
至此我相信各位的dll引用问题基本都已经解决了吧!
最后还有一个小技巧和大家分享一下.
如果你的网站项目需要vss管理源代码的话.记得把网站下的bin文件夹属性设为隐藏哦!同理只要不想让vss管理的文件夹,将其属性设为隐藏就可以了!
设为隐藏以后就不会收到vss的管理了!而且网站还可以正常运行,不受影响!
这回不用再头疼签出时一大堆提示签出*.dll文件了吧!
这个小技巧很多人不知道.拿出来大家分享!
支持的人多多推荐.我还有很多小技巧和大家分享哦!
还有junction 符号链接可以重复执行哦!不会影响使用的
还有符号链接是否建立成功是可以查看的哦!有个工具叫NTFSLinksView
到http://download.csdn.net/source/2600855下载
我的资源里共享了,为了我打着一个小时的字大家就辛苦一点帮我积点分吧!
为了增强程序的可复用性,多将各个逻辑上独立的模块独立出来做为一个单独的项目来管理
一般的为了方便管理项目都把项目生成dll文件然后再引用,这样的好处是
一,源代码安全可以管理
二,程序的独立性更好一点
三.可单独发布dll文件
但是当一个程序越做越大的时候就会发现独立的项目越来越多,dll引用成了一个很大的问题.
大家知道类库项目添加dll引用只要选择一次,下次就可以自动到引用目录中查找同名dll文件
所以类库项目添加dll引用以后就不需要管理了,项目会根据dll文件的改变而自动更新引用!
(注意,类库生成路径要统一写成Z:/bin/dllname.dll 这个样子,前面必须带盘符否则嵌入源代码管理后,别人获取后会改成相对路径的,这样就不对了!必须要写盘符哦最好生成路径和源代码不要放到一个盘中)
以后添加引用都到z:/bin文件夹下添加就都统一了!
但是网站项目的dll引用就不一样了
所有的dll都需要放到bin文件夹下!
假设我有一个网站项目,很大下面分了很多个子网站.
这样的话每个子网站下都需要建立一个bin文件夹,如果有源代码修改过并重新生成dll
这样每个bin文件夹下都需要重新复制一份新的dll文件!
如果是一个网站还好,多个的话那就完了!改一次代码每个网站下都要重新复制一遍.每次找dll都累死人!还谈什么工作
所以为了解决这个问题,我思考了很久.想到了两个方案,
第一个是做一个文件复制工具.监测文件改动自动把改动过的dll复制到每个bin文件夹下
东西也确实做出来了!效果还可以!不过复制起来有点慢!还会出现把*.tmp文件也复制的情况!
还有一种方案更简单更省事!
就是使用符号链接
可能很多人不知道什么是符号链接.可以自己百度一下
具体的思路就是把每个网站下的bin文件夹映射到z:/bin目录.
这样只要修改z:/bin文件夹内的dll其他网站下的bin文件就自动的都改了.因为其实是同一个文件夹
建立符号链接有个工具叫junction.exe
为了方便管理免得每次都重新建立符号链接自己做了一个批处理
到http://download.csdn.net/source/2600862下载
代码如下:
junction "E:/projects/GM/GMSaasBan/View/dcs/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/crm/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/dms/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/erp/bin" "d:/wmb_bin/wmb_bin"
junction "E:/projects/GM/GMSaasBan/View/fms/bin" "d:/wmb_bin/wmb_bin"
这样只要替换目录就可以自动的设置符号链接了
注意:
1.像E:/projects/GM/GMSaasBan/View/dcs/bin前面的源路径映射到目的路径d:/wmb_bin/wmb_bin的时候
每个网站的bin目录之中必须为空,否则会建立符号链接失败.有的即便空了也会失败,
2.映射物理路径中不能包含中文哦!否则建立会失败的
3.有的时候还是建立不成功的话,删掉目录重新建个bin目录再符号链接基本上就可以了
好了.各位只要源代码重新生成以下.或者dll改动一下.各个映射过的网站bin会自动更新dll引用的!
至此我相信各位的dll引用问题基本都已经解决了吧!
最后还有一个小技巧和大家分享一下.
如果你的网站项目需要vss管理源代码的话.记得把网站下的bin文件夹属性设为隐藏哦!同理只要不想让vss管理的文件夹,将其属性设为隐藏就可以了!
设为隐藏以后就不会收到vss的管理了!而且网站还可以正常运行,不受影响!
这回不用再头疼签出时一大堆提示签出*.dll文件了吧!
这个小技巧很多人不知道.拿出来大家分享!
支持的人多多推荐.我还有很多小技巧和大家分享哦!
还有junction 符号链接可以重复执行哦!不会影响使用的
还有符号链接是否建立成功是可以查看的哦!有个工具叫NTFSLinksView
到http://download.csdn.net/source/2600855下载
我的资源里共享了,为了我打着一个小时的字大家就辛苦一点帮我积点分吧!
相关文章推荐
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题!
- 从其他项目复制cs类文件到新项目后无法引用问题解决方法(开发环境vs2010,asp.net项目)
- 有关asp.net网站管理工具的一个小问题
- C#项目引用完全相同dll文件的问题解决方法
- 请求帮助:公司要做一个ASP.NET的项目管理网站,各位朋友有什么好的框架可以推荐?
- asp.net比较大型的企业网站的项目、目录结构问题
- ASP.NET网站管理工具的【安全】功能无法使用问题
- .NET 项目中引用的DLL 版本不一致的问题
- 解决使用MSBuild编译项目没有拷贝间接引用的dll问题
- 解决使用MSBuild编译项目没有拷贝间接引用的dll问题
- 再谈.net项目类库dll的管理及Framework 文件重用方法
- ASP.NET项目中引用全局dll
- asp.net网站管理工具的问题
- C#项目引用完全相同dll文件的问题解决方法(反射)
- VS 2010 的 无法调试引用的类库项目(DLL)问题(生成下面的模块时,启用了优化或没有调试信息) 解决方案
- ASP.NET 管理网站问题解决之道
- 再谈 .net dll泛滥问题,项目引用的管理问题 .完美方案