Невозможно создать временный класс
Я недавно обновил свой компьютер до XP 64 бит, а также внес некоторые изменения в код нашего программного обеспечения, и когда я делаю new XmlSerializer(valueType)
, где valueType
это тип, который использует DirectoryItem
Я получаю следующую ошибку:
Невозможно создать временный класс (результат =1). ошибка CS0012: тип 'XYZ.Blob.DirectoryItem' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку 'XYZ.Services.Blob, версия =1.0.0.0, Culture= нейтральный, PublicKeyToken=null'.
Я действительно не могу понять, почему это показывает эту ошибку. DLL находится в папке src, и то же самое приложение работает без проблем на той же машине (предыдущая версия).
Если у вас есть идеи, как я могу найти то, что дает эта ошибка, это было бы здорово.
3 ответа
Можете ли вы проверить, что вы не попали в этот неудачный сценарий? Если это так, то это ошибка, которая не будет исправлена Microsoft:
Вам нужен какой-то тип в сборке A:
public interface IInterface {}
И тип для сериализации в другой сборке:
public class MyClass
{
public int Number;
public void Method<T>() where T : IInterface { }
}
Теперь попробуйте инициализировать XmlSerializer
XmlSerializer ser = new XmlSerializer(typeof(MyClass));
Ваша сборка была построена для платформы x86.
Посмотрите на свойства вашего проекта -> build -> target platform. Это x86 по умолчанию. Вам нужно перекомпилировать для x64.
Лучший вариант компиляции для "любого" - в вашем случае.
Кажется, что решение было исправлено, как только я изменил все неявные преобразования на явные.
Спасибо за помощь.