1

実行時にロードされる外部 .dll を使用する C# アプリケーションを作成しました。この .dll をアプリケーションの bin ディレクトリにコピーすると、アプリケーションは正常に動作します。他のアプリケーションも外部の .dll を使用するため、すべてのアプリケーションが同じ .dll を使用するように、システム上で一度だけ使用したいと考えています。

そこで、対応するパスを PATH-Environment 変数に追加しました。

bin ディレクトリから .dll を削除してアプリケーションを起動すると、

System.TypeLoadException: Failed to resolve the Type

Visual Studioで提案された方法 : dll へのパスを設定する方法は? 動作しません

4

2 に答える 2

0

自分のマシンだけで、CopyLocal または GAC を使用したくない場合は、いくつかの方法があります。

  • bin フォルダー内の dll へのシンボリック リンクを作成します。

MKLINK bin\mydll.dll C:\path\to\dlls\mydll.dll

  • DEVPATH 環境変数を使用して、アセンブリの場所を指定します

以下を構成ファイル (グローバル設定が必要な場合は machine.config) に追加します。

<configuration>
    <runtime>
        <developmentMode developerInstallation="true"/>
    </runtime>
</configuration>

次に、環境変数 DEVPATH を作成します

SET DEVPATH=C:\path\to\dlls;C:\Path\to\somewhereelse

DEVPATH に少なくとも 1 つの有効なパスが含まれていることを確認してください。そうしないと、起動時にすべての .Net プログラムがクラッシュし、奇妙なエラー メッセージが表示されます。

于 2013-09-18T10:57:07.397 に答える