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

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

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

VB2010Expressで64ビットのソフトを開発する方法

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

■83446 / inTopicNo.1)  VB2010Expressで64ビットのソフトを開発する方法
  
□投稿者/ ピラニア (1回)-(2017/03/24(Fri) 09:44:59)

分類:[.NET 全般] 

http://ykmtblog.hatenablog.jp/entry/2012/06/05/205304

このページを参考にして
VB2010Expressで64ビットのソフトをビルドできるように設定を行いました。


通常の32ビットの状態だと
ウインドウの上部のメニューバーで

デバッグ→デバッグ開始
を選択するとデバッグが開始し、
デバッグ→○○のビルド
を選択するとビルドが開始します。

しかし、64ビットの状態にするとなぜかこれが
どちらか片方しかできない状態になります。
つまり、デバッグボタンを押してもビルドボタンを押しても
デバッグしかできない状態か
ビルドしかできない状態になります。

どうもプロパティの「構成」のところが、
Releaseがアクティブになっているとビルドのみしか実行できず
Debugがアクティブになっているとデバッグのみしか実行できないようになっています。

いったいどうすれば
64ビットの状態であっても
デバッグとビルドをこれまで通りに
メニューバーから切り替えて実行することができますか?










引用返信 編集キー/
■83448 / inTopicNo.2)  Re[1]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ 774RR (492回)-(2017/03/24(Fri) 10:26:23)
うん??? .NET 系の世界でそういう設定って必要ないはずなんだけど。
フツーに .NET の世界では AnyCPU で 32bit/64bit 共通なバイナリになるんだけどなにか勘違いしてない?
32bit でしか提供されていない native DLL を DllImport するとかそういう話が無ければ AnyCPU で万事OK。

Visual C/C++ で 64bit native binary を作る場合には構成マネージャで x64 を追加する。

引用返信 編集キー/
■83449 / inTopicNo.3)  Re[2]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ ピラニア (3回)-(2017/03/24(Fri) 10:29:03)
デフォルトの状態だと
メモリに入っている配列の容量がおおよそ2GB以上になると実行できなくなります。
64bitにしないと2GB以上使えないのですが・・・

何か勘違いしていますか?

引用返信 編集キー/
■83450 / inTopicNo.4)  Re[3]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ WebSurfer (1179回)-(2017/03/24(Fri) 10:35:43)
No83449 (ピラニア さん) に返信

x64 でコンパイルすることを考える前に、一度以下の記事を読んで、32/64-bit
動作の基本的な知識、コンパイルオプションの設定の知識を得て、それから考え
た方がよさそうな気がします。

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

Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応
https://blogs.msdn.microsoft.com/nakama/2008/11/05/part-2-net-framework-2-0-64/

VS2012のC#プロジェクトのプラットフォーム構成(Any CPU・32ビットの優先)
http://sourcechord.hatenablog.com/entry/20130412/1365789867

x64 でコンパイルすると 64-bit OS でしか動かなくなり、まだまだ巷には多くある
と思われる 32-bit OS で使えなくなります。(上に紹介した「Part 2. .NET
Framework 2.0 アプリケーションの 64 ビット対応」の Step 8 の中の一番下の図を
見てください)

64-bit OS に対応するということであれば以下の対応がよさそうです。

(1) すべて x86 でコンパイルする(利用する .dll があればそれを含めて)。
  32-bit OS では当然問題なく動くし、64-bit OS では WOW 上で動くのでやはり
  問題ないはず。(上に紹介した「Part 2. .NET Framework 2.0 アプリケーショ
  ンの 64 ビット対応」の Step 9 の中の一番下の図の「例4.」参照)

(2) すべて Any CPU でコンパイルする。(Step 9 の中の一番下の図の「例1.」参照)

64-bit OS でメモリ空間を広げたいということもあるなら (2) が選択肢でしょうか。

引用返信 編集キー/
■83451 / inTopicNo.5)  Re[4]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ ピラニア (4回)-(2017/03/24(Fri) 10:43:06)
ありがとうございます。

32/64-bit
動作の基本的な知識は既に得ています。

64bit版だと32bit DLLが使えないので
そういったものは使わない前提です。

Any CPUでも既に試しているのですが
これの場合であっても
いちいち「構成」を変更しないと
ビルドとデバッグを使い分けることができない状態になります
 
引用返信 編集キー/
■83452 / inTopicNo.6)  Re[5]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ WebSurfer (1180回)-(2017/03/24(Fri) 11:10:23)
No83451 (ピラニア さん) に返信

> 64bit版だと32bit DLLが使えないので
> そういったものは使わない前提です。

「そういったもの」って何ですか? 既存の 32-bit dll を使う、そして 64-bit OS
でも動くようにしたいということなら、x86 でコンパイルするほかないのですが?

