- 浏览: 12181 次
最新评论
.net 网站项目dll引用的管理问题
- 博客分类:
- 技术杂绘
.net 网站项目dll引用的管理问题
2010年08月06日
一般大一点的程序
为了增强程序的可复用性,多将各个逻辑上独立的模块独立出来做为一个单独的项目来管理
一般的为了方便管理项目都把项目生成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下载
我的资源里共享了,为了我打着一个小时的字大家就辛苦一点帮我积点分吧!
发表评论
-
Red5学习笔记(一):入门及配置
2012-01-20 10:36 845Red5学习笔记(一):入门及 ... -
FLEX 开发领域你知多少?
2012-01-20 10:36 546FLEX 开发领域你知多少? ... -
chatroulette 与RTMFP
2012-01-20 10:36 743chatroulette 与RTMFP 2010年0 ... -
使用PHP模拟RTMP客户端发送AMF消息(弹幕发射器)
2012-01-20 10:36 1188使用PHP模拟RTMP客户端发 ... -
GCC
2012-01-19 15:41 540GCC 2011年10月21日 The History ... -
C库函数
2012-01-19 15:41 574C库函数 2010年06月28日 rename()文件改 ... -
初探Linux kernel之喝凉水系列二
2012-01-19 15:41 604初探Linux kernel之喝凉水系列二 2011年03月 ... -
D200的库设置
2012-01-19 15:41 686D200的库设置 2010年07月2 ... -
关于malloc函数后free内存空间的疑问
2012-01-19 15:41 625关于malloc函数后free内存空间的疑问 2011年11 ... -
2012-1-13
2012-01-17 05:24 4852012-1-13 2012年01月13日 2011-2 ... -
google地图API开发基础(三):控件
2012-01-17 05:23 773google地图API开发基础(三 ... -
手机党心声:“离开手机生活”这是不可能的!
2012-01-17 05:23 545手机党心声:“离开手机生活”这是不可能的! 2012年01月 ... -
Alienware新版全机型超详细全导购(升级价格/配置参考/建议分析/选配配置)!!
2012-01-17 05:23 670Alienware新版全机型超详 ... -
actually, i …
2012-01-17 05:23 543actually, i … 2012年01月13日 其实 ... -
上海老百姓的胆量 VS 大牌店营业员的势利
2012-01-16 04:18 692上海老百姓的胆量 VS 大 ... -
是谁成就了凤姐的忘形
2012-01-16 04:18 465是谁成就了凤姐的忘形 2010年06月02日 ... -
第七十三章 暗杀
2012-01-16 04:18 561第七十三章 暗杀 2011年06月10日 丰含笑又等了 ... -
看“非诚勿扰”(2011.3.27)
2012-01-16 04:18 281看“非诚勿扰”(2011.3.27 ...
相关推荐
Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...
02 ExtJs.Librariy 里包含的是在项目中引用的 dll HZYT.DBUtility.dll 数据库的底层类库(自己开发)。 Newtonsoft.Json.dll 转换成Json的类库,下载地址:(http://download.csdn.net/detail/wave2/5768785) 项目...
1.6.1 如何创建ASP.NET项目 58 1.6.2 如何创建Windows项目 61 1.6.3 Visual Studio.NET 2008 操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试...
ASP.NET网站有一种好处,就是在编译后,编译器将整个网站编译成一个DLL(动态链接库),在更新的时候,只需要更新编译后的DLL(动态链接库)文件即可。但是ASP.NET网站却有一个缺点,编译速度慢,并且类的检查不彻底...
日志组件位于System.Database.dll中,项目引用命名空间(System.Logger)即可,日志组件提供五种级别的日志记录(DEBUG|INFO|WARN|ERROR|FATAL),最低DEBUG,最高FATAL,当配置的级别大于等于对应级别时,会自动记录...
1.6.1 如何创建ASP.NET项目 58 1.6.2 如何创建Windows项目 61 1.6.3 Visual Studio.NET 2008 操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试...
只要在项目中引用BuleCommon.dll程序集, 类(Class)继承于BuleCommon.BuEntity.BuEntityObj, 并且在类和方法前指定[BuleCommon.BuEntity.BuEntityAttribute()] 特性, 实现Bule_EntityRegClass : IBule_EntityRegClass...
17.3.1 在ASP.NET中引用自动生成的HTM页面 214 17.3.2 制作点播列表 215 17.3.3 完成点播功能 216 17.4 在播放媒体中插播广告 217 17.5 小结 218 第18章 报表模块 219 18.1 用数据控件实现的简单报表...
lib 项目引用到的第三方程序集(dll) model / oom UML图 model / pdm 数据库设计文档(E – R图) model / sql 数据库创建和删除的脚本 resource 项目使用到的第三方UI控件的完整源码包 描述 1 “职员”和...
然后在vs2010的解决方案资源管理器窗口中右击项目,单击“添加引用”,然后在打开的窗口中选“浏览”标签,之后找到要使用的dll文件(StackExchange.Redis.dll),点击确定即可引进StackExchange.Redis。之后就可以...
组件采用动态链接库文件(*.DLL)的形式,在PC系统的项目工程里引用该组件,调用相应的属性与方法函数,即可快速实现PC与PLC的数据高效交换。采用稳定高效的内部协议,无须编写PLC内部程序配合,直接访问PLC的内存,...
只需dll引用,就拥有了一个网站需要的诸多基础功能,再配合代码生成器,就可以很快完成网站框架的搭建。框架默认实现了分类管理、会员管理、广告管理、文章管理、权限角色管理、定时任务管理等。Moz功能 日志 JWT...
1. 先把IrisSkin2.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用 ,找到IrisSkin2.dll文件.....之后就不用我说了吧^_^).IrisSkin2.dll文件最好放在当前项目\bin\Debug文件中. 2. ...
如果您是经常使用NHibernate或其他DLL插件的ASP.NET开发人员,一定会为NHibernate或其他DLL插件的配置部署问题而搞懵,这些类型的插件有个最大的问题是其核心操作均是由该插件的内部完成,对开发人员来说是个黑匣子...
对于ASP.NET开发人员来说,管理项目中的JavaScript...对几乎所有上述问题的解决方法是使用ASP.NET的内置功能来嵌入JS文件到一个DLL,然后动态引用这些文件。本文将演示这些功能,以及一些充分使用它们的技巧。接下来我们
用于.net dll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。 平台基于quartz.net进行任务调度功能开发,采用C#代码编写,支持corn表达和第三方自定义的corn...
Microsoft.EntityFrameworkCore.SqlServer.dll NuGet 程序包,用以在.NET Core程序中连接SqlServer数据库的组件,当nuget程序包管理器无法正常安装时可以添加此引用到项目中。
MySql.Data.EntityFrameworkCore.dll NuGet 程序包,用以在.NET Core程序中连接MySql数据库的组件,当nuget程序包管理器无法正常安装时可以添加此引用到项目中。
不同于32位的DataWindow.NET 2.5,只需要在VS2010“解决方案资源管理器”的“引用”中,添加解压后的Sybase.PowerBuilder.DataWindow.Win.dll即可,然后在VS2010项目上点右键--属性--应用程序--目标框架--修改为...