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

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

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

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

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

Q&A

解決済

1回答

12479閲覧

dllの配置ルールについて

super1234

総合スコア52

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

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

0グッド

1クリップ

投稿2017/07/11 08:10

編集2017/07/11 08:56

【主に聞きたいこと】
dllのファイルの配置場所ルールについて知りたいです。

【現在使用ツール】
Visual Studio2015
VB.NET
言語VB.NET

【ソリューションプログラムの現在の構成】

ソリューションプログラム
|
ーー クライアントプログラムフォルダ

ーー サーバプログラムフォルダ

ーー コモンプログラムフォルダ

ーー SystemInstフォルダ

設定:スタートアッププログラムがクライアントプログラム

【現在のファイル構成】

ーーーーーーーーーーーーーーーーーーーーーーーーーーー
クライアントプログラムフォルダ > bin > x86 > Debugフォルダ内

クライアントプログラムフォルダ > obj > Releaseフォルダ内

クライアントプログラムフォルダ内

サーバプログラム

コモンプログラム

SystemInstフォルダ
ーーーーーーーーーーーーーーーー
【疑問点】

Visual Studio2015のソリューション構成をDebugを選択し、ソリューションプラットフォームをx86を選択

そしてソリューションプログラムコンパイル指定をx86 Debugとしてビルドリビルドを行い、クライアントアプリ起動時にエラーとして
「クライアントは'text/html;charset=utf-8'の応答のコンテンツタイプを見つけましたが、'text/html'が必要です。」
が出ました。

解決方法としては、

サーバプログラムフォルダ > bin > x86 > Debugフォルダ内のdllを

サーバプログラムフォルダ > binフォルダ内に入れてから

クライアントプログラムを実行したところ正常起動できました。

具体的疑問点としては、ソリューションをまとめてビルドリビルドして出来上がったクライアントプログラムのbinの中のx86の中のDebugフォルダにできたexeファイルを実行してなぜサーバープログラムのbin直下のdllを見に行っているのでしょうか。

それともそのdllの種類によってクライアントプログラム直下でなければいけないですとか、objフォルダ直下、Debugフォルダ直下など決まっているものなのでしょうか。

参照とされるdllは、どんなときに作られるかそれとも手動(手作業で)入れているのでしょうか。
よろしくお願いいたします。

読みづらく申し訳ないです。書き直しました。

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

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

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

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

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

mattn

2017/07/11 08:37

もう少し文書を整理頂けないでしょうか。カッコがなくどこからどこまでが引用なのか分からず少し読みづらいです。
mattn

2017/07/11 09:10

イベントログに何か出ていないでしょうか。
super1234

2017/07/19 00:54

お返事遅くなり申し訳ありませんでした。私的な用事でもう少し時間がいります。すいません。
guest

回答1

0

ベストアンサー

推測が入っていますので、厳密な回答ではないですが、

具体的疑問点としては、ソリューションをまとめてビルドリビルドして出来上がったクライアントプログラムのbinの中のx86の中のDebugフォルダにできたexeファイルを実行してなぜサーバープログラムのbin直下のdllを見に行っているのでしょうか。

については、クライアントプログラムのプロジェクトとサーバプログラムのプロジェクトは同じソリューションにあるとしても独立しているので、クライアントプログラムをデバッグ実行する、というだけではサーバプログラムもデバッグ実行するべきなのか、判断がつきにくいため、リリース時に配置されるであろうサーバプログラムのbin直下にアクセスしているのだと思います。

デバッグビルドされたdllやexeはデバッグ用の特殊なライブラリ等を使用していることもあって、標準ではdebugフォルダに出力されますが、他のシステム構成はリリース時の状態でもデバッグ実行できるようにデバッガが参照するパスを自動で判断してくれているというありがたいものだと私は解釈しています。

投稿2017/07/15 00:28

KoichiSugiyama

総合スコア3041

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

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

super1234

2017/07/19 00:57

回答頂きありがとうございます。私的なことでお返事遅くなり申し訳ありませんでした。回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問