2011-12-08 11 views
3

私は内部的な使用のためのいくつかの内部メソッドを持っている共通DLLを持っています。InternalsVisibleToはすべてのアセンブリで機能しません。いくつかの作品、いくつかの作品はありません

[assembly: InternalsVisibleTo("WebServices, PublicKey=00240...b59a0")] 
[assembly: InternalsVisibleTo("UnitTests, PublicKey=00240...dcf98")] 
[assembly: InternalsVisibleTo("PATs, PublicKey=00240...e65cf")] 

これらの内部メソッドはユニットテストとのPATが、Webサービスとの完璧な仕事:私も3つの他のプロジェクトのWebサービス、ユニットテストとのPAT共通プロジェクトのAssemblyInfo.csで

を持ってのほかに、私はこれらの行を追加しました。 WebServiceプロジェクトにコードを書くとき、IntelliSenseボックスでこれらの内部メソッドを見ることができるのは奇妙です。エラー・アラートは、私はコードを書くが、私はプロジェクトをビルドするとき、私はこのエラーメッセージを得たときにありません

内部メソッド名

での定義が含まれていません

「共通」その時、私はアセンブリ名が何らかの方法で間違っていると思った。そして、私はそれは確かに本当に間違っているようにしよう:

[assembly: InternalsVisibleTo("WebSer, PublicKey=00240...b59a0")] 

そして、Webサービスプロジェクトでは、それは私がこのメッセージでコンパイルすることなく、共通の内部メソッドを使用してラインですぐに赤に変わり:

アクセスできません。内部メソッド「内部メソッド名」ここ

だから、私は、アセンブリ名が正しいことだと思うが、私は自分のWebサービスプロジェクトの内部メソッドを使用することはできませんなぜ私はまだ知りません。

+0

私はちょうどこれのためのいくつかの手がかりを見つけました。私のWebServiceプロジェクトでは、ワークフローを使用しました。すべてのワークフローを削除すると、ビルドは成功しました。そして、プロジェクトにワークフローを再追加します。上記のエラーが発生します。ワークフローを使用する組立のフレンドリーな組立に何が問題なのか誰かが知っていますか? –

答えて

0

あなたがここに与えた最初のエラーメッセージが間違った名前空間を使用していることを示唆している:「一般的な」「内部メソッド名」

の定義が含まれていません

それは方法ことを意味しますあなたはそれを使用したくありません。おそらく他の名前空間にあります。特に、クラスに拡張メソッドを使用している場合は特にそうです。

あなたはおそらく気づいてきたように、あなたが持っている2番目のエラーは、InternalsVisibleTo式に間違った名前を入れた後、異なっている:

がここの内部メソッド名 '

を内部メソッドにアクセスすることはできません

2番目のエラーは、内部を他のDLLに公開することに関連しています。

Visual Studioがクレイジーになって再起動/再構築で十分である可能性もあります。

関連する問題