此代码生成FileNotFoundException,但最终运行没有问题:
void ReadXml()
{
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
//...
}
Run Code Online (Sandbox Code Playgroud)
这是一个例外:
mscorlib.dll中出现"System.IO.FileNotFoundException"类型的第一次机会异常
附加信息:无法加载文件或程序集"MyAssembly.XmlSerializers,Version = 1.4.3190.15950,Culture = neutral,PublicKeyToken = null"或其依赖项之一.该系统找不到指定的文件.
如果找不到,框架似乎会自动生成序列化程序集. 我可以使用sgen.exe手动生成它,这可以缓解异常.
如何让visual studio自动生成XML序列化程序集?
更新:生成序列化程序集:打开设置似乎没有做任何事情.
我对我的工作应用程序进行了一些更改,并开始在这行代码中收到以下错误.
Dim Deserializer As New Serialization.XmlSerializer(GetType(Groups))
Run Code Online (Sandbox Code Playgroud)
这是错误.
BindingFailure was detected
Message: The assembly with display name 'FUSE.XmlSerializers' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null'
Message: The assembly with display name 'FUSE.XmlSerializers' failed to load in the 'LoadFrom' binding …Run Code Online (Sandbox Code Playgroud) 在调试应用程序时,在Visual Studio中启用了中断异常时,我总是会收到以下错误.这真是让我感到困扰,因为我们处理中断异常.有趣的是,当我继续(加载StringCollection)时它仍然有效.
消息是:
无法加载文件或程序集'System.XmlSerializers,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其依赖项之一.该系统找不到指定的文件.
这是导致异常的代码(设计器生成)
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.Specialized.StringCollection Mru {
get {
return ((global::System.Collections.Specialized.StringCollection)(this["Mru"]));
}
set {
this["Mru"] = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图创建一个显示错误的空测试应用程序,但没有发生异常.我们的项目非常庞大,因此很难找到原因.也许这个网站上有人知道如何解决这个问题.
我采取了IIS的内存转储,并在分析时发现了"无法加载文件或程序集MyAssemblyName.XmlSerializers"的错误.在我的代码中,我使用XmlSerializer类将xml文件中的xml内容序列化和反序列化为自定义对象.当项目构建时,它只创建MyAssembly.dll和MyAssembly.pdb文件,但不创建MyAssembly.XmlSerializers.dll.有谁知道如何启用我的项目来创建xmlserializers.dll文件?
注意:在项目构建选项卡中,"生成序列化程序集"设置为"自动".
谢谢.
我们最近开始看到FileNotFoundException在反序列化XML时偶尔被抛出.消息是无法找到用于从XML映射到代码的临时程序集.从这个文档看起来,当.NET Framework无法创建此文件时会发生这种情况(但是即使在内部异常中也没有捕获到这个原因).
这是一个例外:
Type : System.IO.FileNotFoundException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Could not find file 'C:\Documents and Settings\user\Local Settings\Temp\c5_nfoko.dll'.
Run Code Online (Sandbox Code Playgroud)
每个错误的文件名都不同,但错误始终相同,它来自此处(底部的完整调用堆栈):
at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type)
Run Code Online (Sandbox Code Playgroud)
当CSharpCodeGenerator试图生成程序集时.我们多年来一直在生产中使用这些代码,而且非常稳定.它刚开始在上周左右失败了.我们想知道它是否与最新的Microsoft安全补丁有关,因为它会影响我们在多个操作系统(XP和Server 2003)上的.NET 2.0和.NET 4.0代码版本.
错误是零星的,再次运行该过程通常会导致它消失.这是一个单线程命令行应用程序,它检索文件并将它们插入到数据库中.
我找不到其他人有同样的问题,但它并没有被隔离到相同的代码行,我们有几个地方使用System.Xml.Serialization代码,我们已经看到了每个错误.这段代码也不是我们最近改变的.
我能找到的最接近的其他帖子就是这个.
在我们的QA VM上没有病毒扫描程序,因此我不认为这是一个问题.我们在托管环境和单独的客户端站点中也看到了这个问题.
我们尝试过:
如果有人有任何想法或建议会有所帮助.
完整的callstack:
Type : System.IO.FileNotFoundException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Could not find file 'C:\Documents and Settings\user\Local …Run Code Online (Sandbox Code Playgroud) 我有一个excel的加载项目.它在我的电脑上工作正常.但是,当我在客户端计算机上安装它时,它给了我提到的错误消息.
在publish-> prerequisites中,我勾选了这些项目:
.net框架sp1
Microsoft .net框架4
Microsoft Office 2007主互操作程序集
用于办公室运行时的Microsoft visual studio 2010工具
Windows安装程序4.5
我正在使用JSON.这是我班级的代码:
[Serializable]
[JsonObject(MemberSerialization.OptIn)]
public class documentSchemaRestInfo
{
[System.Runtime.Serialization.DataMember]
[JsonProperty]
public double id { get; set; }
[System.Runtime.Serialization.DataMember]
[JsonProperty]
public string name { get; set; }
[System.Runtime.Serialization.DataMember]
[JsonProperty]
public string description { get; set; }
[System.Runtime.Serialization.DataMember]
[JsonProperty]
public string[] fields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
//*********************
使用该类的代码:
public List<DocumentField> getSchemaOfGroup(documentGroupPk groupPK)
{
List<DocumentField> result = new List<DocumentField>();
HttpWebRequest request = (HttpWebRequest)WebRequest. …Run Code Online (Sandbox Code Playgroud)我有一个解决方案,我正在尝试从.NET 2转换为.NET 4.此解决方案中有多个项目,其中一些在C#中,其中一些在VB中.他们中的大多数使用system.xml进行XML创建和解析.
我已经将所有项目重新定位到.NET 4,并进行编译.但是,当我尝试运行时,我几乎立即得到一个System.FieldAccessException,说"如果类库中字段的访问级别已更改,请重新编译引用该库的任何程序集.".在此之前我确实重新编译了整个解决方案(之后再次尝试,没有变化).
然后,我使用程序集绑定日志查看器查看是否有任何绑定失败,因为这是在项目中引用了不同的dll时发生的.果然,那里有失败.他们在两个不同的VB项目中,他们看起来像这样:
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable <path to my exe>
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: DisplayName = <projname>.XmlSerializers, Version=2013.20.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL (Fully-specified)
LOG: Appbase = <projectpath>
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = <projname>.vshost.exe Calling assembly : System.Xml, …Run Code Online (Sandbox Code Playgroud) 当我使用XMLSerializer时,我收到了第一次机会异常,
XMLSerializer xml = new XMLSerializer(typeof(A))
Run Code Online (Sandbox Code Playgroud)
mscorlib.dll中出现"System.IO.FileNotFoundException"类型的第一次机会异常
附加信息:无法加载文件或程序集'A.XmlSerializers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.该系统找不到指定的文件.
没关系,但调试时很烦人.是什么原因?
我在Quartz.net中收到以下错误
显示名称为"Quartz.XmlSerializers"的程序集无法加载到ID为1的AppDomain的"LoadFrom"绑定上下文中.失败的原因是:System.IO.FileNotFoundException:无法加载文件或程序集'Quartz.XmlSerializers ,Version = 2.0.1.100,Culture = neutral,PublicKeyToken = null'或其依赖项之一.该系统找不到指定的文件.
这是非常奇怪的,因为Quartz.XmlSerializers在我正在使用的任何代码中都不存在.它不在Quartz源代码,我的代码中,也不是我能说的最好的依赖项.它只发生在我调试我的项目时,但不是在我下载Quartz 2.0.1源代码并从那里运行服务器时.
我使用topshelf作为服务安装库.
它发生在Quartz源的XMLSchedulingDataProcessor.cs的第226行的反序列化期间.
// deserialize as object model
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(QuartzXmlConfiguration20));
Run Code Online (Sandbox Code Playgroud)
解决这个问题的任何线索都会有所帮助,因为我被这个错误所困扰.
在最近的一个项目中,我使用了大量的数据绑定和xml序列化.我正在使用C#/ VS2008并已下载.NET框架的符号信息以帮助我进行调试.
我正在处理的应用程序有一个全局"catch all"异常处理程序,如果碰巧有任何未捕获的异常被抛出,则向用户呈现更多可呈现的消息.我的问题是当我打开Exceptions-> Thrown时能够在它们被"catch all"捕获之前调试异常.在我看来,框架抛出了许多未立即捕获的异常(例如在ReflectPropertyDescriptor中),因此我实际上尝试调试的异常会在噪声中丢失.有没有办法摆脱框架引起的异常,但保留我自己的代码?
更新:经过更多研究并实际尝试摆脱框架抛出的异常(许多结果是框架中的已知问题,例如:XmlSerializer在构造函数中给出FileNotFoundException)我终于找到了一个适合我的解决方案,这是在工具>>选项>>调试>>常规>>中打开"只是我的代码"在VS2008中启用我的代码.