プライマリ参照


C++/CLI クラスライブラリー を追加すると、「プライマリ参照 “ClassLibrary1.dll” は、現在のターゲット フレームワークのバージョン “2.0.0.0” より高いバージョン “4.0.0.0” を持つ .NET Framework アセンブリ “mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” に間接的に依存するため、解決できませんでした。」MSB3258 が表示される

Manifest の


// Metadata version: v4.0.30319
.module extern KERNEL32.dll
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (4C 6D D5 F0 B3 39 1D 2E 9B BF AE 45 93 CB 36 97   // Lm...9.....E..6.
           CF 28 E3 09 )                                     // .(..
  .ver 2:0:0:0
}
.assembly extern System.Data
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (E5 B5 50 54 98 E9 5C 10 DE FA 9F 8C DA 20 92 64   // ..PT..\...... .d
           22 BB 14 2A )                                     // "..*
  .ver 2:0:0:0
}
.assembly extern System
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (8F 67 30 D2 14 4F D0 12 CF A9 CD CF 9C 9D FA 6B   // .g0..O.........k
           BD 6B 4E CD )                                     // .kN.
  .ver 2:0:0:0
}
.assembly extern System.Drawing
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
  .hash = (61 8E BC 29 EC 27 A8 A2 E6 5E 22 DC F1 34 50 67   // a..).'...^"..4Pg
           EB B5 52 2E )                                     // ..R.
  .ver 2:0:0:0
}
.assembly extern System.Windows.Forms
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (C8 E3 55 99 8D A6 05 94 2E 9C 39 03 E4 57 C9 95   // ..U.......9..W..
           D3 78 C6 FA )                                     // .x..
  .ver 2:0:0:0
}
.assembly extern System.Xml
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (F2 5E C5 12 29 C2 D9 EA D0 45 F7 4B 64 05 5B B2   // .^..)....E.Kd.[.
           2C 4D 43 F8 )                                     // ,MC.
  .ver 2:0:0:0
}
.assembly extern mscorlib as mscorlib_6
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (85 30 75 CB A9 F2 05 CC 3F 90 83 F8 EF AC 38 80   // .0u.....?.....8.
           C8 C6 C5 39 )                                     // ...9
  .ver 4:0:0:0
}
.assembly extern System as System_7
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (36 0F BF A1 60 15 52 0B 36 66 A7 2E DB FA 4C 19   // 6...`.R.6f....L.
           00 F5 85 5D )                                     // ...]
  .ver 4:0:0:0
}

4:0:0:0 と 2:0:0:0 が混在している箇所に問題がありそうです。共通言語ランタイム サポートを /clr から /clr:safe に変更したところこの問題は解決しました。

Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015など.NET Framework 4 以降のバージョンに対応しているプラットフォーム ツールセットでは .NET Framework 2/3.5など古いバージョンに対応していないため、Visual Studio 2005, Visual Studio 2008 または Windows SDK のインストールが必要です。これは仕様のようです。

こちらのブログに詳しい情報があります。

投稿日: 2014年11月24日 | カテゴリー: Windows settings | パーマリンク コメントする.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。