昨天遇到一个关于引用路径的奇葩问题,如下:
在项目中有一功能引用StringTemplate做模板,根据变量生成不同类型的邮件模板,作为不同类型的邮件内容。问题是在Debug模式下可以完全编译,不会出现错误。但在release模式下编译不通过,提示一串错误,认不到命名空间和StringTemplate类,尝试删除引用后,重新引用,在现有的设定都不修的情况下再重新编译也不行,问题依旧,提示以下红色的命名空间识别不到。反复尝试无果。
using Antlr.StringTemplate;
using Antlr.StringTemplate.Language;
到底是什么问题呢?不应该呀,网上搜索下,估计是引用路径问题,难道真的是引用路径作怪?把StringTemplate.dll从原来的路径复制到当前项目文件夹下,重新添加引用,这回倒好,重新编译,全部通过,不管是Debug模式还是release模式都没有问题。再尝试把文件复制回原来路径,删除引用后再重新引用,这回也没问题了,自此,问题解决,不过问题有点怪异,难以解释。环境:Windows7 + VisualStudio2008。
在此简单介绍下StringTemplate,功能还是很强大的:
StringTemplate(简称ST)是一个基于Java的模板引擎库(目前同时支持C#、Python、Ruby),可以用于生成源代码、Web页面、电子邮件等各种有格式的文本。StringTemplate不同于其他类似的模板引擎的显著特点是严格执行模型视图分离,尤其擅长多目标代码生成、多种网站风格管理以及网站多语言版本生成等。StringTemplate已经应用到许多大型网站中,例如jGuru.com。
具体可以参考stringtemplate的官网:http://www.stringtemplate.org/
园子里也有介绍stringtemplate的学习笔记,感兴趣的同学可以看下:http://www.cnblogs.com/lwme/category/243746.html