C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: NuGetにてx86とx64のライブラリの選択


(過去ログ 125 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■74462 / inTopicNo.1)  NuGetにてx86とx64のライブラリの選択
  
□投稿者/ あひる (1回)-(2015/01/05(Mon) 12:47:17)

分類:[.NET 全般] 

いつも、勉強させていただいております。

以下の内容について、解決策がお分かりの方がいましたら、
教えていただけないでしょうか?

・SVN操作を行う自作ライブラリをVS2010 C#にて作成しています。
・プラットフォームターゲットは、Any Cpuとしています。
・外部ライブラリとして、NugetにてSharpSVNを利用しています。

そこで質問なのですが、
SharpSVNを利用する際、x86とx64の両方がリリースされていました。

SharpSVNは、x86を使って、コンパイルをすると、
以下のようなワーニングが表示されます。

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

このワーニングを消すための方法としては、以下の対応となるのでしょうか?
・自作ライブラリは、AnyCPUではなく、x86用とx64用の2つを用意する。
・自作ライブラリを取り込むEXEにおいても、x86用とx64用の2つを用意する。

できれば、2つ用意することは避けたいのですが、何か方法はありますでしょうか?


引用返信 編集キー/
■74471 / inTopicNo.2)  Re[1]: NuGetにてx86とx64のライブラリの選択
□投稿者/ WebSurfer (452回)-(2015/01/05(Mon) 13:45:01)
No74462 (あひる さん) に返信

SharpSVN というのは全く知らないのですが、一般的な .NET アプリの 32/64-bit
対応の話としてレスします。

> SharpSVNは、x86を使って、コンパイルをすると、
> 以下のようなワーニングが表示されます。

質問者さんの作っているアプリのプラットフォームターゲットが Any CPU になっ
ていて .dll が x86 になっているからだと思います。

プラットフォームターゲットを x86 にすれば警告は表示されなくなると思います
ので、お試しください。

> できれば、2つ用意することは避けたいのですが、何か方法はありますでしょうか?

上記で「プラットフォームターゲットを x86 にする」というのは、64-bit OS で
は WOW64 上で動かすと言うことで、「2 つ用意」する必要はありません。

詳しくは以下の記事を見てください。

Part 1. 64 ビット Windows OS の基本知識
http://blogs.msdn.com/b/nakama/archive/2008/10/30/part-1-64-windows-os.aspx

Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応
http://blogs.msdn.com/b/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx
引用返信 編集キー/
■74475 / inTopicNo.3)  Re[2]: NuGetにてx86とx64のライブラリの選択
□投稿者/ あひる (2回)-(2015/01/05(Mon) 15:21:28)
WebSurfer さま

回答ありがとうございます。

教えていただいた2つのサイトを拝見し、自分の間違いに気が付くことができました。

この場合は、DLLをx86に変更するのが正しい対応ですね。

本当にありがとうございました。



No74471 (WebSurfer さん) に返信
> ■No74462 (あひる さん) に返信
>
> SharpSVN というのは全く知らないのですが、一般的な .NET アプリの 32/64-bit
> 対応の話としてレスします。
>
>>SharpSVNは、x86を使って、コンパイルをすると、
>>以下のようなワーニングが表示されます。
>
> 質問者さんの作っているアプリのプラットフォームターゲットが Any CPU になっ
> ていて .dll が x86 になっているからだと思います。
>
> プラットフォームターゲットを x86 にすれば警告は表示されなくなると思います
> ので、お試しください。
>
>>できれば、2つ用意することは避けたいのですが、何か方法はありますでしょうか?
>
> 上記で「プラットフォームターゲットを x86 にする」というのは、64-bit OS で
> は WOW64 上で動かすと言うことで、「2 つ用意」する必要はありません。
>
> 詳しくは以下の記事を見てください。
>
> Part 1. 64 ビット Windows OS の基本知識
> http://blogs.msdn.com/b/nakama/archive/2008/10/30/part-1-64-windows-os.aspx
>
> Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応
> http://blogs.msdn.com/b/nakama/archive/2008/11/06/part-2-net-framework-2-0-64.aspx
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -