Webプロジェクト内でASP.NETファイルにコードを追加しましたが、参照を追加する必要があるというエラーが発生しました。 VSメニューWebsite -> Add Reference...
に必要なリファレンスを追加しました。アセンブリからのVB.NETインポートが失敗しました
は今、私はエラーを取得する:
BC31091 Import of type 'ITransactionalMapper' from assembly or module 'MyAssembly.Core.dll' failed. Web(7) C:\Projects\project\src\PublicWeb\Web\MyFile.aspx.vb
私はWebプロジェクトのための参照のリストを見て、私は追加の参照がリストにありません。私は再びそれを追加しようとしました、そして、それは言う:
The Web site is already referencing the assembly 'MyAssembly.Core.dll'
だから私は、私はそれを削除し、再度追加してみてくださいしたかったことを決めました。私はどこかに追加されていても、それを削除する方法を見つけることができません。私はWeb.configファイルを調べましたが、アセンブリのリストには表示されません。
私は本当に問題が何であるか、なぜ私がそれを持っているのかは分かりません。私が追加したコードは別の参照アセンブリを使用しており、アセンブリはアセンブリが追加しようとしたアセンブリを参照している可能性があります。 ITransactionalMapper
は、私の知る限り、MyAssembly.Core.dll
に位置していなくても、MyAssembly.Database.dll
に位置しています。私はVS 2012でプロジェクトを開くとは、(プロジェクトが実際にVS 2012のプロジェクトです)、私の代わりに:
私は、プロジェクトが.NET 4.5
注ターゲットにされたVS 2015を使用していますエラーを取得してください:
Overload resolution failed because no accessible 'Put' accepts this number of arguments.
しかし、その番号を受け入れる必要があります。 ITransactionalMapper
パラメータが見つからない(下記の画像の最初のもの)Put
です。
更新:必要な2つの参照はVS 2015に表示が、私はVS 2012年に任意のアイデアをWebプロジェクトの参照を表示するとき、なぜそれが起こるのでしょうか?
私はMyAssembly.Core.dll
が競合の参照を持っていることを言って、ビルドの警告の束に気づきました。
Found conflicts between different versions of the same dependent assembly that could not be resolved.
また、バージョンも記載されています。しかし、私はまだどこにでもその参照が表示されません。
VS2012とVS2015は異なるバージョンのmsbuildを使用するため、異なるエラーが発生します。 ITransactionalMapperがMyAssembly.Coreにあるものに依存する場合は、参照が必要です。参照は、web.configではなく、プロジェクトファイル.vbprojに保存されます。重複を削除または見たい場合は、その中で行います。ソリューションエクスプローラで[すべてのファイルを表示]をクリックすると、プロジェクト内の参照が一覧表示されます。 – FloatingKiwi
@FloatingKiwi非Webプロジェクトの参照は常に表示されます。隠しファイルがないため、Webプロジェクトには「すべてのファイルを表示」ボタンはありません。 Webの参照は、ソリューションエクスプローラには表示されません。 – mbomb007
@FloatingKiwiマッパークラスは 'MyAssembly.Core.dll'にあり、' Put'を呼び出すクラスは 'MyAssembly.Some.Other.Core.dll'にあります。それが原因だろうか? – mbomb007