首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SGEN失败:尝试在VS2008中加载格式不正确的程序集

SGEN失败:尝试在VS2008中加载格式不正确的程序集
EN

Stack Overflow用户
提问于 2012-11-14 06:45:45
回答 4查看 16.4K关注 0票数 14

我找到了几个类似的问题,并得到了回答,但没有一个答案或确切的条件适用于我的情况。

  1. 我有一个.NET 3.5项目正在为x64构建。
  2. 我还有一个x64混合模式引用(也针对.NET 3.5)。
  3. 在Visual 2008中,我创建了一个Web引用,它使SGEN在发行版构建过程中执行以创建助手DLL。

如果我不引用mixed-mode DLL,这很好。如果引用混合模式DLL,则会得到以下错误(xxx只是占位符):

SGEN : error :试图以不正确的格式加载程序集: C:\code\xxx\trunk\xxx\common\xxx\build\winx64\lib\xxx.dll.

这是正在发出的命令:

C:\Program \Microsoft /assembly:C:\code\xxx\trunk\xxx\xxx\obj\x64\Release\xxx.dll /proxytypes /reference:..\common\xxx\build\winx64\lib\xxx.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Configuration.InstallC:\Program (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll“/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll /reference:C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll /reference:"C:\Program (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.Runtime.Serialization.dll“/reference:"C:\Program (x86)\Reference Assemblies\Microsoft\Framework\v3.0\System.ServiceModel.dll”/reference:"C:\Program (x86)\Reference \Microsoft\Framework\/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll v3.5\System.Web.Extensions.dll“

有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2013-02-28 02:26:11

您是否尝试过按照Generate serialization assembly中的建议将Off更改为Off?就我而言,那是罚单。

只要转到你的项目属性,它就在构建中。

票数 33
EN

Stack Overflow用户

发布于 2014-07-18 14:48:19

安装MSBuild工具集 (用于Visual 2013)后,生成计算机上也会弹出此错误。问题是,默认情况下只有32位版本的sgen.exe可用。

安装最新的Windows (包括64位版本的sgen.exe)之后,问题就消失了:

http://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx

在一个代理(机器)上,我也需要安装旧版本:

http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx

票数 4
EN

Stack Overflow用户

发布于 2015-06-04 15:11:36

这是翁德雷 回答的一个替代方案。

我们刚刚修改了项目文件(csproj)中的发行版配置,并将SDK路径设置为x64版本:

代码语言:javascript
复制
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    ...
    ...
    <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
    <SDK40ToolsPath>C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64</SDK40ToolsPath>
  </PropertyGroup>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13374203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档