Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法生成临时类_C#_Reference_Temporary Directory - Fatal编程技术网

C# 无法生成临时类

C# 无法生成临时类,c#,reference,temporary-directory,C#,Reference,Temporary Directory,我最近将我的机器升级到XP 64位,并对我们的软件进行了一些代码更改,当我执行新的XmlSerializer(valueType)时,valueType是使用DirectoryItem的类型,我得到以下错误: 无法生成临时类(结果=1)。 错误CS0012:在未引用的程序集中定义了类型“XYZ.Blob.DirectoryItem”。您必须添加对程序集“XYZ.Services.Blob,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”的引

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

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

我真的不明白为什么会出现这种错误。dll位于src文件夹中,同一个应用程序在同一台计算机(以前的版本)上运行,没有问题


如果您有任何想法,我如何才能找到导致此错误的原因,那将是非常棒的。

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

查看项目的属性->构建->目标平台 默认情况下,它是x86。您需要重新编译x64


最好的选择是编译“任意”-在您的情况下。

您能验证您不是吗?如果出现这种情况,Microsoft将无法修复该错误:

您需要在程序集A中输入某些类型:

public interface IInterface {}
以及要在另一个程序集中序列化的类型:

public class MyClass
{
    public int Number;
    public void Method<T>() where T : IInterface { }
}

当我将所有隐式转换更改为显式转换时,解决方案似乎已被修复


感谢您的帮助。

为什么在名为“src”的文件夹中有DLL?这通常是存储源代码文件(而不是DLL)的文件夹的名称。你的项目设置听起来很不寻常,很难帮助你。它与src无关,我无意中添加了它;结构类似于标准的.net strutreYou是对的,我认为程序集是为x86平台构建的,但这是经过设计的。我在64位机器上运行,但我们的应用程序暂时需要为x86构建。我也不明白为什么它会告诉您它找不到引用,当引用在那里并且dll在输出目录中时,它找不到引用,因为它是为x86构建的,所以不会加载它-就它而言,它不存在,因为x64不存在。使用“任意CPU”选项构建它。将所有内容构建为x86。它将在x64中运行为WOW。出于某种原因,我无法打开你发送的链接,你能粘贴内容吗?很高兴你提到这个五年前的错误。刚刚尝试了界面解决方案,现在没有问题。我遇到了相同的错误…但是建议的虚拟界面并不能解决我的问题。实际上,只有当我的dll嵌入exe并由AssemblyResolve事件加载时,我才会出现此错误。如果dll未嵌入,则工作正常。只有XmlSerializer在嵌入式dll中有这个问题,其他一切似乎都很好。顺便说一下,我正在使用VS2010 express、.NET4.0构建任何平台。
XmlSerializer ser = new XmlSerializer(typeof(MyClass));