何をしたいのかよく分からなくなってきました。

> Any CPUでも既に試しているのですが
> これの場合であっても
> いちいち「構成」を変更しないと
> ビルドとデバッグを使い分けることができない状態になります

要するに質問者さんの問題はプラットフォームの設定ではなくて、「ビルドとデ
バッグを使い分ける」ということなのですか?

であれば「ビルドとデバッグを使い分ける」というのがどういうことか、もっと
もっと具体的に書いてもらえませんか?
引用返信 編集キー/
■83453 / inTopicNo.7)  Re[6]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ ピラニア (5回)-(2017/03/24(Fri) 11:18:54)
そういったものとは32-bit dll のことです
32-bit dll は使わない前提です。

デバッグだと実行が低速であるけれども
ブレイクポイントで実行を止めることができる

ビルドだと実行が高速であるけれども
バグがあった場合にはクラッシュしてしまう

というのを使い分けたいのですが
 
引用返信 編集キー/
■83455 / inTopicNo.8)  Re[7]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ 774RR (493回)-(2017/03/24(Fri) 11:34:23)
用語が一般的でない・・・「デバッグビルド」と「リリースビルド」なのでは?

とりあえず AnyCPU でコンパイルした C# バイナリを x64 windows 上で動かせば 2GiB メモリは取れる。

引用返信 編集キー/
■83456 / inTopicNo.9)  Re[1]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ shu (988回)-(2017/03/24(Fri) 12:20:05)
No83446 (ピラニア さん) に返信

2010Expressやめて2017Comunityでやってみてはどうでしょう?

https://www.visualstudio.com/ja/downloads/
引用返信 編集キー/
■83457 / inTopicNo.10)  Re[7]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ WebSurfer (1181回)-(2017/03/24(Fri) 12:39:34)
No83453 (ピラニア さん) に返信

どうも見当違いのことを考えておられるようで、話が通じてないように思えますが・・・

> そういったものとは32-bit dll のことです
> 32-bit dll は使わない前提です。

であればすべて Any CPU(Express 版はそれしかサポートしてないはず)でコンパイルする
という結論になります。

> デバッグだと実行が低速であるけれども
> ブレイクポイントで実行を止めることができる
>
> ビルドだと実行が高速であるけれども
> バグがあった場合にはクラッシュしてしまう
>
> というのを使い分けたいのですが

意味が分かりません。考え違い・見当違いがこのあたりにあるように思えます。

開発中はデバッグビルド、開発が終わってリリースするときにリリースビルドすれば何の支障
もないはずですが。

引用返信 編集キー/
■83458 / inTopicNo.11)  Re[7]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ WebSurfer (1182回)-(2017/03/24(Fri) 12:43:06)
No83453 (ピラニア さん) に返信

> デバッグだと実行が低速であるけれども
> ブレイクポイントで実行を止めることができる
>
> ビルドだと実行が高速であるけれども
> バグがあった場合にはクラッシュしてしまう
>
> というのを使い分けたいのですが

表題の「VB2010Expressで64ビットのソフトを開発する方法」とどう関係があるのでしょう?
話が違ってきてます?
引用返信 編集キー/
■83459 / inTopicNo.12)  Re[2]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ ピラニア (6回)-(2017/03/24(Fri) 12:58:04)
いや、話はまったく変わっていません。
64ビットでのビルド、デバッグはできるわけです。

ビルドとデバッグの使い分けがうまくいかない、というのが質問内容です
 
引用返信 編集キー/
■83460 / inTopicNo.13)  Re[3]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ WebSurfer (1183回)-(2017/03/24(Fri) 13:17:45)
No83459 (ピラニア さん) に返信
> いや、話はまったく変わっていません。
> 64ビットでのビルド、デバッグはできるわけです。
>
> ビルドとデバッグの使い分けがうまくいかない、というのが質問内容です
>

質問者さんの言ってることが理解できません。

正式には Any CPU しかサポートしてない Express 版で、裏技的に x64 をプラットフォーム
に設定するとうまくいかない。Any CPU なら問題ないと言ってます?

であれば、Any CPU でコンパイルすれば済む話だからそうすればいいという結論になると思い
ます。Any CPU ではダメな理由があるのですか?

どうしても x64 でコンパイルしたいなら、shu さんが言われるように Express 版を使うのは
止めて Community 版を使うとか。そうできない理由があるのですか?



引用返信 編集キー/
■83461 / inTopicNo.14)  Re[3]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ 大谷刑部 (18回)-(2017/03/24(Fri) 13:24:42)
No83459 (ピラニア さん) に返信
> いや、話はまったく変わっていません。
> 64ビットでのビルド、デバッグはできるわけです。
>
> ビルドとデバッグの使い分けがうまくいかない、というのが質問内容です
>  

