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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

シリアルポート

シリアルポートは一度に一ビットごと移行される物理的なインターフェイスです。一般的には、9ピンのd-subコネクタであるRS-232を指します。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

2回答

1390閲覧

[C#]マシンAでビルドしたフォームアプリをマシンBで稼働させたい

entaro12345

総合スコア75

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

シリアルポート

シリアルポートは一度に一ビットごと移行される物理的なインターフェイスです。一般的には、9ピンのd-subコネクタであるRS-232を指します。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

1クリップ

投稿2020/02/10 00:04

前提・実現したいこと

マシンA(Windows10)で開発したWindows Formアプリがあります。
端的に言うと、それをマシンB(Windows10)で実行したいです。

マシンAは開発用PCでいろいろなものがインストールされています。
(Visual StudioやSQL Serverなど開発に必要なもの)
マシンBは購入後の状態に近いPCになります(Office程度が入っているPC)。
マシンBには、.NetFrameworkはインストールしました。

動作させようとしているアプリはシリアル通信でUSB接続したシリアルとサーバーのDBとを通信させるものになります。

なぜか起動はするのですが、うまく動作しないので、
お力添えをお願いしたいです。

発生している問題・エラーメッセージ

USB接続したデバイスからのデータ受信を2度行い、その2回の結果を踏まえてサーバーにデータを流すのですが、
1回目の受信データはちゃんと受け取れていますが、2回目の受信データの内容が期待している値ではありません。
※マシンAでの検証は問題なく期待通り動作しています。

ログ出力に「log4net」を使用しています。

試したこと

[マシンB]
・デバイス用のドライバをインストール
・.NetFrameworkをインストール

補足情報(FW/ツールのバージョンなど)

OS:Windows10
.NetFramework 4.7.1

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

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

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

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

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

Zuishin

2020/02/10 00:21

原因を特定できる情報が何一つありませんね。
KoichiSugiyama

2020/02/10 00:29

ログにはなんと出力されているのでしょうか?開発環境をインストールできないマシンでテストするのであれば、ログ出力もログ出力レベル設けて、デバッグモードだと通常(運用時)より詳細な内部状態を出力させる、というようなやり方が定石だと思います。 もしログ出力があるならそれも正常時とエラー時を比較してみると、何か見えてくるかもしれません。
entaro12345

2020/02/10 00:38

ありがとうございます。 特にエラーは出ておらず、通常通りのエラーのみ出力されています。 (ところどころにデータや状態などを出力するようにはしています。)
Zuishin

2020/02/10 00:39

どこでどのようなログをとっているかも示されていないので「エラーは出ておらず」は何の情報にもなりませんね。
YAmaGNZ

2020/02/10 01:11

>2回目の受信データの内容が期待している値ではありません 受信したデータは期待しているサイズなのですか?
entaro12345

2020/02/10 01:18

はい、サイズは期待しているサイズになっています。
YAmaGNZ

2020/02/10 01:39

では、一回目の受信で期待以上のサイズを受信して、受信データ自体がずれたりしていませんか? まぁ、どのみちどのような受信処理を組んでいるか、どのような動きをしているか第三者には全く分かりませんので、どうしようもないですね
dodox86

2020/02/10 01:53

「何の為のログなのか」を意識しましょう。まさに、このようなことの為にログ出力機能を仕込むはずなのです。今のログ出力内容で原因が分かるか推測すらできなければ、ログ出力内容が不適切だということです。
Zuishin

2020/02/10 02:39

一回目のデータがちゃんと受け取れているということすら勘違いの可能性があるので何の診断もできません。詳細を書く気がないなら自分でどうにかするか、詳しい人を呼んでみてもらう他ないでしょう。
dodox86

2020/02/10 03:24

そもそもマシンAとBが、PCの諸元・仕様的に同じかも質問内容から分かりません。USBシリアルだとドライバーの導入が必要になりますが、定番のUSBシリアルチップ(FTDI社製など)を使ったUSBシリアルケーブルだとWindows10が標準でドライバーを持っている場合もありますが、そうでないこともあります。マシンBはほぼ購入当初の状態とのことなので、その辺りからひとつひとつ確認した方が良いのでは、と思います。
guest

回答2

0

自己解決

デバイスドライバを再インストール繰り返したところ、うまくいきました。

投稿2020/03/12 01:00

entaro12345

総合スコア75

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

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

0

マシンBでVisualStudioを使ってデバッグしてみましょう。
まずはそこでなにが起こってるのか、を把握しないとはなしになりません。

投稿2020/02/10 00:12

y_waiwai

総合スコア88042

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

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

entaro12345

2020/02/10 00:23

マシンBに、VisualStudioを入れないでどうにかできないでしょうか? おっしゃる通り、VisualStudioを入れてデバッグで確認することでかなり原因究明にかなり近づくかとは思うのですが、 検証用PCのため、Visual Studioをできれば入れない方法でやりたいです。 無理難題で申し訳ございません。
y_waiwai

2020/02/10 00:35

リモートデバッグというテもありますが、マシンに全く手を加えたくないということであればこれも使えないですね まあ、そのアプリに、どこでどういう動作をしてるのか、どこの動作でおかしくなってるのかといったログを記録する機能をつけといて、それを走らせてなにが起こってるのかを把握するってことでしょうね。 #たいていマシンBでパス違ってるってはなしだろうけど
entaro12345

2020/02/10 00:39

ありがとうございます。 もう少し詳しくログ出力させて確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問