单声道TextTransform.exe

时间:2014-02-19 03:55:36

标签: c# .net mono t4 css

我正在尝试使用MonoDevelop中的TextTransform可执行文件。我正在使用sharpdevelop作为我的IDE,并创建了一个简单的texttemplate文件来检查它,一切顺利。该文件是在保存时生成的。当我去使用可执行文件时,我不断遇到有关无法查找文件的错误。作为一个例子,我使用<#@ assembly name="System.Core" #>,当我尝试使用可执行文件时会输出:

  

“无法找到错误元数据文件'System.Core'”。

我尝试了几个不同的东西,比如传递-P参数(虽然我不确定我是否做到了这一点)。直到我更改tt文件本身才使用<#@ assembly name="System.Core.dll" #>而不是“System.Core”,可执行文件才成功。但是,在更改为包含文件扩展名后,SharpDevelop现在在保存tt文件时提供此输出。

  

从System.Core.dll加载System.Core.dll的代码完成信息时出错:   找不到汇编文件。

为了让两者都起作用,我有什么遗漏吗?我真的不需要两者,但想了解为什么会发生这种情况。

1 个答案:

答案 0 :(得分:1)

这似乎是TextTransform.exe中的一个错误,因为我希望它允许使用程序集名称而不是文件名。我也可以使用以下T4​​模板在MonoDevelop中重现它。

<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>

<html><body>
 The date and time now is: <#= DateTime.Now #>
</body></html>

上述模板适用于SharpDevelop 4.4。

更改模板以便它在程序集指令中使用System.Core.dll也适用于SharpDevelop。代码完成错误可以忽略。解析器错误地生成此错误。所以你现在可以使用System.Core.dll离开程序集指令。

Visual Studio还支持带有或不带.dll文件扩展名的两个版本的模板。

有趣的是,SharpDevelop实际上使用Mono的T4模板引擎来运行这些T4模板。他们显然做了不同的事情。