.NET プロジェクトビルド時にMSB3270が発生するときの対応

この記事は公開から2年以上経過しています。

Linux(x64)でx64環境用のNuGetライブラリを利用する.NET 6(C#)のプロジェクトをビルドしたとき

warning MSB3270: 構築されているプロジェクトのプロセッサ アーキテクチャ "MSIL" と、参照 "/path/to/nuget_dll" のプロセッサ アーキテクチャ "AMD64" の間には不一致がありました。この不一致は、ランタイム エラーを発生させる可能性があります。プロジェクトと参照の間でプロセッサ アーキテクチャが一致するように、構成マネージャーを使用してターゲットとするプロジェクトのプロセッサ アーキテクチャを変更するか、ターゲットとするプロジェクトのプロセッサ アーキテクチャに一致するプロセッサ アーキテクチャとの依存関係を参照で設定することを検討してください。 [/path/to/project_file]

のようなエラーが発生したため、その対応方法についての備忘録。


解決策

プロジェクトファイルでターゲットプラットフォーム(本例ではx64)を明示する。

someproject.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <!-- PlatformTargetを明示する -->
    <PlatformTarget>x64</PlatformTarget>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="some-library-x64" Version="1.0.0" />
  </ItemGroup>

</Project>


参考ウェブサイトなど

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする