2016-09-15 12 views
0

概要必要Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dllは私のプロジェクトのbinディレクトリにコピーされませんADALプラットフォームは、出力

詳細

IにコピーされないDLL次のものがある

  • クラスプロジェクトabc.settings標準的なもの以外の参照は事実上ありません。
  • abc.settingsための拡張ライブラリですとの間で(KeyVaultのnugetプラスKeyVaultの依存であるMicrosoft.IndentityModels.Clients.ActiveDirectory nugetを持って abc.settings.extensions.keyvault と呼ばれるクラスのプロジェクト他人)
  • abc.loginアプリケーションがエラーなしでOK構築しますが、両方abc.settingsへと

abc.extensions.keyvault参照を持っている abc.login と呼ばれるプロジェクト私が実行したときそれ、私はgモジュールMicrosoft.IdentityModel.Clientsを読み込めないことになるランタイム集計例外。 ActiveDirectory.Platform .dll

abc.settings.extensions.keyvaultのbinフォルダを見ると、Microsoft.IdentityModel.Clients。 ActiveDirectory.Platform .dllはMicrosoft.IdentityModel.Clientsと共に存在します。 ActiveDirectory .dll

abc.login \ bin \ x64を見ると、Microsoft.IdentityModel.Clientsが表示されます。 ActiveDirectory.dllただし、Microsoft.IdentityModel.Clientsはありません。 ActiveDirectory.Platformの.dll私は

  • を試してみました

    物事は、これらのファイル

  • 両方が特定のバージョンを確保するために、ローカルコピーが真であることを確認し(これらのDLLの両方に同じに設定されていることであり、彼らがいましたnugets
  • を再インストールtrueに設定)
  • はabc.loginプロジェクトでADAL nugetをインストール - これは動作するアプリケーションを引き起こし...しかしabc.extensions.keyvaulはreferencだったので、それがコピーされている必要がありますed。
  • 私はThis SOをチェックアウトしましたが、これがどのように動作しているか分かりません(1つのdllがコピーされ、もう1つはコピーされません)。この投稿は、この参照されているプロジェクトのdllの参照は決して動作しないはずです。

なぜ、どこで調査するべきですか?

ありがとうございます。

答えて

0

は、私が投稿したとして、この答えは答えとして出てくるしませんでした by this answer

興味深い解決が、かつて私が掲示んでした。

abc.extensions.keyvaultで、欠落している型の型を参照するクラスの1つにダミーメソッドを追加しました.... platform.dll、次にconsole.writelineその型の名前(この第2の部分は最適化を避ける)。

public static void DoNotDeleteOrUse() 
    { 
     var TypeOfSomething = typeof(Microsoft.IdentityModel.Clients.ActiveDirectory.AdalOption); 
     Console.WriteLine(TypeOfSomething.FullName); 

    } 

BLOCKQUOTE

+0

あなたは、24時間後の答えとしてそれをマークすることができます。 –

関連する問題