Свойства не существует в пространстве имен в T4 - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть текстовый шаблон (T4), и я создал папку с именем Langs в папке проекта Properties, и внутри нее есть 2 файла resx с именами Lang.resx и Langs.en.resx

myProject
     ----Properties
              ----Langs
                      -Lang.resx
                      -Lang.en.resx

Я использовал следующий код в моем файле t4 с именем LangHelper.tt

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections.Generic"#>
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="myproject.Properties.Langs" #>
<#@ output extension=".cs" #>
<#
    var resourceType = typeof(Lang);
    var propertyNameList = resourceType.GetProperties().Where(item => item.PropertyType == typeof(string)).Select(item => item.Name);
#>

Действие сборки t4: Пользовательский инструмент Content t4: TextTemplatingFileGenerator

Когда я сохраняю этот шаблон, я получаю ошибка

Код серьезности Описание Состояние подавления строки файла проекта

Ошибка Преобразование при компиляции: имя типа или пространства имен «Свойства» не существует в пространстве имен «myproject» (у вас отсутствует ссылка на сборку?)

и

Код серьезности Описание Состояние подавления строки файла проекта

Ошибка Преобразование компиляции: имя типа или пространства имен 'Lang' могло бы не найден (отсутствует директива об использовании или ссылка на сборку?)

...