相关疑难解决方法(0)

生成Xml序列化程序集作为构建的一部分

此代码生成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序列化程序集?


更新:生成序列化程序集:打开设置似乎没有做任何事情.

c# xml xml-serialization

64
推荐指数
4
解决办法
6万
查看次数

为什么我的XmlSerializer出错了?

我对我的工作应用程序进行了一些更改,并开始在这行代码中收到以下错误.

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)

wpf system.xml

42
推荐指数
2
解决办法
4万
查看次数

ApplicationSettingsBase中的FileNotFoundException

在调试应用程序时,在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)

我试图创建一个显示错误的空测试应用程序,但没有发生异常.我们的项目非常庞大,因此很难找到原因.也许这个网站上有人知道如何解决这个问题.

c# application-settings applicationsettingsbase

29
推荐指数
2
解决办法
1万
查看次数

无法加载文件或程序集'MyAssembly.XmlSerializers

我采取了IIS的内存转储,并在分析时发现了"无法加载文件或程序集MyAssemblyName.XmlSerializers"的错误.在我的代码中,我使用XmlSerializer类将xml文件中的xml内容序列化和反序列化为自定义对象.当项目构建时,它只创建MyAssembly.dll和MyAssembly.pdb文件,但不创建MyAssembly.XmlSerializers.dll.有谁知道如何启用我的项目来创建xmlserializers.dll文件?

注意:在项目构建选项卡中,"生成序列化程序集"设置为"自动".

谢谢.

c# dll visual-studio-2010 xmlserializer

29
推荐指数
1
解决办法
2万
查看次数

反序列化XML时的FileNotFoundException

我们最近开始看到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上没有病毒扫描程序,因此我不认为这是一个问题.我们在托管环境和单独的客户端站点中也看到了这个问题.

我们尝试过:

  1. 清理此临时目录
  2. 检查临时目录的权限(用户是框中的本地管理员)
  3. 通过使用sgen.exe生成XmlSerializers.dll并将它们部署到app文件夹(问题仍然存在,就像.NET Framework不想使用这些程序集一样).

如果有人有任何想法或建议会有所帮助.

完整的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)

.net c# serialization filenotfoundexception

11
推荐指数
1
解决办法
5727
查看次数

错误:无法加载文件或程序集"ExcelAddIn1.XmlSerializers"或其中一个依赖项.该系统找不到指定的文件

我有一个excel的加载项目.它在我的电脑上工作正常.但是,当我在客户端计算机上安装它时,它给了我提到的错误消息.

  1. 我使用project-> properties-> publish发布了它.
  2. 我勾选了"启用我的代码".
  3. 我清除了'抛出'和'用户未处理'的'未找到文件异常'的刻度
  4. 我在客户端上使用项目文件夹中"publish"文件夹中的"setup"文件设置项目.
  5. 在publish-> prerequisites中,我勾选了这些项目:

    .net框架sp1

    Microsoft .net框架4

    Microsoft Office 2007主互操作程序集

    用于办公室运行时的Microsoft visual studio 2010工具

    Windows安装程序4.5

  6. 我正在使用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)

    //*********************

  7. 使用该类的代码:

    public List<DocumentField> getSchemaOfGroup(documentGroupPk groupPK)
    {
        List<DocumentField> result = new List<DocumentField>();
        HttpWebRequest request = (HttpWebRequest)WebRequest. …
    Run Code Online (Sandbox Code Playgroud)

.net json publish vsto xmlserializer

6
推荐指数
1
解决办法
1600
查看次数

转换为.NET 4时应用程序崩溃(同样绑定XML程序集失败)

我有一个解决方案,我正在尝试从.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)

.net xml code-access-security

6
推荐指数
1
解决办法
466
查看次数

XMLSerializer的构造函数中发生了第一次机会异常

可能重复:
XmlSerializer在构造函数中给出FileNotFoundException

当我使用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'或其依赖项之一.该系统找不到指定的文件.

没关系,但调试时很烦人.是什么原因?

.net c# xml serialization

4
推荐指数
1
解决办法
8042
查看次数

Quartz中的奇怪错误:找不到Quartz.XmlSerializers

我在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)

解决这个问题的任何线索都会有所帮助,因为我被这个错误所困扰.

c# topshelf quartz.net-2.0

3
推荐指数
1
解决办法
1400
查看次数

如何摆脱.NET Framework抛出的异常

在最近的一个项目中,我使用了大量的数据绑定和xml序列化.我正在使用C#/ VS2008并已下载.NET框架的符号信息以帮助我进行调试.

我正在处理的应用程序有一个全局"catch all"异常处理程序,如果碰巧有任何未捕获的异常被抛出,则向用户呈现更多可呈现的消息.我的问题是当我打开Exceptions-> Thrown时能够在它们被"catch all"捕获之前调试异常.在我看来,框架抛出了许多未立即捕获的异常(例如在ReflectPropertyDescriptor中),因此我实际上尝试调试的异常会在噪声中丢失.有没有办法摆脱框架引起的异常,但保留我自己的代码?

更新:经过更多研究并实际尝试摆脱框架抛出的异常(许多结果是框架中的已知问题,例如:XmlSerializer在构造函数中给出FileNotFoundException)我终于找到了一个适合我的解决方案,这是在工具>>选项>>调试>>常规>>中打开"只是我的代码"在VS2008中启用我的代码.

.net c# exception debug-symbols

2
推荐指数
1
解决办法
635
查看次数