混合模式组件是针对"v2.0.50727"错误构建的

gan*_*ers 8 .net c# mixed-mode .net-4.0 .net-2.0

首先,我在这里找到了StackOverflow上的其他帖子,但它没有解决我的错误.

我有3个不同的环境/域,每个位置都有一个构建服务器.我的Dev和UAT环境构建得很好,但生产版本不起作用.

我收到了错误

混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时加载

我已将此标记添加到我的app.config文件中(这是我上面链接中的建议修复)

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
Run Code Online (Sandbox Code Playgroud)

导致此问题的构建服务器/环境/域之间还有什么不同?

在回答艾伦的问题时,我相信这就是你所要求的:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{D3D87C05-2811-489B-9F0D-7676B6485AA0}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MVST.Batch.CorrespondenceConversion</RootNamespace>
    <AssemblyName>MVST.Batch.CorrespondenceConversion</AssemblyName>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我有超过100个其他项目设置完全相同的方式,那些构建正常.

小智 15

http://support.microsoft.com/kb/2572158

useLegacyV2RuntimeActivationPolicy="true"下面的措辞添加到以下任一位置:

  1. sgen.exe.config文件位于以下位置:..\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools \
  2. 应用程序的app.config文件

<startup useLegacyV2RuntimeActivationPolicy="true">

            <supportedRuntime version="v4.0" />

</startup>    
Run Code Online (Sandbox Code Playgroud)

  • 我只想指出需要的部分是:useLegacyV2RuntimeActivationPolicy="true" (2认同)