.NetはVB6と違って部分コンパイルの概念がないので、
デバッグとリリースにほとんど差はありません。
.manifest、.pdb等のデバッグに必要なファイルがあるかどうかだけの違いしかないので、
そんなに難しく考える必要ないのではないですか?

構成マネージャーをデバッグに設定しても、
.manifest、.pdb等が作られずにデバッグができない現象が起こったことがありますが、
クリーンしてビルドしたら、あっさりデバッグできるようになりましたよ。

正確な情報が知りたいのであれば、
.manifest、.pdb等が作られない不具合がないかとか、
そういう視点で設定を見直した方がいいと思います。
引用返信 編集キー/
■83462 / inTopicNo.15)  Re[4]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ ピラニア (7回)-(2017/03/24(Fri) 13:30:55)
No83460 (WebSurfer さん) に返信


上でも既にお答えしたように
x64である必要はなく、AnyCPUで良いのですが
AnyCPUでやっても、同じ問題が起きており、うまくいっておりません。

x64にしたいというのが目的ではなく
・64bit OSで2GB以上のメモリ空間を使いたい
・しかし、なぜか、x64にしてもAnyCPUにしてもデバッグとビルドがうまく切り替えられないという問題が発生します
というのが質問です。
Community 版を使いたくないのは、
起動や動作が2010と比べて非常に重いからです。
 
引用返信 編集キー/
■83464 / inTopicNo.16)  Re[5]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ なちゃ (198回)-(2017/03/24(Fri) 13:53:36)
特別な手順は行わずに、単に普通にプロジェクトを作って、AnyCPUにしてもうまくいかないのでしょうか?
expressだとAnyCPUが使えないんなら別ですが。
何となくよけいなことをしておかしくなってる気がします。
AnyCPUでいいならプロジエクトを手でいじる必要はないんですよね?
引用返信 編集キー/
■83466 / inTopicNo.17)  Re[6]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ ピラニア (9回)-(2017/03/24(Fri) 14:12:20)
No83464 (なちゃ さん) に返信
VB2010Expressだとデフォルトの設定がx86になっています。
AnyCPUにするためには、
質問文にあるURLの方法を使う必要があります
 
引用返信 編集キー/
■83467 / inTopicNo.18)  Re[3]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ 魔界の仮面弁士 (1213回)-(2017/03/24(Fri) 14:40:24)
No83453 (ピラニア さん) に返信
> ビルドだと実行が高速であるけれども
> バグがあった場合にはクラッシュしてしまう

ビルドという用語の使い方を間違えている気がしますが、それはさておき。

例外をハンドルしきれていなかった場合の話をされているのだと思いますが、
デバッグビルドであっても、デバッガにアタッチしていなければクラッシュしますし、
リリースビルドであっても、デバッガにアタッチしていれば例外を補足出来ますよ。


> デバッグだと実行が低速であるけれども
> ブレイクポイントで実行を止めることができる

リリース構成かどうかと、ブレークポイントで止まるかどうかは別問題です。
リリースビルドでもブレークポイントを利用することはできますし、
pdb が無ければ、デバッグビルドでもステップ実行できなかったりします。


デバッグとリリースの切替は、[構成マネージャー]ダイアログ等で、
ソリューション構成を Debug/Release それぞれに切り替える方法と、
プロジェクトごとにプロジェクト プロパティの[コンパイル]タブで
切り替える方法とがあります。

ここの構成が正しく行われているかを確認してみてください。
たとえば、ソリューション構成が Release の場合に、
プロジェクト構成が Debug と設定されてはいないでしょうか。

また、プロジェクトのプロパティの [コンパイル]タブで、
構成が Debug の時に、[詳細コンパイルオプション]の
「デバッグ情報を作成」が Full もしくは pdb-only に
なっていることを確認してみて下さい。


あとは、「ソリューションのプロパティ」ダイアログを開いてみて、
[スタートアップ プロジェクト] が設定されているかを確認してみるとか。
プロジェクトがアクションなしに設定してあったりすると、
デバッグ開始ボタン(右向き三角)が使用不可になりますので。



No83459 (ピラニア さん) に返信
> 64ビットでのビルド、デバッグはできるわけです。
> ビルドとデバッグの使い分けがうまくいかない、というのが質問内容です

再現手順が分からないのですが、新規プロジェクトでも同じ現象になりますか?
また、クリーン後に VS を再起動してからリビルドしても解消されないでしょうか。

新規プロジェクトで発生しないなら、新しいソリューション&プロジェクトに
既存のソース取り込みなおしてみるのも手かと思います。



> ビルドとデバッグの使い分けがうまくいかない、というのが質問内容です

