none
VB.NETで64bitアプリをビルドする方法 RRS feed

  • 質問

  • ■環境

    下記を1台のPCで構成しています。

    <ハードウェア>
    ・x64ベースPC
    <OS>
    ・Microsoft(R) Windows(R) Server 2003 Standard x64 Edition(バージョン:5.2.3790 Service Pack 1 ビルド 3790 R2)
    <ミドルウェア>
    ・.NETフレームワーク(バージョン:v2.0.50727)
    <開発環境>
    ・Visual Studio 2005 Team Edition for Sowtware Developers(Version 8.0.50727.42  (RTM.050727-4200))
    <開発言語>
    VB.NET(Microsoft Visual Basic 2005   77952-113-3000004-41435)

    ■やりたいこと

    VB.NETの64bitアプリをつくりたい。

    ■質問

    IDEのプロジェクトのプロパティページの
    [コンパイル]-[詳細コンパイルオプション]-[ビルドの詳細設定]ウインドウ-[ターゲットCPU]で、
    [x64]を選択し、64bitコンパイルを指定しました。

    結果、
    「アセンブリ '<アセンブリ名>' をビルド中に問題が発生した可能性があります:
    参照アセンブリ 'mscorlib.dll' は異なるプロセッサを対象にしています。」
    と、警告が出力されます。

    mscorlib.dllも32bit用と64bit用があり、64bit用を指定する必要があるのだと理解していますが、
    mscorlib.dllの参照設定は、
    IDEのプロジェクトのプロパティページの[参照]に表示されておらず、
    変更方法がわかりません。

    mscorlib.dllの64bit用をどうやって指定するのでしょうか?
    よろしくお願いいたします。

    2007年2月19日 1:52

回答

  • 可能性としては2つ。
    1.参照しているアセンブリの中に32Bitプラットフォームのみをターゲットにしているものが混ざっている。
    2.64Bit版.NET Framework 2.0が壊れている。
    問題の切り分けとして新規で空白のフォームだけのアプリをAnyCPUか64Bitで作って、それを実行して64bitで動いているか確認する。
    2007年2月20日 13:09

すべての返信

  • VS2005に同梱されている64bit版の.NET Framework 2.0をインストールしているか確認してください。プラットフォーム呼び出しなどで64ビットの環境に依存していない限りターゲットはAny CPUで十分です。

    2007年2月20日 1:02
  • > ぱらぐあいさん

    アドバイスありがとうございます。

    .NET Frameworkは32bit/64bit共にインストール済みです。
    C:\WINDOWS\Microsoft.NET\Framework:32bit
    C:\WINDOWS\Microsoft.NET\Framework64:64bit

    また、[ターゲットCPU]を[Any]にすると起動プロセスが32bitになってしまいます。
    # タスクマネージャで確認。
    このため、[ターゲットCPU]で[x64]を明示的に指定しています。

    今回、64bitで起動したいんですが、アドバイスいただけないでしょうか?

    2007年2月20日 5:16
  • 可能性としては2つ。
    1.参照しているアセンブリの中に32Bitプラットフォームのみをターゲットにしているものが混ざっている。
    2.64Bit版.NET Framework 2.0が壊れている。
    問題の切り分けとして新規で空白のフォームだけのアプリをAnyCPUか64Bitで作って、それを実行して64bitで動いているか確認する。
    2007年2月20日 13:09
  • > ぱらぐあいさん

    アドバイスありがとうございます。

    結局、下記の結果になりました。
    つまり、AnyCPUを選択すると、ちゃんと64bitで実行されていました。
    AnyCPUを選択することにします。

    私の勘違いでご迷惑をおかけしました。お恥ずかしい限りです。
    いろいろありがとうございました。

    ================================================================================

    ①問題の切り分けとして新規で空白のフォームだけのアプリについて確認

    ・AnyCPUでコンパイル
     ⇒警告なしでコンパイル完了。実行すると64bitで実行されている。

    ・64bitでコンパイル
     ⇒「'mscorlib.dll' は異なるプロセッサを対象にしています」旨のワーニング出力。
      実行すると64bitで実行されている。

    ②最初の「■質問」のプロジェクトについて確認

    ・AnyCPUでコンパイル
     ⇒警告なしでコンパイル完了。実行すると64bitで実行されている。

    ・64bitでコンパイル
     ⇒「'mscorlib.dll' は異なるプロセッサを対象にしています」旨のワーニング出力。
      実行すると64bitで実行されている。

    2007年2月21日 1:07