2

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

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

我真的不明白为什么它会显示此错误。该 dll 位于 src 文件夹中,并且完全相同的应用程序在同一台机器(以前的版本)上运行没有问题。

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

4

3 回答 3

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));
于 2010-09-23T21:28:10.963 回答
1

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

看看你项目的属性 -> 构建 -> 目标平台 默认是 x86。您需要为 x64 重新编译。

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

于 2010-09-23T21:19:23.160 回答
0

一旦我将所有隐式转换更改为显式转换,似乎解决方案就解决了。

谢谢您的帮助。

于 2010-09-24T16:18:48.000 回答