无法加载MyAssembly.XmlSerializers.dll.该系统找不到指定的文件

use*_*875 5 c# visual-studio

我最近安装了Visual Studio 2012.

但是,在安装之后,以前在Visual Studio 2010中正常工作的项目开始抛出并崩溃以下错误:

'System.TypeInitializationException:'MyType'的类型初始值设定项引发了异常.---> System.IO.FileNotFoundException:无法加载文件或程序集"MyAssembly.XmlSerializers"或其依赖项之一.该系统找不到指定的文件.

在System.Reflection.RuntimeAssembly._nLoad(的AssemblyName文件名,字符串的代码库,证据assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr的pPrivHostBinder,布尔throwOnFileNotFound,布尔forIntrospection,布尔suppressSecurityChecks)

在System.Reflection.RuntimeAssembly.nLoad(的AssemblyName文件名,字符串的代码库,证据assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr的pPrivHostBinder,布尔throwOnFileNotFound,布尔forIntrospection,布尔suppressSecurityChecks)

我并没有像以前项目升级到VS2012,我跑出来VS2010的.我没有对项目本身做任何改动.唯一的变化是我在机器上安装了VS2012(和.NET 4.5).

什么可能导致这个意外的问题?

use*_*875 4

情况比我预想的要棘手一些。该程序集的 XMLSerializers DLL 似乎对于我的解决方案中的身份验证至关重要,并且只是“按 F5 继续运行,直到真正的问题发生”并没有导致一些不相关的错误。

我还不能完全理解根本问题是什么,但似乎在 Visual Studio 升级后动态创建 DLL 时出现问题。

我解决该问题的方法是运行 sgen 工具来手动创建序列化程序,并将“生成序列化程序集”标志设置为关闭。通过添加构建后指令来运行该工具,可以使该过程自动化。

话虽这么说,我不知道为什么会出现这个问题,因为我确信我没有在 VS2012 中打开该项目。