使用Spoon Studio . net 4.0构建的应用程序中带有xmlserializer的FileNotFound



我在使用Spoon Studio和。net 4.0打包的虚拟化应用程序中得到以下异常

Exception='System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:tempSerializationmf3je3jx.dll' or one of its dependencies. The system cannot find the file specified.
File name: 'file:///C:tempSerializationmf3je3jx.dll'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.Assembly.Load(AssemblyName assemblyRef, Evidence assemblySecurity)
   at System.CodeDom.Compiler.CompilerResults.get_CompiledAssembly()
   at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
   at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
   at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)

在我们使用。net 3.5之前,这是正常的,但在迁移到。net 4.0包之后,我们开始看到这个错误。

我理解解决这个问题的一种方法是预生成XmlSerializers,但在我们的情况下,我们有多个插件也需要重建,我们希望避免这样做。

我的问题是为什么会发生这种情况?为什么运行时不能在运行时生成序列化器?我可以看到。cs和。out文件在临时目录中生成(dll也会立即生成并立即删除)。

如果我在没有虚拟化的情况下运行我的应用程序,它可以很好地工作,并且能够构建和加载内存中的序列化器。在这两种情况下,运行应用程序的用户是相同的。

欢迎提出任何建议。

这是一个单独的问题,但我无法调试这个VS或windbg(我得到clr版本不匹配错误b/w VS和应用程序)

原因是:安装VS12/。机器上的Net 4.5升级了CLR版本号为4.0.30319.17929,而应用程序使用4.0.30319.1. 和VS不允许我附加到这个应用程序

我们已经找到问题了。

Spoon Studio在。net 4.0中使用的默认。net映像没有包含所有必需的程序集。

这是Spoon Studio中的一个bug。我从SpoonStudio团队获得了一个新的自定义图像,

相关内容

  • 没有找到相关文章

最新更新