代码之家  ›  专栏  ›  技术社区  ›  Michael Stum

为什么在使用MSBuild 4.0编译.NET3.5项目时遇到BadImageFormatException

  •  2
  • Michael Stum  · 技术社区  · 16 年前

    我有一个用VS2008创建的项目。我试图用MSBuild 4.0来构建它,但仍然以3.5框架为目标。当我这样做的时候,我得到一个例外:

    [exec]ResGen:错误RG0000:无法加载引用的程序集“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationUI\v4.0_4.0.0.0_u31bf3856ad364e35\PresentationUI.dll”。捕获到BadImageFormatException,该异常表示“无法加载文件或程序集”C:\WINDOWS\Microsoft.Net\assembly\GAC\u MSIL\PresentationUI\v4.0.0.0\uu 31bf3856ad364e35\PresentationUI.dll'或其依赖项之一。此程序集是由比当前加载的运行时新的运行时生成的,无法加载。“。

    3 回复  |  直到 16 年前
        1
  •  3
  •   Michael Stum    16 年前

    问题是PresentationUI.dll程序集的HintPath与实际程序集位置不匹配。在这种情况下,MSBuild返回到GAC中查找程序集。由于MSBuild 4.0在.net4.0运行时上运行,它将获取程序集的4.0版本,该版本与正在编译的3.5项目不兼容。

        2
  •  0
  •   lokendra jayaswal    12 年前

    我遇到了同样的问题,在stackoverflow中寻找解决方案时遇到了这个问题,在研发之后我终于找到了解决方案。

        3
  •  0
  •   user3726565    11 年前