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

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

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

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

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

Q&A

0回答

806閲覧

.NETで参照しているライブラリが参照しているライブラリのDLLが見つからないという例外が投げられる

Rei_312

総合スコア24

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

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

0グッド

1クリップ

投稿2022/05/05 04:05

編集2022/05/05 10:19

前提

.NET 5を使用して開発をしています。
発生している問題なのですが、
ライブラリAが外部ライブラリBを参照していて、プロジェクトCがライブラリAを参照しているとき、
実行ファイルのあるフォルダにライブラリBのDLLをおいているのにも関わらず、
DLLが見つからないという内容のFileNotFoundExceptionが投げられるというものです。
プロジェクトCにもNuGetからライブラリBをインストールすると、例外はなくなります。
依存している外部ライブラリが一つなら良いのですが、複数あるとプロジェクトを作成する度にインストール
するというのはかなり面倒です。
.NET Frameworkを使用していた時はDLLを実行ファイルのあるフォルダに入れるだけで動いていたのですが、
.NETではこのようなことは不可能なのでしょうか?

補足情報

Visual Studio 2019 Communityで.NET 5を使用しています。 TargetFrameworkはnet5.0-windows7.0です。 プロジェクト側のTargetFramework等の設定は一致させています。
ライブラリ側はDebug、x64でビルドしています。
スローされる例外は以下のようなものです。DLLが見つからないという内容のFileNotFoundExceptionが投げられています。
System.IO.FileNotFoundException: 'Could not load file or assembly '(アセンブリ名), Version=(バージョン), Culture=neutral, PublicKeyToken=null'. 指定されたファイルが見つかりません。'
プロジェクト側はDebug、x64でビルドし、 (プロジェクトファイルのあるディレクトリ)\bin\x64\Debug(実行ファイルが作成されるディレクトリ)にDLLを置いています。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/05/05 04:40

> ライブラリのDLLが見つからないという例外が投げられる > FileNotFoundExceptionが投げられるというものです 矛盾してますよ。 何にせよもっと詳しい情報がないと分かりません。
BeatStar

2022/05/05 05:04 編集

まず、「どういう開発環境でしょうか」? VC#(Visual Studio C#) で開発しているのかVSCodeや直接コマンドプロンプトからコンパイルしている(つまりdotnetコマンドを使ってコンパイル)のかで変わってきます。 VC#だとVC#が自動的にやってくれる処理はdotnetで直接やる場合は手動ですべてやらないといけなかったりとか。 さらに「どのように組んだか」や「どういうファイル・ディレクトリ構成か」? dotnetで直接やるとかだと.NET Frameworkのときと.NET5~6はまったく別のやり方になることもあります。
退会済みユーザー

退会済みユーザー

2022/05/05 05:38

ちなみに FileNotFoundException は「ディスク上に存在しないファイルにアクセスしようとして失敗したときにスローされる例外」で dll が見つからないということではありません。
Rei_312

2022/05/05 06:52

雑な質問文ですみません。 Visual Studio 2019 Communityで.NET 5を使用しています。 TargetFrameworkはnet5.0-windows7.0です。 プロジェクト側のTargetFramework等の設定は一致させています。 ライブラリ側はDebug、x64でビルドしています。 スローされる例外は以下のようなものです。DLLが見つからないという内容のFileNotFoundExceptionが投げられています。 System.IO.FileNotFoundException: 'Could not load file or assembly '(アセンブリ名), Version=(バージョン), Culture=neutral, PublicKeyToken=null'. 指定されたファイルが見つかりません。' プロジェクト側はDebug、x64でビルドし、 (プロジェクトファイルのあるディレクトリ)\bin\x64\Debug(実行ファイルが作成されるディレクトリ)にDLLを置いています。
退会済みユーザー

退会済みユーザー

2022/05/05 08:04

上のコメントは質問欄を編集して追加情報として追記願います。ここは「質問への追記・修正の依頼」の場ですので。 > プロジェクトCにもNuGetからライブラリBをインストールすると それは何なのか書いてください。 .NET Framework 版は GAC にあるが、.NET 5.0 版はないとか? Windows OS に依存するようなものだとそういうケースはあると思いますけど。
退会済みユーザー

退会済みユーザー

2022/05/06 00:20

> プロジェクトCにもNuGetからライブラリBをインストールすると それは何なのか書いてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問