Visual Studio 2012 T4 模板生成 XML 时出现错误

2024-05-07

我正在使用 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,然后出现构建错误。

也许这只是 m$oft 的一个错误

对这里可能发生的事情有什么想法吗?


这是VS的一个bug。您可以通过替换来解决这个问题.tt将行归档

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

with

<# WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>"); #>

一旦 VS 对模板文件的 XML 格式感到困惑,即使在像上面那样进行编辑并重新启动之后,这种混乱似乎仍然存在。解决这个问题的唯一方法似乎是删除现有的.tt从您的项目中创建文件并从头开始重新创建它。

随着这一变化,.tt文件没有<?xml?>标签不再存在,因此 VS 不会将其视为 XML 文件。它忽略文字字符串内的所有内容。

这似乎是同一个问题包含 XML 的 T4 模板会导致解析错误 https://stackoverflow.com/q/11293963/1380680,但解决方法从未被OP确认或接受,这就是我在这里重新发布它的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 2012 T4 模板生成 XML 时出现错误 的相关文章

随机推荐