- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用一组 T4 脚本为我在 EF 应用程序中的实体生成部分类。
因为部分类需要驻留在同一个程序集中,所以脚本与实体类驻留在同一个项目中。它还需要在执行时访问已编译的程序集。
当发生错误时,脚本将失败并输出“ErrorGeneratingOutput”。这将导致整个项目无法编译,因为生成的文件是一个 .cs 文件,具有(在那个时间点)无效的内容。
所以这是一个恶性依赖循环,只有我手动从生成的文件中删除错误消息,然后触发构建才能打破它。
如果有一种方法可以抑制错误消息(或用空字符串替换它),我的生活就会轻松得多。
所以问题是:我可以更改 t4 脚本的错误处理吗?
最佳答案
在某些情况下,这个问题可以很容易地解决。
在我的例子中,问题在于加载 T4 脚本所在项目的 DLL。汇编指令位于脚本的顶部区域(第 5 行)。所以我将输出扩展名更改为 txt。
<#@ template language="C#" hostspecific="True" debug="True" #>
<#@ output extension="txt" #>
<#@assembly name="invalidAssemblyName"#>
然后我使用 EntityFrameworkFileManager 将实际输出放入另一个文件。
<#@ include file="EF.Utility.CS.ttinclude"#>
<#
var fileManager = EntityFrameworkTemplateFileManager.Create(this);
fileManager.StartHeader();
fileManager.StartNewFile("Output.cs");
#>
//content
<#
fileManager.Process();
#>
当发生无法加载程序集的错误时,ErrorGeneratingOutput 消息会打印到默认的 .txt 文件中,不会对编译产生问题。如果可以加载程序集,输出将打印到 Output.cs 文件。
这样就可以在修复初始问题后构建项目,开发人员也不必关心 ErrorGeneratingOutput 问题。
关于c# - T4 抑制错误消息 "ErrorGeneratingOutput",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134809/
我正在使用一组 T4 脚本为我在 EF 应用程序中的实体生成部分类。 因为部分类需要驻留在同一个程序集中,所以脚本与实体类驻留在同一个项目中。它还需要在执行时访问已编译的程序集。 当发生错误时,脚本将
我的 MVC 项目多年来一直使用 T4MVC 搭建脚手架。我对我的一个 Controller 方法的参数输入进行了更改,由于某种原因,当我运行“运行自定义工具”来获取更改时,它改写了带有文本“Erro
我有一个输出到指定文件名的 t4 模板。但是 t4 在运行时为我拥有的每个 tt 文件创建一个 xx.cs 文件。在这个文件中是文本“ErrorGeneratingOutput” 有没有办法阻止创建这
我是一名优秀的程序员,十分优秀!