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

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

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

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

Visual Studio

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

Q&A

解決済

4回答

34097閲覧

プロジェクトに自作dllを参照する方法。

yuki00079

総合スコア45

C#

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

Visual Studio

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

0グッド

0クリップ

投稿2017/02/18 02:38

編集2017/02/22 02:44

###前提・実現したいこと
タイトル通りですが、プロジェクトに自作のdllを参照する際に困っていることがございます。
プロジェクトを右クリック、追加→参照からローカルパスを指定し対象のdllをプロジェクトに参照しております。
参照後、対象のdllをローカルにコピー設定にし設定終了ですがこの場合、参照しているdllパスが変更された際に再度参照する必要があり手間です。
他のオープンソースだとLibフォルダを作りそこにdllファイルを追加し呼び出しているようなのですがうまくできません。
ビルドコマンドのような$(SolutionPath)にて相対パスを設定できそうなのですが・・・。
一般的な手法はあるのでしょうか。
理想はNugetで追加されたライブラリのようなものをイメージしております。

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

プロジェクトをいつも開発している環境から別のパスへコピーし実行すると「参照コンポーネント(自作dll名称)が見つかりません。」とVSにてエラーが表示されます。参照しているdllをマネージャーから見ると、指定のローカルパスから参照しているdllが絶対パスにて参照しているためかと考えております。(参照し直すと問題なし。)

###試したこと。
libフォルダーをプロジェクト内に作成。フォルダーを右クリックし、追加→既存の項目から対象のdllを追加。
フォルダーに追加したdllのプロパティを変更。ビルドアクションをコンテンツ。出力ディレクトリにコピーを常にコピー。まで設定したのですが参照方法がわかりません。今のままではビルドしても参照されていないためエラーがでるだけです。

###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio2015

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

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

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

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

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

guest

回答4

0

投稿2017/02/22 03:15

kiichi54321

総合スコア1984

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

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

0

開発中の話であれば、ソリューションの中に自作 dll のプロジェクトを追加し、その dll を使うプロジェクトから参照設定をするようにしてはいかがですか?

投稿2017/02/18 06:11

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yuba

2017/02/22 03:52

これかなとは思うんですが、業務全体としては「自作」でも当該DLLを作っているのは別会社なのでソースコードは持っていないなんていうシチュエーションもありそうですよね。
guest

0

ベストアンサー

Visual Studioならプロジェクトのプロパティのリンカーの項目に、追加のライブラリディレクトリという項目があるので、そこにLIBファイルが有るフォルダーを指定すればいいはず。

指定する際は、$(SolutionDir)などのマクロを使用して、その位置からの相対パスでしていすれば、プロジェクトを別のフォルダに移しても何も修正せずにビルドできるはずです。

Visual Studioには多数のマクロが登録されていて、指定する際に今のプロジェクト位置での実際のフォルダー位置などを確認できるのでそれほど難しいことではないと思います。

なお、パスを指定する時は、右端の▼印をクリックして<編集...>を選ぶと別画面が開くので、そこでマクロボタンを押せばマクロが参照できます。

投稿2017/02/23 08:11

PineMatsu

総合スコア3579

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

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

yuki00079

2017/03/04 00:09

返信が遅くなり失礼しました。 初歩的なミスだったようです。普通にプロジェクト内にフォルダーを作り、dllを追加。 dllを追加したフォルダーを参照すれば自動的に相対的な参照になっていました。 VS用のマクロに関しても今後勉強していこうかと思います。ありがとうございました。
guest

0

こんにちは。

他のオープンソースだとLibフォルダを作りそこにdllファイルを追加し呼び出しているようなのですがうまくできません。

どううまくいかないですか。
相対パスが設定されてうまく動作しそうな気もしますが。

参照側ではなく、
Libフォルダに含めたDLLのプロパティで出力ディレクトリにコピーする設定も試してみては。

投稿2017/02/18 06:27

Tak1wa

総合スコア4791

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

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

yuki00079

2017/02/22 02:54

回答ありがとうございます。 >Libフォルダに含めたDLLのプロパティで出力ディレクトリにコピーする設定も試してみては。 上記設定後、libフォルダー内に追加したdllを参照しに行くとエラーがでなくなりました。 VS2015からの共有プロジェクト内にlibフォルダーを作成しdll追加後、そこを参照するというのは問題ないでしょうか。できれば共有で使用したいものなので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問