我正在使用visual studio 2012从T4模板生成
XML.模板的顶部看起来像
<#@ template language="VBv4" hostspecific="True" debug="True" #> <#@ output extension="wmef" #> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
T4模板正确生成XML.这没问题.然而,visual studio变得混乱,它还试图将模板本身作为XML处理,并报告构建错误,说XML形成错误,当然这是因为它是XML的模板,而不是实际的XML.
当我第一次编辑.tt文件时,一切正常.但是,一旦生成了XML文件并将其加载到编辑器中以查看它,然后突然返回到.tt文件,.tt文件的语法突出显示为XML,然后出现构建错误.
Perhapps这只是一个m $oft的错误
关于这里可能发生什么的任何想法?
这是VS中的一个错误.您可以通过在.tt文件中替换该行来解决它
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
同
<# WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>"); #>
一旦VS对模板文件的XML格式感到困惑,它就会持续存在这种混乱 – 即使在完成上述编辑和重新启动之后也是如此.唯一的方法似乎是从项目中删除现有的.tt文件并从头开始重新创建.
通过此更改,.tt文件没有<?xml?>标签,所以VS不认为它是一个XML文件.它会忽略文字字符串中的所有内容.
这似乎是与T4 Template containing XML results in parse errors相同的问题,但OP的解决方法从未得到确认或接受,这就是我在此重新发布的原因.