Невозможно создать временный класс

Я недавно обновил свой компьютер до 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.

Лучший вариант компиляции для "любого" - в вашем случае.

Кажется, что решение было исправлено, как только я изменил все неявные преобразования на явные.

Спасибо за помощь.

Другие вопросы по тегам