使用 VS 2012 在构建中生成 T4

2024-06-28

我正在尝试使用 VS2012 在项目的每个构建上生成代码。

我的解决方案中有 3 个项目:

  • 项目1有一些类
  • 项目 2 有通用模板
  • 项目 3 的模板读取 json 文件,然后调用项目 2 中的通用模板来生成其文件。

当我单击“构建/转换所有 T4 模板”时,没有问题,生成进展顺利。

但我正在尝试将我的构建配置为在每个构建中自动包含此步骤。

我已将此代码添加到我的 csproj 中:

<Import Project="$MsBuildToolsPath)\Microsoft.CSharp.Targets" />
<PropertyGroup>
   <TransformOnBuild>true</TransformOnBuild>
   <OverWriteReadOnlyOutputFiles>true</OverWriteReadOnlyOutputFiles>
</PropertyGroup>
<Import Project="$(MSBuildExtensionPath32)\Microsoft\VisualStudio\v11.0\TextTemplating\Microsoft.TextTemplating.targets"/>

我已经为自己制定了道路”\Microsoft\VisualStudio\v11.0\TextTemplated\Microsoft.TextTemplated.targets“从我在电脑上找到的内容来看。 我拿的例子是:在每个构建上运行 a-t4-template 的 Visual Studio https://stackoverflow.com/questions/1646580/get-visual-studio-to-run-a-t4-template-on-every-build

问题来自我正在使用的这一行:

我收到错误:

无法解析文件的包含文本: D:\Projects\pppp\qqq\eeee\$(SolutionDir)\xxx\yyy\zzz\mytemplate.tt

由于模板在“手动”生成(构建/转换所有 T4 模板)时运行良好,我想知道在构建时生成它可能会出现什么问题。

任何想法?


问题是,当您在构建过程中运行模板时,它是在不同的主机下执行的,并且 $(SolutionDir) 宏不存在。尝试使用相对路径,例如

