gpt4 book ai didi

c# - 如何在当前项目中已存在的 T4 文本模板中引用类?

转载 作者:太空狗 更新时间:2023-10-30 00:19:32 25 4
gpt4 key购买 nike

我正在尝试使用 T4 模板自动生成一些在我的项目中使用的代码。我从小处着手,让我的“脚踏实地”,这就是我目前所拥有的。

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="C:\Users\username\Documents\Visual Studio 2012\Projects\MyProjectSolution\MyProject\bin\Debug\MyProject.exe" #>
namespace KY_ADJRATE_CLAIM
{
public class OutboundClaim
{
<#
ClaimConfig cc;
#>
}
}

我试过了

<#@ assembly name="C:\Users\username\Documents\Visual Studio 2012\Projects\MyProjectSolution\MyProject\bin\Debug\MyProject.exe" #>

还有这个

<#@ assembly name="MyProject.exe" #>

但是每次我尝试创建我的一个类的实例时,我都会得到这个:

命名空间不能直接包含字段或方法等成员。编译转换:找不到类型或命名空间名称“ClaimConfig”(是否缺少 using 指令或程序集引用?)

我想做的是通过 T4 模板访问我项目中的 ClaimConfig 类。

如有任何帮助,我们将不胜感激。

最佳答案

这类似于我过去看到的另一个问题 (How do I use custom library/project in T4 text template?)。您需要使用“assembly”指令引用 DLL。例如:

<#@ assembly name=“System.Xml” #>

为了从您自己的项目或解决方案中引用 DLL,您可以使用相对路径,但首先您必须在"template"指令中设置 HostSpecific 属性,如下所示:

<#@ template language="C#" debug="false" hostspecific="true" #>

然后您可以使用 $(SolutionDir) 宏获取解决方案的根目录,并从那里构建到 DLL 的相对路径,如下所示:

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

关于c# - 如何在当前项目中已存在的 T4 文本模板中引用类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com