dem*_*tos 4 .net xml t4 config transformation
我已经为我的web和Windows项目的配置文件创建了T4模板.我可以成功生成主web.config,以及其他环境的所有配置,即web.ci.config等.但是,我无法摆脱我的主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";
#>
Run Code Online (Sandbox Code Playgroud)
这是截图
同样的问题在这里 我通过在.tt
文件中替换该行来解决它
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
同
<# WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); #>
Run Code Online (Sandbox Code Playgroud)
一旦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";
#>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1737 次 |
最近记录: |