Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在T4文件中引用.Net标准?_.net_T4_.net Standard - Fatal编程技术网

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

如何在T4文件中引用.Net标准?,.net,t4,.net-standard,.net,T4,.net Standard,我有一个.Net标准2.0库。在这个库中,我有一个T4文件。该文件包含这些行 <# foreach (MessageType enumValue in Enum.GetValues(typeof(MessageType))) { var name = Enum.GetName(typeof(MessageType), enumValue); #> 我在VisualStudio中遇到以下错误 编译转换

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

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

我在VisualStudio中遇到以下错误

编译转换:类型“Enum”是在程序集中定义的 这是没有参考的。必须添加对程序集的引用 'netstandard,版本=2.0.0.0,区域性=中性, PublicKeyToken=CC7B13FFCD2DD51'

如何添加对“netstandard”的引用?

我也有类似的问题。 我通过将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。此外,我们需要一个能够在所有开发机器和所有构建机器上工作的解决方案

因此,基本上我们将
C:\ProgramFiles\dotnet\sdk\2.1.4\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\netstandard.dll
文件(以及我们需要的一些其他标准文件)复制到解决方案下的TTLibs文件夹中

然后,我们将TT解决方案中的参考值设置为:

或者,您可以使用

<#@ assembly name="NetStandard" #>

它暂时不起作用了。正在运行转换:System.IO.FileNotFoundException:无法加载文件或程序集“netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=CC7B13FFCD2DD51”或其依赖项之一。