开发记事本

生命中闪过了多少if...then...else...

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
DotNet 项目中链接文件的用处

首先,什么是链接文件?

在VS.Net中打开一个WinForm项目或者DLL项目(在Web项目中不能使用链接文件,感谢dudu指出),在随便一个项目中右击鼠标,选择“添加”→“添加现有文件”(抱歉,手头的机器太差,没有装VS.Net,所有的操作说明全凭记忆,如果有出入敬请原谅),随便选中一个文件,不要选“打开”,点击“打开”按钮右侧的下拉菜单,选择“链接文件”;

选中的文件已经添加到了你的项目中,但是这个文件和你平常添加到项目中的文件是不一样,这仅仅是一个指向你所选择文件的链接,相当于一个快捷方式;文件在你指定添加的位置上是不存在的,但是你可以照样地对这个文件进行编辑、编译等操作,和普通文件地使用并没有什么不同;

链接文件有什么用处?我能想到的大概有这么几个:

1.给可执行文件项目进行单元测试;
由于被测试的项目必须是DLL,才能够被NUnit单元测试项目引用而进行测试,因此如果你把逻辑代码放到了可执行文件项目中,NUnit就无用武之地了;

这种情况下要进行单元测试,可以新建一个DLL项目,通过链接文件把可执行文件下的所有文件都进行链接,然后把NUnit单元测试项目的引用指向这个项目,这样就可以用NUnit进行测试了;当你的可执行文件进行了修改的时候,“链接项目”的编译结果也会是最新的。

2.引用其他可执行文件项目
如果你要在自己的项目中引用其他可执行文件项目中的代码,除了将被引用项目的属性临时修改为DLL,编译后再改回来,似乎没有其他办法了。

类似上面对可执行文件项目执行单元测试的情况,我们同样可以使用链接文件解决这个问题:新建一个引用被引用的可执行文件项目的DLL项目,将你自己的项目引用指向这个新建的DLL项目即可;

上面两种情况,究其根本都是系统设计不当造成的,重构或者修改设计可以避免这种问题,但是实际中总是很难做到,用链接文件作为补救措施总还算是一种比较好的亡羊补牢方式。

3.给一个解决方案中的项目统一版本信息和签名信息
一个项目的版本信息和签名信息是在该项目的Assembly.cs文件中指定的,将所有的项目中的Assembly.cs文件都链接至同一个文件,以后只要修改这个Assembly.cs文件中的内容,就可以保证所有项目的版本信息和签名信息都是一致的。 NAnt 项目的 Build 过程就是这样的。

posted on 2005-07-19 20:58  NetCobra  阅读(7048)  评论(8编辑  收藏  举报