如何在T4文件中引用.Net标准?

Eri*_*k Z 13 .net t4 .net-standard

我有一个.Net标准2.0库.在这个库中我有一个T4文件.该文件包含这些行.

<#
            foreach (MessageType enumValue in Enum.GetValues(typeof(MessageType)))
            {
                var name = Enum.GetName(typeof(MessageType), enumValue);
#>
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中收到以下错误.

编译转换:类型"Enum"在未引用的程序集中定义.您必须添加对程序集'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'的引用.

如何添加'netstandard'的引用?

Huy*_*ang 6

或者,您可以使用

<#@ assembly name="NetStandard" #>
Run Code Online (Sandbox Code Playgroud)


小智 4

我有类似的问题。我通过将 t4 内部的引用添加到磁盘上的文件来解决了这个问题

<#@ assembly Name="C:\Program Files\dotnet\sdk\2.1.4\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll" #>
Run Code Online (Sandbox Code Playgroud)

如果您没有该文件,请尝试在目录“C:\Program Files\dotnet\sdk”中查找netstandard.dll