无法生成临时类

时间:2010-09-23 21:09:13

标签: c# reference temporary-directory

我最近将我的机器升级到XP 64位并对我们的软件进行了一些代码更改,当我正在new XmlSerializer(valueType)时,其中valueType是一种使用DirectoryItem的类型,我收到以下错误:

  

无法生成临时类(result = 1)。   错误CS0012:类型“XYZ.Blob.DirectoryItem”在未引用的程序集中定义。您必须添加对程序集'XYZ.Services.Blob,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'的引用。

我真的不明白为什么它会显示这个错误。 dll位于src文件夹中,并且在同一台计算机上运行完全相同的应用程序(先前版本)。

如果您有任何想法,我怎么能找到它给出的错误,那将是很好的。

3 个答案:

答案 0 :(得分:3)

您能否确认自己不是falling in this unfortunate scenario?如果是这种情况,那么微软将无法解决这个问题:

你需要在装配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 :(得分:1)

您的程序集是为x86平台构建的。

查看项目的属性 - &gt;构建 - &gt;目标平台 默认为x86。您需要重新编译x64。

最佳选择是为“任何”编译 - 在您的情况下。

答案 2 :(得分:0)

一旦我将所有隐式转换更改为显式转换,似乎解决方案已得到修复。

感谢您的帮助。