Visual Studio 2017でexeとdllを分けてビルドする。

今回から、Visual Studio 2017を使って、GACにプログラムをインストールし、実行できるようにします。
完了まで数回に分かれます。
使用しているVS2017は、「Visual Studio 2017 Community版」です。

はじまり、はじまり。
今回は、タイトルの通り「VS2017でexeとdllを分けてビルド」します。

■ ■ ■ 目次
■ ■ 1.新しいプロジェクトを作成する
■ ■ 2.クラスライブラリを追加する
■ ■ 3.コードを修正する
■ ■ 4.クラスライブラリへの参照を追加する
■ ■ 5.ビルドし、実行する

■ ■ 1.新しいプロジェクトを作成する
■ 1-1.メニューから[ファイル]-[新規作成]-[プロジェクト]を選択します。

■ 1-2.[新しいプロジェクト]ウィンドウの左ペインから[インストール済み]-[Visual C#]-[Windowsデスクトップ]-[コンソールアプリ]を選択します。
名前は、「AikotobahaStrix」とします。

■ ■ 2.クラスライブラリを追加する
外出しの処理をdllとして追加するためにクラスライブラリを追加します。
■ 2-1.ソリューション エクスプローラから[ソリューションで右クリック]-[追加]-[新しいプロジェクト]を選択します。

■ 2-2.[新しいプロジェクトの追加]ウィンドウの左ペインから[インストール済み]-[Visual C#]-[Windowsデスクトップ]-[クラス ライブラリ]を選択します。
名前は、「StrixUralensisClass」とします。

■ 2-3.追加後は、ソリューション エクスプローラは、こんな感じになります。
図 04-抜粋-クラスライブラリの追加後-ソリューションエクスプローラ.png

■ ■ 3.コードを修正する
「AikotobahaStrix」と「StrixUralensisClass」のコードを修正します。
前回のコードを追加します。
ただし、namespaceは「AikotobahaStrix」としています。

■ ■ 4.クラスライブラリへの参照を追加する
コードを修正すると「AikotobahaStrix」のコードで「現在のコンテキストに’StrixUralensisClass’という名前は存在しません。」とクラスライブラリが存在しない旨の警告が表示されます。

csc.exeでのコンパイルであればパラメータでクラスライブラリの指定をするため発生しなかったのですが、VS2017の場合随時チェックされるので下記の設定が必要になります。

■ 4-1.ソリューションエクスプローラの[参照で右クリック]-[参照の追加]を選択します。

■ 4-2.[参照マネージャー]ウィンドウで「StrixUralensisClass」にチェックを入れ、OKボタンをクリックします。

■ 4-3.参照の追加後は、クラスライブラリが存在しない旨の警告が消えます。

■ ■ 5.ビルドし、実行する
■ 5-1.ソリューションのビルドを行います。
メニューから[ビルド]-[ソリューションのビルド]を選択します。

  ビルドに成功すると[出力]ウィンドウは、こんな感じになります。
  ビルドが終わると下記の様に「AikotobahaStrix.exe」と「StrixUralensisClass.dll」が作成されます。

コード「AikotobahaStrix.exe」

AikotobahaStrix.exe

「StrixUralensisClass.dll」

StrixUralensisClass.dll

■ 5-2.実行してみます。
メインとクラスライブラリが実行されている事が確認できました。

ちなみに、exeを直接ダブルクリックするとコマンドプロンプトらしきウィンドウが一瞬表示されて、すぐに閉じられるので確認になりません。

おわり