c# - 构建时 T4 转换的产品仅在下一次构建中使用

标签 c# visual-studio msbuild t4

我有一个 VS 项目,其中包含:

  1. template.tt 上运行 TextTransform 的预构建操作以生成 generated.cs

    <
  2. generated.cs 列为要编译的文件之一(即在项目文件列表中)

我在构建项目时,执行了预构建 Action ,重新创建了generated.cs,但是VS编译的是之前版本的generated.cs(我猜它是在构建过程开始时加载到内存中的)。

如何使构建使用新版本的 generated.cs(即在预构建操作中生成的)?如何强制构建顺序?

请注意,文本转换输入是动态的,因此无法在设计时完成。

最佳答案

我认为您不需要自定义预构建操作。只需将“.tt”文件添加到您的项目并将其“自定义工具”属性设置为“TextTemplatingFileGenerator”。您可能想确保 *.generated.cs 文件也添加到项目中,但我认为 VS 会处理这个问题。

关于c# - 构建时 T4 转换的产品仅在下一次构建中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1293320/

相关文章:

c# - ILogger 接口(interface)未将所有内容记录到事件日志/核心 3.0

visual-studio - 在 Visual Studio 中显示构建时间

c++ - 最新的 Visual Studio 2005 安全更新是否会在热修复客户站点时导致 C 运行时库问题

MSBuild,如何从 .csproj 获取所有项目引用

.net - 在命令行中使用 MSBuild 重建解决方案失败,但 Visual Studio 重建工作正常

c# - MSBuild 在缺少项目文件时强制编译失败

c# - 难道我们不应该将 using block 与 Unity3D 的 WWW 类一起使用(实现 IDisposable)吗?

c# - 使用在 Linux 上运行的 .Net 2.2 核心读取文件共享上的文件内容

c# - C# 中的局部静态变量?

c++ - 内存泄漏,如何使用 MS Visual Studio 2012 检测导致内存泄漏的原因?