C# T4编译转换:无法访问T4文件中的$(TargetPath)

C# T4编译转换:无法访问T4文件中的$(TargetPath),c#,.net,build,msbuild,t4,C#,.net,Build,Msbuild,T4,我想在每个构建上构建我的.tt文件。我找到了这个解决方案(Cheburek)并按照以下步骤运行它 安装Visual Studio SDK 安装Visual Studio 2010建模和可视化SDK 将Microsoft.TextTemplating.targets的导入添加到my.csproj中 我现在的问题是: 我在T4文件中使用以下程序集导入: <#@ assembly name="$(TargetPath)" #> <#@ import namespace="My.Exa

我想在每个构建上构建我的.tt文件。我找到了这个解决方案(Cheburek)并按照以下步骤运行它

  • 安装Visual Studio SDK
  • 安装Visual Studio 2010建模和可视化SDK
  • 将Microsoft.TextTemplating.targets的导入添加到my.csproj中
  • 我现在的问题是:

    我在T4文件中使用以下程序集导入:

    <#@ assembly name="$(TargetPath)" #>
    <#@ import namespace="My.Example.Namespace.Path" #>
    
    T4文件在使用“正常”(保存T4文件时生成文件)之前工作正常


    是否有可能执行T4转换(作为最后一个构建步骤),以便我可以访问T4文件中的
    $(TargetPath)
    ,而不会出现问题?

    我今天遇到了同样的问题,正在搜索答案。 问题是dll尚未生成,无法加载。 尽管如果TargetPath中已经有成功的构建,它应该可以工作

    我得到这项工作的方法是将代码分成两个项目。 t4模板中使用的代码现在位于另一个项目中

    我必须在原始项目中引用新项目。
    在原始项目的t4模板中,我必须更改装配参考:

    <#@ assembly name="$(SolutionDir)newproject\bin\Debug\newproject.dll" #>
    

    我今天遇到了同样的问题,正在寻找答案。 问题是dll尚未生成,无法加载。 尽管如果TargetPath中已经有成功的构建,它应该可以工作

    我得到这项工作的方法是将代码分成两个项目。 t4模板中使用的代码现在位于另一个项目中

    我必须在原始项目中引用新项目。
    在原始项目的t4模板中,我必须更改装配参考:

    <#@ assembly name="$(SolutionDir)newproject\bin\Debug\newproject.dll" #>
    
    
    
    如果您找到了解决方案。请回答。不,对不起,项目只是在概念阶段,在运行时调用T4脚本结束,这对项目来说已经足够了。如果你得到了解决方案。请回答。不抱歉,项目刚刚进入概念阶段,在运行时调用T4脚本结束,这对项目来说已经足够了。