T4 编译转换:无法访问 T4 文件中的 $(TargetPath)
T4 compiling transformation: Cannot access $(TargetPath) in T4 file
我想在每次构建时构建我的 .tt 文件。我找到了这个解决方案(Get Visual Studio to run a T4 Template on every build,由 Cheburek 回答)并按照步骤 运行 得到它
- 安装Visual StudioSDK
- 安装 Visual Studio 2010 建模和可视化 SDK
- 将
Microsoft.TextTemplating.targets
和 <TransformOnBuild>true</TransformOnBuild>
的导入添加到我的 .csproj
我现在的问题是:
我在我的 T4 文件中使用以下程序集导入:
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="My.Example.Namespace.Path" #>
我需要这个,因为我需要访问在同一项目中定义的 class。但是现在(我认为是因为 tt 转换是构建时首先要做的事情)我不能使用这个命名空间导入,因为构建时会出现以下错误:
Error Compiling transformation: Metadata file '$(TargetPath)' could not be found.
T4 文件在使用之前是有效的"normal"(保存 T4 文件时生成文件)
是否有可能以某种方式执行 T4 转换(作为最后的构建步骤)以便我可以毫无问题地访问我的 T4 文件中的 $(TargetPath)
?
我今天遇到了同样的问题,正在寻找答案。
问题是 dll 尚未构建且无法加载。
如果 TargetPath 中已经成功构建,它应该可以工作。
我完成这项工作的方法是将代码分成两个项目。
t4模板中使用的代码现在在另一个项目中。
我不得不在原项目中引用新项目。
在原始项目的 t4 模板中,我不得不更改程序集引用:
<#@ assembly name="$(SolutionDir)newproject\bin\Debug\newproject.dll" #>
我想在每次构建时构建我的 .tt 文件。我找到了这个解决方案(Get Visual Studio to run a T4 Template on every build,由 Cheburek 回答)并按照步骤 运行 得到它
- 安装Visual StudioSDK
- 安装 Visual Studio 2010 建模和可视化 SDK
- 将
Microsoft.TextTemplating.targets
和<TransformOnBuild>true</TransformOnBuild>
的导入添加到我的 .csproj
我现在的问题是:
我在我的 T4 文件中使用以下程序集导入:
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="My.Example.Namespace.Path" #>
我需要这个,因为我需要访问在同一项目中定义的 class。但是现在(我认为是因为 tt 转换是构建时首先要做的事情)我不能使用这个命名空间导入,因为构建时会出现以下错误:
Error Compiling transformation: Metadata file '$(TargetPath)' could not be found.
T4 文件在使用之前是有效的"normal"(保存 T4 文件时生成文件)
是否有可能以某种方式执行 T4 转换(作为最后的构建步骤)以便我可以毫无问题地访问我的 T4 文件中的 $(TargetPath)
?
我今天遇到了同样的问题,正在寻找答案。 问题是 dll 尚未构建且无法加载。 如果 TargetPath 中已经成功构建,它应该可以工作。
我完成这项工作的方法是将代码分成两个项目。 t4模板中使用的代码现在在另一个项目中。
我不得不在原项目中引用新项目。
在原始项目的 t4 模板中,我不得不更改程序集引用:
<#@ assembly name="$(SolutionDir)newproject\bin\Debug\newproject.dll" #>