状況を整理してみましょうか。下記の内、「うまくいかない」のはどのパターンでしょうか。

(1)デバッグ構成でビルドする
(2)リリース構成でビルドする
(3)デバッグ構成でビルドしたものをデバッガにアタッチせずに実行する
(4)リリース構成でビルドしたものをデバッガにアタッチせずに実行する
(5)デバッグ構成でビルドしたものをデバッグ実行する
(6)リリース構成でビルドしたものをデバッグ実行する
(7)デバッグ構成でビルドしたものをステップインでデバッグ実行する
(8)リリース構成でビルドしたものをステップインでデバッグ実行する



(1)(2) の「ビルド」については、『ソリューションのビルド』と『プロジェクトのビルド』があります。

ソリューションのビルドは、キーボードショートカットなら Ctrl+Shift+B。
メニュー操作なら、[ビルド]-[ソリューションのビルド]です。

一方、プロジェクトのビルドは、既定のキーボードショートカットはありません。
メニュー操作では、[ビルド]-[projectName のビルド]です。

もしくは、ソリューション エクスプローラーを右クリックして「ビルド」を
選択することでも、ソリューションビルドやプロジェクトビルドを実行できます。



(3)(4) の「デバッグなしで開始」は、キーボードショートカットなら Ctrl+F5 です。

メニュー操作は、[デバッグ]-[デバッグなしで開始]ですが、既定の環境設定では
メニューに表示されていない可能性があります。


(5)(6) の「デバッグ開始」は、キーボードショートカットなら F5 です。
メニュー操作なら、[デバッグ]-[デバッグ開始]。
ツールバーにもアイコン(右向き三角)が用意されていますし、
ソリューション エクスプローラーの右クリックメニュー[デバッグ]にも同機能があります。


(7)(8) については、キーボードショートカットなら F11 です。
環境設定によっては、F8 にも同じ機能が割り当てられていることがあります。
メニュー操作では、[デバッグ]-[ステップ イン]。
こちらも、ツールバーのボタンおよび、ソリューション エクスプローラーの
右クリックメニューから実行させる事ができます。
引用返信 編集キー/
■83468 / inTopicNo.19)  Re[7]: VB2010Expressで64ビットのソフトを開発する方法
□投稿者/ WebSurfer (1184回)-(2017/03/24(Fri) 14:48:07)
No83466 (ピラニア さん) に返信

> VB2010Expressだとデフォルトの設定がx86になっています。


以下の記事にある "Visual C# Express などの Visual Studio Express Edition では、
特定の種類の CPU 向けの最適化をサポートしていません。" というのは Any CPU しか
サポートしていませんという意味だと思っていたのですが、違うのかしら?

方法 : アプリケーションを特定の種類の CPU に最適化する
https://msdn.microsoft.com/ja-jp/library/5b4eyb0k(v=vs.100).aspx

以下のように Any CPU を x86 にしたいという記事もあるぐらいだし・・・

Change target CPU settings in Visual Studio 2010 Express
http://stackoverflow.com/questions/4104228/change-target-cpu-settings-in-visual-studio-2010-express
引用返信 編集キー/
■83472 / inTopicNo.20)  Re[4]: VB2010Expressで64ビットのソフトを開発する方法
 
□投稿者/ ピラニア (11回)-(2017/03/24(Fri) 15:44:25)


No83467 (魔界の仮面弁士 さん) に返信

新規プロジェクトであってもこの現象は発生します
VS自体のクリーンインストールも行っても発生します

デフォルトの状態だと、
Ctrl+F5 で以下が実行されます

(3)デバッグ構成でビルドしたものをデバッガにアタッチせずに実行する
(4)リリース構成でビルドしたものをデバッガにアタッチせずに実行する

F5 で以下が実行されます
(5)デバッグ構成でビルドしたものをデバッグ実行する
(6)リリース構成でビルドしたものをデバッグ実行する


一方で、AnyCPUやx64に切り替えた状態だと

Ctrl+F5を押してもF5を押しても
(3)デバッグ構成でビルドしたものをデバッガにアタッチせずに実行する
(4)リリース構成でビルドしたものをデバッガにアタッチせずに実行する

あるいは

(5)デバッグ構成でビルドしたものをデバッグ実行する
(6)リリース構成でビルドしたものをデバッグ実行する

のいずれかが実行されます。

どちらが実行されるかは
「構成」によって決まります。

つまりデフォルトの状態だと、
ショートカットキーでデバッガにアタッチするかどうかを決めることができたのに
AnyCPUやx64にした状態だと
わざわざ「構成」を切り替えないと
決めることができません。

非常に不便です。
何とかならないでしょうか?
というのが質問です

引用返信 編集キー/

このトピックをツリーで一括表示

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -