9

まず、StackOverflow hereに関する他の投稿を見つけましたが、エラーは解決しませんでした。

それぞれの場所にビルド サーバーがある 3 つの異なる環境/ドメインがあります。開発環境と UAT 環境は正常にビルドされますが、製品版は機能しません。

エラーが発生します

混合モード アセンブリは、ランタイムのバージョン 'v2.0.50727' に対してビルドされており、追加の構成情報がないと 4.0 ランタイムに読み込むことができません

このタグを app.config ファイルに追加しました (これは、上記のリンクで提案された修正でした)

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>

この問題の原因となるビルド サーバー/環境/ドメイン間で他に何が異なる可能性がありますか?

アレンの質問に答えて、私はこれがあなたが求めているものだと思います:

<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>

まったく同じ方法でセットアップされ、正常にビルドされるプロジェクトが 100 以上あります。

4

4 に答える 4

17

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>    

于 2013-10-04T08:31:37.490 に答える
2

64 ビットで実行している場合は、Visual Studio テスト エンジン構成に追加する必要がある場合があります。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.exe.config

次のように起動ノードを追加します。

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    <requiredRuntime version="v4.0.20506" />
</startup>
于 2014-03-24T20:19:43.140 に答える
0

これがうまくいった修正です...なぜ私のプロジェクトが2.0である必要があるのに、他のプロジェクト(私の質問のリンク)が4.0である必要があるのか​​ まだわかりません。

  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
于 2013-02-11T18:37:04.320 に答える
0

単体テストの場合、単体テストに Resharper を使用している場合、他の答えがどれもうまくいかなかったことがすでにわかっています。

Resharper は、単体テストを実行するために ResharperTestRunner (32 ビットまたは 64 ビット) を起動します。このファイルは (少なくとも私のシステムでは) C:\Users[user]\AppData\Local\JetBrains\Installations\ResharperPlatform[version] にあります。このファイルの構成は同じ場所にあり、同じ名前である必要がありますが、.config サフィックスが付いています。私のシステムでは、それはありませんでした。だから、私はそれを作成し、これを追加しました:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <!-- 4.0 RTM -->
    <supportedRuntime version="v4.0.30319"/>

    <!-- 2.0 RTM -->
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

その後、私のテストが機能し始めました。お役に立てれば。

于 2019-01-16T17:58:47.173 に答える