質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

5343閲覧

【Visual Basic.NET】Release構成でのビルドに失敗してしまう

sujico.net

総合スコア453

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2017/10/02 01:47

編集2017/10/02 02:28

VB初心者です。
現在、Microsoft Visual Basic.NET 2003による
Windowsフォームアプリケーション開発を行っています。
(Windows XP環境)

Debug構成でのビルドを行うと、通常通りプログラムが開始されますが、
Release構成でのビルドを行うと、途中で終了してしまいます。

ブレークポイントを置いてみたところ、
InitializeComponent()の中にも入ってこれていないようで、
どう原因を探したらよいかもわかりません。

この現象を解決する為に、どのような手段が考えられるか
ご教示頂けないでしょうか。

【目的】
・Release構成でビルドし作成したexeファイルで、
通常通りプログラムが起動されることを確認したい。(他のPCで動作させるため)

 
【補足】
◆調べて分かったこと(ふわふわとした理解&間違えているかもしれませんが)
・ブレークポイントを置いても引っかからないのはそもそもRelease構成だから?
・DEBUG構成とRELEASE構成では、そもそも作りが変わってくる(何かの)

◆追加情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

Release構成でのビルド自体は成功して実行ファイル(*.exe)はできるんだけども、
そのexeを起動すると異常終了してしまう、と言うことで話を進めます。
(タイトルと前半のお話では、ビルド自体が失敗する、とのように読み取れたので)

実行用のPCでVisual Studio でデバッグできない場合、プログラムに
デバッグ端末にデバッグ用メッセージを出力するようにして確認する方法があります。

例えば、以下のようにSystem.Diagnostics.TraceクラスのWriteLine()メソッドで文字列を
出力するようコードを追加し、

VB.NET

1System.Diagnostics.Trace.WriteLine("Test")

別途、DebugViewと言うマイクロソフトのツールを実PCにインストールして、
デバッグ用端末として動作させます。(インストールと言うより、コピーだけで動きます)

DebugView for Windows

そうすると実PCでデバッグ/トレース用のメッセージを確認することができます。

FormのInitializeComponentメソッドですが、例えばForm1クラスを作ったとして
フォームは自動生成されたソースファイル Form1.Desiginer.vb に定義されますが、
フォームのデザインを変えて保存、リビルド等をしなければ自動生成されず、
上書きされません。

なので、Form1.Desiginer.vb 自体に System.Diagnostics.Trace.WriteLine()を
記述することも可能なはずです。(追記:VS2015 のVB.NET では可能でした)

ただ、今回はInitializeComponent()自体にブレークしないということなので、
それ以前に落ちている可能性もあります。Visual Studio 2015 で簡単な
VB.NET Formアプリケーションプロジェクト(Release / AnyCPU)で試したところでは
Releaseビルドでもブレークポイントにヒットしました。

Exceptionの送出で、スタックトレースを取れれば原因の箇所がより分かるのですが。
また、もしかするとWindowsのイベントログにエラーが報告されているかも
しれませんので一応確認してみてください。

Windows XP + Microsoft Visual Basic.NET 2003ということで
Windows OSとSDK関連の古さによる原因も考えられます。

更に、まったくの想像ですが、プログラムの起動自体ができないということで
「参照」が何か影響しているかもしれません。外していたらすみません。

投稿2017/10/02 03:04

編集2017/10/02 03:10
dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sujico.net

2017/10/02 04:18 編集

ご丁寧な解説ありがとうございます。(ビルド失敗は確かに誤りでした、ビルドに成功してexeファイルも生成されます) 確認してみたところ、どうやらプログラム上Relese構成だとエラーメッセージを出して明示的に終了の処理を書いているようで、これが正しい動きだったようです。(既存プログラムのカスタマイズということです) 本件解決いたしました。 ただこうなるとまた別の疑問が生まれてくるのですが、本件とはまた異なる質問ですので 違うクエスチョンとして投稿させていただきます。 ベストアンサーとさせて頂きます、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問