c# クラスライブラリの静的リンクによる参照

自作のクラスライブラリを参照するには、2つ方法があります。ここでは exe に組み込んで利用する方法を解説します。もう1つの dll として参照する方法については、クラスライブラリの参照方法 をご覧ください。

1. フォルダを作成

まず、クラスライブラリを使用したいプロジェクトにフォルダを作成します。 画面右のソルーションエクスプローラの使用したいプロジェクト上で右クリックすると表示されるメニューから、追加(D) -> 新しいフォルダ を選択すると NewFolder1 という名前のフォルダが作成されるので、フォルダの名前を使用したいライブラリの名前に変更します。フォルダの名前を変更するにはフォルダをクリックします。例えば、クラスライブラリ SSS を参照するには、SSS という名前のフォルダを用意するとよいでしょう。このフォルダ作成は必須ではありませんが、こうするとわかりやすくて良いと思います。

2. クラスライブラリ内の使用するファイルをリンクする

静的にリンクするには、dll として利用する場合と違い、使用するクラスライブラリのファイルを手動で追加する必要があります。追加するには、ソルーションエクスプローラの 1 で作成したフォルダ上で右クリックすると表示されるメニューから 追加(D) -> 既存の項目(G)... を選択すと表示される既存項目の追加ダイアログで、使用したいクラスライブラリのファイルを選択します。その後、追加ボタンを普通に押さずに、右端を押すとドロップダウンされる、リンクとして追加(L) を選択してファイルを追加します。

Visual C# 2008 - 既存項目の追加: リンクとして追加
Visual C# 2008 - 既存項目の追加: リンクとして追加

これで、リンクとして追加したファイルのクラスが使えるようになります。このとき Visual C# のソルーションエクスプローラは以下のようになります。ショートカットを示すアイコンがオーバレイ表示されていることに注意してください。

Visual C# 2008 - メイン画面: リンクとして追加後
Visual C# 2008 - メイン画面: リンクとして追加後

リンクとして追加しなかった場合、ショートカットアイコンが表示されません。この場合、フォルダにクラスライブラリのコピーが作成されてしまっていますので、削除してやり直しましょう。

リソースファイルを静的リンクするには?

クラスライブラリのリソースを静的にリンクするには、まず、対応する resx ファイルを cs ファイルと同じ方法でリンクします。ソルーションエクスプローラで追加した resx ファイルをクリックすると表示されるプロパティ画面で、カスタムツールの覧に、ResXFileCodeGenerator を設定します。さらに、リソースの名前空間をカスタムツールの名前空間の覧に設定します。

例えば、クラスライブラリのプロジェクト SSS のプロパティからリソースを作成すると、.\Properties フォルダに Resources.resx ファイルが作成されます。静的リンクするときにはこのファイルをリンクとして追加します。このときの、名前空間は、SSS.Properties になります。

Visual C# 2008 - メイン画面: リソースをリンクとして追加してプロパティを設定
Visual C# 2008 - メイン画面: リソースをリンクとして追加してプロパティを設定

c# 2008 Express Edition だと、リンクとして追加したリソースファイルの再コンパイルが自動的に行われないようです。このため、resx ファイルを最後にコンパイルしたプロジェクトと現在のプロジェクトが異なる場合、実行時に例外が発生します。しかもリソースを参照するまで例外は発生しないので注意が必要です。

Visual C# 2008 - 例外: リソースをリンクとして追加

発生する例外

System.Resources.MissingManifestResourceException

指定されたカルチャまたはニュートラル カルチャに対して適切なリソースが見つかりませんでした。\"SSS.Properties.Resources.resources\" が適切に埋め込まれたか、実行時にアセンブリ \"HTMLGenerator\" にリンクされたか、または必要なサテライト アセンブリが読み込まれて完全に署名されていることを確認してください。

例外の回避

この現象を回避するには、resx ファイルを右クリックして表示されるメニューから、カスタムツールの実行(L) を選択してコンパイルします。同じリソースを使う他のソルーションを使用するときに、1回は手動コンパイルし直す必要があります。

自分は手動コンパイルの実行を忘れないように、プログラムの起動時にリソースをわざと参照して、手動コンパイルし忘れたバージョンをリリースしないようにしています。

まとめ

このページで紹介した静的リンクは、少々やっかいなので、特別なこだわりがない場合は dll としてリンクした方が楽です (クラスライブラリの参照方法 参照)。配布するファイルを exe 1つにしたい場合や、少しでも配布するファイルサイズを減らしたいなどのこだわりがある場合にはこの方法が使えると思います。

となりのページ

このサイトについて

このサイトのページへのリンクは自由に行っていただいてかまいません。
このサイトで公開している全ての画像、プログラム、文書の無断転載を禁止します。

連絡先

ここをクリック すると表示されるページから作者へメールで連絡できます。

共有

