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

21

我有一个 .Net Standard 2.0 库。在这个库里我有一个 T4 文件,文件包含以下内容。

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

我在Visual Studio中遇到以下错误。

编译转换时:类型“Enum”在未引用的程序集中定义。 必须添加对程序集“netstandard,版本=2.0.0.0, Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”的引用。

我该如何添加对'netstandard'的引用?

3个回答

23

或者,您可以使用

<#@ assembly name="NetStandard" #>

1
目前它不再起作用了。正在运行转换:System.IO.FileNotFoundException:无法加载文件或程序集"netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51"或其依赖项之一。 - Maxim

4
这在过去几天里成为了我们的一个问题。此外,我们需要一个适用于所有开发机器和构建机器的解决方案。
因此,基本上我们将C:\Program Files\dotnet\sdk\2.1.4\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll文件(还有其他几个我们需要的标准文件)复制到解决方案下的TTLibs文件夹中。
然后我们像这样在TT解决方案中引用相对于解决方案的<#@ assembly Name="$(SolutionDir)TTLib\netstandard.dll" #>

4

我遇到了类似的问题。 我通过在t4中添加对磁盘文件的引用来解决了这个问题。

<#@ assembly Name="C:\Program Files\dotnet\sdk\2.1.4\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll" #>

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接