Ошибка при использовании библиотеки RazorTemplates: «CS0012: тип« System.Attribute »определен в сборке, на которую нет ссылок» - PullRequest
0 голосов
/ 09 ноября 2018

На некоторых машинах выполнение шаблона бритвы с помощью RazorTemplates работает нормально.

На других я получаю следующее сообщение:

TemplateCompilationException

error CS0012: The type 'System.Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Информация:

  • Это в приложении WPF, работающем в .NET 4.7.
  • Сборка содержит ссылку на System.Runtime.4.3.0 \ lib \ net462 \ System.Runtime.dll (v4.1.1.0)
  • Однако во время выполнения эта сборка не отображается в списке «Модули».

Кажется, объект Attribute существует как в System.Runtime, так и в mscorlib.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Похоже, что это основная проблема где-то между win10 и библиотекой RazorTemplates.

В конце концов я переключился с RazorTemplates на RazorEngine: https://github.com/Antaris/RazorEngine

И здесь есть страница, которая объясняет, как решить проблему с помощью Resolver:

https://github.com/Antaris/RazorEngine/issues/416

0 голосов
/ 09 ноября 2018

System.Runtime является частью .Net Framework и устанавливается в GAC во время установки платформы.

Это может произойти по двум возможным причинам:

  1. Это не на машине.
  2. Это неправильная версия.

Для машин это не помогает, проверьте, какая версия среды выполнения .Net у них есть, и / или проверьте GAC на наличие этого файла и версии.

Отсутствует фреймворк, установите его. : -)

Если у компьютеров есть версия, но она не является ожидаемой, сделайте либо:

  1. Установите правильную версию фреймворка
  2. Используйте перенаправление привязки в вашем конфигурационном файле
...