У меня есть шаблон T4, я ссылаюсь на другую сборку, которую я сделал так:
<#@ assembly name="$(SolutionDir)Project.CodeGen\bin\Debug\netcoreapp2.0\Project.CodeGen.dll" #>
<#@ import namespace="Project.CodeGen" #>
Затем я пытаюсь создать экземпляр единственного класса в этой dll:
var code = new CodeGenHelper();
Когда я запускаю шаблон T4 (он же сохраняет его), я получаю следующую ошибку:
Severity Code Description Project File Line Suppression State
Error Running transformation: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Microsoft.VisualStudio.TextTemplatingCFC642B0A338D346F5BAF55401746E231DEE772554EE3570FFA3AA2898966BCA1378D2C2DC8325581610CA4D66B8A56C97E5C4A6AD35B2C18FAAAF37E1A6B7C9.GeneratedTextTransformation.TransformText()
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at Microsoft.VisualStudio.TextTemplating.TransformationRunner.PerformTransformation()
Затем я добавил ссылку на
System.Runtime
(полностью квалифицирован и нет), и ни один из них не работает.
Вот как выглядит источник Project.CodeGen (сокращен):
using System;
using System.Linq;
using System.Collections.Generic;
using System.Reflection;
using Microsoft.CodeAnalysis.CSharp;
namespace Project.CodeGen
{
public class CodeGenHelper
{
public CodeGenHelper()
{
}
public string Derp(string herp)
{
... do stuff
}
}
}
Нужно ли ссылаться на System.Runtime, я думал, что ядро не может?Нужно ли ссылаться на что-то вроде netstandard?Я запутался, если не сказать больше.