<#@ include file="..\xxx\yyy\zzz\mytemplate.tt">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 VS 2012 在构建中生成 T4 的相关文章

  • clangd 中有“includePath”选项吗?

    我曾经使用 VSCodeC C https marketplace visualstudio com items itemName ms vscode cpptools扩大 这个扩展中有一个功能 在 json 文件中 称为 includeP
  • ~ C 中的运算符

    该程序的输出是 13 我从来没有完全理解 C 中的 运算符 为什么它给出 13 作为输出 如何将 运算符限制为数字的 4 位 include
  • 在运行时更改语言的正确方法

    在运行时更改表单语言的正确方法是什么 使用递归手动设置所有控件 例如this https stackoverflow com questions 7556367 how do i change the culture of a winfor
  • Qt:将事件发布到 QThread 的正确方法?

    在我的 Qt 应用程序中 我有一个主线程和一个工作线程 工作线程子类QThread并通过处理事件customEvent 这是主线程发送要由工作线程处理的事件的正确方法吗 QThread myWorkerThread QApplication
  • SFINAE 在返回类型中工作,但不作为模板参数[重复]

    这个问题在这里已经有答案了 我已经使用过 SFINAE 习语很多次了 而且我习惯了把我的std enable if lt gt 在模板参数中而不是在返回类型中 然而 我遇到了一些微不足道的情况 它不起作用 我不知道为什么 首先 这是我的主要
  • 异步方法调用和模拟

    为什么模拟用户上下文仅在异步方法调用之前可用 我编写了一些代码 实际上基于 Web API 来检查模拟用户上下文的行为 async Task
  • 是否有合法的方法使用运算符 << 打印元组和对?

    我有一组模板 函数 允许我打印元组 对 假设元组 对中的每种类型都有operator lt lt 为其定义的 不幸的是 由于 17 4 3 1 添加我的内容是非法的operator lt lt 重载到std 有没有其他方法可以让 ADL 找
  • 如何将字典中从一个键到下一个键的所有值相加? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个字典 其中 DateTime Now Date 转换为字符串作为键 整数作为值 我需要以某种方式将从一个输入键到下一个键的所有
  • C 中的 const 和指针

    将 const 与指针一起使用可能会导致指针对象无法通过使用相关指针取消引用来修改 但为什么我也不能修改指针不直接指向的内容呢 例如 int a 3 const int ptr a ptr 5 不会编译 但为什么 ptr 2 5 还编译不了
  • 动态方法的实际例子?

    我想学习动态方法及其使用 C 的实际示例 动态方法和Reflection有什么关系吗 请帮我 我们正在使用动态方法来加速反射 这是我们的反射优化器的代码 只比直接调用慢10 比反射调用快2000倍 public class Reflecti
  • C# CsvHelper.ValidationException - 为什么?

    我正在尝试在 C 控制台应用程序中使用 CSVHelper 我有一个例外 CsvHelper ValidationException 标头匹配 Numer Dokumentu 未找到索引 0 处的名称 我不知道为什么 因为这个标题位于 cs
  • 无法从 GetSystemTime() 获取毫秒

    我正在尝试打印秒和毫秒分辨率计时 我正在使用GetSystemTime 这是我的代码 GetSystemTime datetime RETAILMSG 1 T Time After Data Sent to USB d d r n date
  • 生成一定范围内的 N 个随机数,其总和为常数

    我想生成从 a b 之间的特定分布 例如均匀随机 抽取的 N 个随机数 其总和为常数 C 我尝试了一些我自己能想到的解决方案 以及在类似线程上提出的一些解决方案 但是他们中的大多数要么适用于有限形式的问题 要么我无法证明结果仍然遵循所需的分
  • 同一个盒子上的进程间通信 - 2 个应用程序或进程之间的通信

    在同一机器上的应用程序之间实现进程间通信的最佳方法是什么 两者都是用 C 编写的 管理器应用程序将向其他应用程序发送命令 例如 停止 启动 它还将监视应用程序并可能要求提供数据 所有应用程序都将在同一台运行 Windows 7 操作系统的计
  • C# 泛型方法,new() 构造函数约束中的类型参数

    有没有办法创建一个使用的通用方法new 要求类具有特定类型的构造函数属性的约束 例如 我有以下代码 public T MyGenericMethod
  • 画笔和钢笔使用指南

    制作 GDI 画笔和钢笔有多贵 我应该在添加所需的基础上创建它们并将它们包装在 using 中以便快速处理它们 还是应该创建一个类似于 System Drawing Brushes 类的静态类 IMO 它们足够高效 您通常不应该创建在多个方
  • 选择数据结构

    根据需求使用不同的数据结构 但我如何知道应该使用哪种数据结构 我只是想知道如何选择合适的数据结构 谢谢 此流程图适用于 C 中的 STL 但您可以用 C 实现 STL 容器支持的任何数据结构 列表是一个链接列表 Vector是一个动态数组
  • 从 iso 货币符号获取 NativeEnglishName,而不依赖于登录用户的当前文化

    我所拥有的是货币IsoCode EUR 此属性也可以在 RegionInfo 类 gt ri ISOCurrencySymbol 但 RegionInfo 类取决于当前登录的用户 我想要的是获得像 Euro 这样的 NativeEnglis
  • C# 如何更改 windows.forms.listview 中的网格线颜色

    如何更改 windows forms listview 中的网格线颜色 我认为没有办法在不覆盖 Paint Event 的情况下在列表视图上执行此操作 但是 如果您能够切换到网格视图 您可以这样做 this dataGridView1 Gr
  • 为什么禁止在后续私有派生类中简单提及基指针/引用?

    struct B struct D private B B fun return new D ok struct DD public D B foo return 0 error struct B B B is inaccessible 这

