惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
Jina AI
Jina AI
博客园 - 司徒正美
雷峰网
雷峰网
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
I
InfoQ
博客园 - Franky
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
Cyberwarzone
Cyberwarzone
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
T
Threatpost
Cloudbric
Cloudbric
D
Docker
M
MIT News - Artificial intelligence
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Vercel News
Vercel News
Martin Fowler
Martin Fowler
J
Java Code Geeks
AWS News Blog
AWS News Blog
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
L
Lohrmann on Cybersecurity
Hacker News: Ask HN
Hacker News: Ask HN
Last Week in AI
Last Week in AI
S
Security @ Cisco Blogs
Help Net Security
Help Net Security
C
Cisco Blogs
V
V2EX
博客园 - 【当耐特】
I
Intezer
爱范儿
爱范儿
F
Fortinet All Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Privacy International News Feed
IT之家
IT之家
L
LINUX DO - 最新话题
B
Blog RSS Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园 - NetCobra

近况 让TortoiseSVN使用类似TortoiseCVS的文件冲突解决方式 CSDN双雄——universee(太极语言)和Sinox(汉澳操作系统) The Netron project down, Netron Reloaded... 推荐一个开源项目和一个免费工具 Windows平台下使用Active Directory对Subversion进行权限控制(非完美解决方案) 看看美国的烂公司是怎么样的烂法 SQLite 不能加密? 对软件的多语言化方法的一点看法 最近工作情况 关于 zjsflyer 对 JPgraph 中文显示乱码问题的回复 [旧文]来自 Borcon2003 中国开发者大会的现场报道 [问题]DotNet 项目如何实现在构建时 Build 号自动增加? 每日构建中的两个问题 如何防止 Wiki 被恶意篡改? [翻译] NMock 两分钟教程 [翻译] NMock 简介 头疼的问题:NAnt 的 cvs-checkout 任务无法执行 可以下载 Delphi 2005 试用版了
DotNet 项目中链接文件的用处
NetCobra · 2005-07-19 · via 博客园 - NetCobra

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 过程就是这样的。