Невозможно создать временный класс - PullRequest
2 голосов
/ 24 сентября 2010

Я недавно обновил свой компьютер до 64-разрядной версии XP, а также внес некоторые изменения в код нашего программного обеспечения, и когда я делаю new XmlSerializer(valueType), где valueType - это тип, использующий DirectoryItem, я получаюследующая ошибка:

Невозможно создать временный класс (результат = 1).ошибка CS0012: тип 'XYZ.Blob.DirectoryItem' определен в сборке, на которую нет ссылок.Вы должны добавить ссылку на сборку 'XYZ.Services.Blob, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null'.

Я действительно не понимаю, почему она показывает эту ошибку.DLL находится в папке src, и на том же компьютере (предыдущая версия) без проблем работает то же самое приложение.

Если у вас есть идеи, как найти то, что выдает эту ошибку, этобольшой.

Ответы [ 3 ]

3 голосов
/ 24 сентября 2010

Можете ли вы подтвердить, что вы не попали в этот неудачный сценарий ?Если это так, то это ошибка, которая не будет исправлена ​​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));
1 голос
/ 24 сентября 2010

Ваша сборка была построена для платформы x86.

Посмотрите свойства вашего проекта -> build -> target platform. Это x86 по умолчанию.Вам нужно перекомпилировать для x64.

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

0 голосов
/ 24 сентября 2010

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

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

...