[英]Using Enum.GetValues in T4 template not working
我必須遵循.tt
模板:
<#@ template debug="true" hostspecific="true" language="C#" compilerOptions="/langversion:10" #>
<#@ assembly name="System" #>
<#@ assembly name="System.Runtime" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Runtime" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
//...
<#@ output extension=".cs" #>
<#
var myEnum = System.Enum.GetValues(typeof(MyEnum));
#>
我將收到以下錯誤:
運行轉換:System.IO.FileNotFoundException:無法加載文件或程序集“System.Runtime,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依賴項之一。 該系統找不到指定的文件。 File name: 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at Microsoft.VisualStudio.TextTemplating4D7E7108009F697C7036AA3982FCAC502862F98EAAECCE320567876825F6A2D8CB866B97B562037BD24FB0BF58428936B28EDCD4EAEBA43FDAE108D3C1E0E59F.GeneratedTextTransformation.TransformText() at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site , T0 arg0) 在 Microsoft.VisualStudio.TextTemplating.TransformationRunner.PerformTransformation()
這似乎意味着找不到System.Runtime
。
下面的代碼在 Visual Studio 2022 的 Net6 項目中對我有用。 您使用的是什么 VS 版本/項目類型?
<#@ template debug="true" hostspecific="true" language="C#" compilerOptions="/langversion:10" #>
<#@ assembly name="System" #>
<#@ assembly name="System.Runtime" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Runtime" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
var myEnum = System.Enum.GetValues(typeof(MyEnum));
foreach (var member in myEnum)
{
this.WriteLine($"// {member}");
}
#>
<#+
enum MyEnum {
Red,
Green,
Blue
}
#>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.