随机推荐

  • Lisp 随机化并使用两个函数从列表中拉入另一个列表

    好的 我是 lisp 的新手 我已经在这个程序上工作了几天 以了解 lisp 并研究 lisp 的某些部分 例如 cons cdr let funcall 和其他一些部分 我正在尝试创建一台随机分配颜色的糖果机 我已经多次运行这段代码 起初
  • IE 不支持 function.name。

    最近我已经成为了它的忠实粉丝function name财产 例如 我编写了一个用于扩展原型的函数 它的工作方式是 Array give function forEach 这会让你这样做 a b c forEach function 此代码在
  • Boot BroadcastReceiver 在小米设备上不起作用

    我有一个关注者BroadcastReceiver它应该在启动完成后运行 我已经在我的上测试过了小米设备 Redmi 1s 它没有运行 而在其他设备上 例如Samsung它正在按预期运行 public class DeviceBootRece
  • 如何在Jmeter中生成并发用户负载

    我有一个测试 用户将登录并在搜索字段中输入搜索关键字并获得结果 终于退出了 现在我想使用Jmeter测试并发性 这就是我想出的办法 Test plan Thread group Login request Synchronizing Con
  • MySQL 在 Windows 上将数据库文件存储在哪里以及文件的名称是什么?

    我不小心格式化了硬盘并重新安装了 Windows 却忘记备份 MySQL 服务器中的重要数据库 我现在正在尝试使用某些软件来挽救文件 但我不知道要寻找什么 文件存储的路径是什么 文件的名称是什么 我应该查找什么命名约定或文件扩展名 我相信我
  • ORA-01719: OR 或 IN 的操作数中不允许有外连接运算符 (+)

    运行查询时出现错误 ORA 01719 OR 或 IN 的操作数中不允许有外连接运算符 01719 00000 OR 或 IN 的操作数中不允许使用外连接运算符 原因 or 子句中出现外连接 动作 如果A和B是谓词 要得到 A 或B 的效果
  • 使用 Union 或 Join - 哪个更快 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是想知道你是否有一张桌子并且联合起来会比使用联接更有效吗 我确实知道联接创建了更多列 但这更具理论性 联合是否需要像联接那样对另一
  • 复制稀疏文件

    我正在尝试了解 Linux UNIX 低级接口 作为练习 我想编写一个代码 将一个有漏洞的文件复制到一个新文件 同样有漏洞 所以我的问题是 如何从第一个文件读取 而不是直到第一个洞 而是直到文件的最后 如果我没错的话 read 当到达第一个
  • jQuery stopPropagation 气泡向下

    我有一个 div 里面有一个链接 div a href http www lol com Lol a div 单击 div div 应该去某个地方 但是点击孩子 a a 应该去 www lol com 我见过从之前的问题 https sta
  • SQL SERVER - COALESCE() 函数的问题

    我有一个由存储过程包装的 SQL 函数 ALTER FUNCTION dbo GetObjList filterUID int NULL filterSID varchar 32 NULL RETURNS TABLE AS RETURN S
  • 如何在PostgreSQL中选择具有级别的表的所有层次结构

    我现在有一个问题 我有一个名为地方的表 其结构如下 id 父 ID name 我想做一个选择来拥有该表的所有层次结构 有一个数据的小例子 1 null 123 Barclay St 2 1 Floor 1 3 1 Floor 2 4 1 F
  • 从 Java 连接到 Oracle ...异常

    我想连接远程 Oracle DB 但出现异常 请帮帮我 我能做些什么 我尝试了这个 但它不起作用 try Class forName oracle jdbc driver OracleDriver Connection con Driver
  • 在 bash 中生成脚本并将其保存到需要 sudo 的位置

    在 bash 中 我可以根据此站点创建一个带有定界符的脚本 http tldp org LDP abs html abs guide html GENERATESCRIPT http tldp org LDP abs html abs gu
  • 将主机添加到 Ansible 主机文件

    我一直在尝试使用 Ansible 剧本将主机名添加到我的主机文件中 我的 Ansible 播放如下所示 我的主机文件位于 etc ansible hosts name adding host playbook hosts localhost
  • 在 UIImage 上添加点击手势

    我正在尝试制作可点击的 UIImage 用户可以点击它然后它就会动画 我正在使用 UIScrollVIew 这就是为什么我使用 UITapGesture 而不是 TouchBegan 而且 UIGestureRecognizer 似乎与 U
  • Gnuplot:带有内联数据的直方图

    Gnuplot 4 6 5 我想绘制直方图 我在这里尝试了演示 http gnuplot sourceforge net demo histograms 2 gnu http gnuplot sourceforge net demo his
  • Laravel Eloquent:检测为空或计数

    主要问题是如何检测 eloquent 集合结果是否为空 laravel 建议如何识别这一点 我对此有两个不同的问题 也许它们彼此相关或无关 首先 我怎样才能得到结果 result user gt delete OR result user
  • 在 openjre 中使用需要 Java 策略文件的加密

    如果我想使用 java 和密钥长度超过 128 位的加密 我必须使用 Java 策略文件 如何使用 openjre 启动并运行这些应用程序 我在使用没有策略文件的 Oracle jre 时遇到了同样的错误 但我不能简单地使用 Oracle
  • CSS 错误源映射信息在 URL() 声明中不可用(发现孤立 CR,尝试删除CR 选项)

    我在项目中执行 NPM start 时遇到问题 我收到此错误消息 src assets base scss node modules css loader dist cjs js ref 6 oneOf 5 1 node modules p
  • 使用 VS 2012 在构建中生成 T4

    我正在尝试使用 VS2012 在项目的每个构建上生成代码 我的解决方案中有 3 个项目 项目1有一些类 项目 2 有通用模板 项目 3 的模板读取 json 文件 然后调用项目 2 中的通用模板来生成其文件 当我单击 构建 转换所有 T4