web-dev-qa-db-ja.com

Unity 3Dで使用する場合、Visual Studio 2017に参照の追加がありません-Npgsql.dllが必要です

Unity 2017とVisual Studio 2017をインストールしました。ソリューションエクスプローラーを介してVisual Studioプロジェクトに外部DLLを追加しようとしています。参照を右クリックすると、[参照の追加]オプションが完全に欠落しています!

NpgSQLを使用しようとしています。したがって、npgsql.dllを追加する必要があります。

誰もが光を与えることができますか?

11
JamesHoux

Add Reference...は、この場合は別の場所にあります。


Unityでやるべきこと:

Pluginsという名前のフォルダーをあなたのAssetsフォルダー。 (アセット\プラグイン...)

次に、DLL=をこのプラグインフォルダーにコピーします。Windowsエクスプローラーを使用するか、次のようにUnityエディターのフォルダーにドラッグします。

enter image description here


Visual Studioで行うこと:

以下に示すように、プロジェクトでAnalyzersをクリックしてから、Projectメニューから、Add Reference .. 。

enter image description here

さて、BrowseをDLLに:

enter image description here

そして...そこにあります:

enter image description here

25
Brien Foss

Brienの回答を受け入れました(ありがとう、Brien!)。

Npgsql.dllに関連する独自の回答を追加します。これは、インターネット上で一般的なドキュメントの質が低いことが明らかなためです。 Npgsql.dllについてGoogleからここにアクセスした場合は、次をお読みください。

Unity(何らかの不明な理由により)は、アプリケーションmono/2_0フォルダー内の独自のnpgsql.dllにバンドルされています。一部の人々はこれとの矛盾を報告しています。

現在、npgsql.dllバージョンの多くはUnityで動作しません。 Unityのアセットにそれらを含めようとすると、UnityはTypeエラーをスローします。これが、C#で参照としてファイルを追加する必要があると私に思わせた原因です。これが私がここに来て、リファレンスの追加について質問した理由です。しかし、Unityでは、これは単純に間違っていました。

私の知る限り、Unityはすべてのプロジェクトのプロパティと参照を管理することを主張しています。マネージDLLとアンマネージDLLの両方をUnityアセットを介して追加する必要があります。 Visual Studioプロジェクトのプロパティでさえ、Visual Studio for Unity内で変更することはできません。また、たとえばコンパイラの警告を無効にするために.csprojファイルを編集しようとすると、Unityは次回Unityプロジェクトをロードするときに.csprojファイルを完全に上書きします。

Npgsql.dllをUnityで動作させるのに問題がある人は、npgsql.dllをUnityアセットにドロップする適切なUnityワークフローを使用する必要があります。エラーが発生した場合は、npgsql.dllバージョンの競合です。最初に他のバージョンのdllを試してください。

この紳士は、名前空間の競合を解決するためにUnity固有のビルドを提供しています(Githubリンクのbinフォルダーからdllをプルするだけです): nity NPGSQL.DLL

Unity 2017では現在、実験的な設定として.NET 4.6に変更できます。 npgsql.dllの新しいバージョンを適切に動作させるために、この設定を使用することをいじくりましたが、断続的な結果を報告します。今のところ、Unitynpgsql.dllの問題を解決しました。これは古いビルドなので、サポートされていない必要な機能が実行されないことを願っています。もしそうなら、私はおそらくそれらを回避します。

Unityでnpgsql.dllを動作させようとする他の誰かへ:絶望しないで、バージョンの競合を解決してください。また、これに関する別の関連する最近のスレッドもあります: Barebones Master Server Npgsql.dll Issue-January 2018

5
JamesHoux