assembly Tag in T4--对上一篇文章的一些更新

本文详细介绍了T4模板中如何解析第三方库assembly的过程,包括指定路径加载、全局缓存(GAC)查找、项目引用搜索及项目属性路径扫描等步骤。

在上一篇文章了提到了在T4中引用assembly

发布之后觉得之提到了很粗略的大概, 为此又去查阅了一些文档,在这篇文章中,要对t4解析assembly做一个详解

ps,主要针对第三方的lib,system的就略过不提了

在t4中使用assembly tag后,编译器会按照如下顺序查找

1. 指定路径

如果在tag中清楚的写明了路径, 如

<#@ assembly name=C:\T4Project\bin\Debug\TestLib.dll” #>

那编译器就会直接去到指定的路径去load该dll

2.GAC

如果tag中没有指明具体路径,那T4的编译器就会先去GAC查找, 当然, 找到的前提是该assembly是strong name的

<#@ assembly name=TestLib.dll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” #>

3.项目的引用

如果编译器没在GAC中找到指定的assembly,则会接着去T4文件所在项目的references的assembly中查找

<#@ assembly name=TestLib.dll” #>

4.项目的属性

最后, 编译器会检查T4文件所在项目的Reference Paths属性,尝试在这些path中找到指定的assembly

 

如果上述四个情况都不满足, 那就会产生Metadata file  could not be found 的错误信息

 

知道了这些规则,我们就可以因地制宜的选择引入assembly的方式

 

转载于:https://www.cnblogs.com/rc-tech/archive/2010/06/25/1765174.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值