FileNotFoundException с XmlSerializers в приложении, созданным с использованием Spoon Studio .Net 4.0

Я получаю следующее исключение в нашем виртуализированном приложении, упакованном с использованием Spoon Studio и .Net 4.0

Exception='System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\temp\Serialization\mf3je3jx.dll' or one of its dependencies. The system cannot find the file specified.
File name: 'file:///C:\temp\Serialization\mf3je3jx.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, но в нашем случае у нас есть несколько надстроек, которые также необходимо перестроить, и мы хотим избежать этого.

My question is why is this happening at all? Why is runtime not able to generate the serializers at runtime? I can see .cs and .out files being generated in the temp directory (dll is also generated momentarily and deleted immediately).

Если я запускаю свое приложение без виртуализации, он отлично работает и способен создавать и загружать сериализаторы в памяти. Пользователь, запускающий приложение, является одним и тем же в обоих случаях.

Любое предложение приветствуется.

Это отдельная проблема, но я не могу отлаживать ее в VS или   windbg (я получаю ошибку несоответствия версии clr b/w VS и приложение)

     

причина: установка VS12/.Net 4.5 на машине обновляет CLR   номер версии до 4.0.30319.17929, тогда как применение   4.0.30319.1. и VS не позволяет мне прикрепляться к этому приложению

3
nl ja de

1 ответы

Мы нашли проблему.

По умолчанию. Net Image, используемое Spoon Studio для .Net 4.0, не содержит в нем всех необходимых сборок.

Это ошибка в студии Spoon. Я получил его работу, получив новый пользовательский образ из команды SpoonStudio.

2
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot