我正在使用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
的错误关于这里可能发生什么的任何想法?
答案 0 :(得分:9)
这是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的解决方法从未被确认或接受,这就是我在此重新发布的原因。
答案 1 :(得分:2)
作为Reinier回答的后续行动......
我发现删除并重新创建文件有效,但没有必要从项目中排除该文件。
我发现最快/最简单的方法是: