Я пытаюсь сгенерировать некоторый код C # через мой собственный файл .tt в VS2017.В идеале я хочу иметь возможность использовать ссылку на сборку для Microsoft.Data.Sqlite, но не могу получить успешное преобразование.
Как получить преобразование .tt для приятного воспроизведения с dll netStandard2.0 илия должен использовать что-то вроде dll System.Data.Sqlite .netFramework friendly?
Я попытался добавить эту дополнительную ссылку на сборку безуспешно:
<# @ Assembly Name ="C: \ Program Files \ dotnet \ sdk \ NuGetFallbackFolder \ netstandard.library \ 2.0.3 \ build \ netstandard2.0 \ ref \ netstandard.dll" #>
Если я добавлю это впопытаться решить нестандартную проблему, затем он выдает следующие типы ошибок:
Компиляция преобразования: тип «IDataReader» существует в обоих «System.Data, версия = 4.0.0.0, культура = нейтральная», PublicKeyToken = b77a5c561934e089 'and' netstandard, версия = 2.0.0.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51 '
<#@ template debug="true" hostSpecific="true" language="C#" #>
<#@ output extension=".generated.cs" #>
<#@ assembly name="System.Core" #>
<#@ Assembly name="System.Data" #>
<#@ Assembly name="$(SolutionDir)PreTemplatingBin\Microsoft.Data.Sqlite.dll" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Text.RegularExpressions" #>
<#@ import namespace="Microsoft.Data.Sqlite" #>
…
<#+
private string GetSubNamespace(string connString)
{
return "My.Pretend.Namespace";
}
public static SqliteDataReader GetReader(string commandText, string connectionString, out Action cleanup)
{
var cnxn = new SqliteConnection(connectionString);
var cmd = new SqliteCommand(commandText, cnxn);
cnxn.Open();
var reader = cmd.ExecuteReader();
Action cleanup2 = null;
cleanup2 += () => ((IDisposable)reader).Dispose();
cleanup2 += () => ((IDisposable)cmd).Dispose();
cleanup2 += () => ((IDisposable)cnxn).Dispose();
cleanup = cleanup2;
return reader;
}
#>
Ожидаемый результат:
Я ожидаю, что смогучтобы гet .generated.cs будет с или без собственных синтаксических ошибок.
Фактический результат:
Ошибки преобразования DbCommand, DbConnection, DbDataReader со следующими сообщениями:
Преобразование компиляции: тип 'DbCommand' определен в сборке, на которую нет ссылок.Вы должны добавить ссылку на сборку 'netstandard, версия = 2.0.0.0, Culture = нейтральная, PublicKeyToken = cc7b13ffcd2ddd51'