我创建T4模板我的Web和Windows项目的配置文件。 我可以成功地生成主web.config中,所有的configs用于其他环境,即web.ci.config,etc..However,我无法摆脱对我的主人TT文件,如错误的:
- 字符“#”,十六进制值0x23是XML名称是非法的。
- 字符“<”,十六进制值是为0x3C在XML属性值是非法的。
- 意外的XML声明。 XML声明必须是文件中的第一个节点,没有空格字符被允许在它之前出现。
我应该缺少一个XML架构或引用,但什么?
我的文件是这样的:
<#@ template debug="true" hostSpecific="true" #>
<#@ output extension= ".config" #>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<add key="FileUploadFolder" value="<#= this.FileUpload #>" />
...
</configuration>
<#+
string FileUpload="\\\\server\\folder";
#>
这里是截图
这里同样的问题。 我工作围绕它通过在更换.tt
文件中的行
<?xml version="1.0" encoding="utf-8"?>
同
<# WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); #>
一旦VS是困惑的模板文件的XML格式,它似乎在混乱持续下去 - 即使在编辑类似上面和重新启动后。 周围的唯一方法似乎是删除现有.tt
从您的项目文件,并从头开始重新创建它。
随着这一变化, .tt
文件没有一个<?xml?>
标签了,所以VS不会认为这是一个XML文件。 它忽略了文字字符串内的一切。 你的整个模板现在看起来是这样的:
<#@ template debug="true" hostSpecific="true" #>
<#@ output extension= ".config" #>
<# WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); #>
<configuration>
...
<add key="FileUploadFolder" value="<#= this.FileUpload #>" />
...
</configuration>
<#+
string FileUpload="\\\\server\\folder";
#>
这里发生的事情是,在VS XML语言服务标识错误的T4文件作为一个XML文件,所以大量喷涌假阳性的错误消息。
我期待到是否有一个变通方法,以迫使它忽略T4文件。 如果你可以登录错误Microsoft连接 ,那将是有益的。