新着情報 ! NEW !
1/12 ミルノPCフォトフレーム 2.2.2 公開!
利用ライブラリの最新化など
1/12 ショートカットファイルを編集するノ 1.4.8 公開!
月額会員認証できない不具合修正ほか
1/11 HTML 自動生成するノ 1.4.7 公開!
月額会員認証できない不具合修正
8/7 イメージミラー 1.0.3 公開!
拡大縮小とレイアウトが100%以上の場合に対応(高DPI対応)
7/26 動画を見るノ 1.1.1 公開!
大量のファイル閲覧時にメモリー不足になる不具合修正
11/21 ショートカットファイルを編集するノ 1.2.7 公開!
起動時にエラーが発生する不具合修正
11/2 ショートカットファイルを編集するノ 1.2.6 公開!
「オブジェクト参照が...」エラーが発生する不具合修正
6/15 ミルノ PC フォトフレーム 2.2.1 公開!
長いしおりメニューの位置がおかしくなる不具合修正
3/23 ミルノ PC フォトフレーム 2.2.0 公開!
ルーペ機能、全画面表示で最小化ボタン表示機能など
1/18 動画を見るノ 1.1.0 公開!
Media Foundation 対応、スナップショット取得の高速化
売れ行き 順位 1位 文字に縁取りするノ
何重にも縁取りした文字をカンタンに作成できる
2位 ミルノ PC フォトフレーム
PCに保存されている写真や画像をまとめて見られる
3位 ピグチャット+
アメーバピグで、誰でも簡単にチャットできるように
4位 ピグライフタイマー
スタミナの全快や作物の収穫時期を音でお知らせ
5位 HTML 自動生成するノ
CSVとHTMLテンプレートからホームページを一括生成
配布中のソフト
動画を見るノ
動画のスナップショットを数枚ずつ、一覧表示できる
ミルノ PC フォトフレーム
PCに保存されている写真や画像をまとめて見られる
ストローク
ドロー系のお絵描きソフト。CMYK PDF でも出力できる
ストロークループアニメーター
2枚の画像から滑らかなアニメーション GIF/PNG を生成
バックアップするノ
更新日付つきのフォルダー、zip ファイルに一括コピー
シンプルマウント
iso ファイルのドライブ割り当て / 解除を自動化
メディアからファイルを移動するノ
メディアの挿入を検知してファイルを自動的に移動
ピグとも+
ピグを自由気ままにコレクションできる
ピグライフタイマー
スタミナの全快や作物の収穫時期を音でお知らせ
ピグアイランドタイマー
スタミナの全快やアイテムの完成時期を音でお知らせ
ピグチャット+
アメーバピグで、誰でも簡単にチャットできるように
ラインスタンプに変換するノ
ライン (LINE) スタンプ形式の画像に一括変換
縮小するノ
1枚の画像から、1~3種類の縮小画像を1度に生成できる
文字に縁取りするノ
何重にも縁取りした文字をカンタンに作成できる
フォントを一覧表示するノ
フォントを太さ、斜体のバリエーションを含めて一覧表示
地図印刷用ブラウザー
地図印刷用ウェブブラウザー、広い地図を印刷可能に
ローカルブラウザ
PCに保存されているHTMLやテキストをカンタンに見る
HTML 自動生成するノ
CSVとHTMLテンプレートからホームページを一括生成
キーワードツール
複合検索ワードの生成とキーワード有効度調査を簡単に
角を丸めるノ
画像の角を一括で丸めたり、ぼかしたりできる
桜が散るノ
デスクトップに桜が散るアニメーションを表示
スキャナートリマー
スキャナー原稿の傾きを自動補正、自動トリミング
反転するノ
画面の鏡像を拡縮して表示。絵のチェックにどうぞ
イメージミラー
画面の鏡像をリアルタイム表示。対称な絵をカンタンに
ピュアキャプチャー
パソコン画面を定期的に保存。PrtSc シミュレート方式
ショートカットを編集するノ
ショートカットファイルのリンク先を一括変更
管理者権限のショートカットを作成するノ
管理者権限で起動するショートカットファイルを作成
Leeyes 本棚変換
Leeyes の本棚をショートカットファイルに変換
その他のページ
ラインスタンプ特集
ラインスタンプの描き方などを紹介する予定です
初心者用検索ページ
50音のあいうえおボタンで google 検索できるページ
ピグライフ電卓
ピグライフの料理から必要な材料を計算できるページ
ピグアイランド電卓
ピグアイランドのアイテムから必要な材料を計算できる
ピグとも検索
ピグの名前で検索、マッチしたピグを一覧表示できます
c++ 使いの c# メモ
c++ プログラマ向けの c# ガイド
Windows API 実験室
Windows API の仕様を実験調査
sed 実験室
sed の仕様を実験調査
連絡先
こちらから作者に連絡できます。お気軽にどうぞ。
関連ホームページ
ミルノのブログ
オンラインソフトの更新情報やプログラミング Tips