2012-01-07 17 views
3

これは本当にイライラしています!私はプロジェクト全体で共通のコードライブラリを使用しています。しかし何らかの理由で私の拡張機能がこのプロジェクトで動作しなくなりました。私は他のプロジェクトをたくさん使ってきましたが、今は何が止まっているのか分かりません。 Grr!intellisenseでは拡張機能が見つかりましたが、コンパイル時には拡張されません

ここに拡張の例がありますので、どのように設定されているかを確認できます。

public static string ToAlphaNumeric(this string InputString) 
{ 
     string OutputString = string.Empty; 
     OutputString = Regex.Replace(InputString, @"[^a-zA-Z_0-9]+", "-"); 
     OutputString = Regex.Replace(OutputString, "[_]+", "-"); 
     OutputString = OutputString.Trim(new char[] { '-' }); 
     return OutputString; 
} 

私の現在のプロジェクトはv4.0で、私のコードライブラリは3.5ですが、私は4.0にアップグレードしようとしましたが、それを修正しませんでした。 web.configで定義することができないため、すべてのページの先頭に参照を追加します。

私のページでは間違いなく参照されており、インテリセンスで見つかっています。しかし、私がプロジェクトをビルドすると、 '文字列'に 'ToAlphaNumeric'の定義が含まれていないというエラーが表示されます。しかし、それはありません!このエラーが発生するのはなぜですか?

私が必要な情報を見逃してしまった場合はお詫び申し上げます。考えられるすべてを含めるようにしました。

ありがとうございます!

+0

コードライブラリのアセンブリへの参照を追加する必要がありますか? –

答えて

2

ソリューションが正しくないか、または完全でないプロジェクト依存関係を持つ場合:

オブジェクトはインテリジェンスによって知られているように見えますが、再構築で失敗し、認識されないと主張してエラーが発生することがあります。

この場合、それぞれのプロジェクトを依存関係の順番でクリーンなソリューションと「ビルド」するか、ソリューションプロジェクトの依存関係を修正します。

+0

という問題の回避策になります。 "混合モードアセンブリはランタイムのバージョン 'v2.0.50727'に対して作成されています。追加の構成情報なしで4.0ランタイムにロードすることができます "。 NET 2.0を対象としたときに同じ問題が発生しました。 .NET 3.5をターゲットにするときに機能します。 私は問題を引き起こしている3.パーティーのdllを参照しています。しかし、それを理解するには時間がかかった:-( – bitestar

3

このエラーの二つの最も可能性の高い原因は、拡張子がどこにあるか、あなたが名前空間の使用を追加するのを忘れ

  • 拡張子が定義されているプロジェクトへの参照を追加するのを忘れ
    • です

    どのようなものだったのかを追跡する最も簡単な方法は、拡張構文を削除し、ストレート静的呼び出しを行うことです。

    TheNamespace.TheExtensionType.ToAlphaNumeric(myString) 
    

    コンパイルでは、TheExtensionTypeは利用できません。それがうまくいくならusingは間違っています。それが失敗すると、アセンブリへの参照がありません。明白な答え(NO使用して\なし参照)の他に

  • +0

    それはどちらのものでもなく、参照はありますし、使用も間違いありません。私が言うように、私は他のプロジェクトでこれを使用しており、すべて同じものを設定しています。私はメインプロジェクトを4から3.5に格下げし、彼らは再び働き始めた。理由を忘れてしまった! – Jon

    +0

    @Jonそれは、フレームワークのさまざまなバージョンをターゲットとするプロジェクト間の問題のように聞こえます。私はそれがなぜシステムの他のビルド/警告なしにそれを引き起こすのかわからない。すべてを4.0に移動して何が起こったのを見ましたか? – JaredPar

    +0

    ええ、基本的に私がクラスライブラリを4.0にアップグレードしたとき、すべてが4.0だったのでエラーが出ました。それがこのことをとても奇妙なものにしています。それがインテリセンスにあったという事実は、コードに誤りがないことを示していると思われますが、それは構築されません! – Jon

    0

    ...この問題の無い本当の答え

    内のソリューションまたはプロジェクトを「再構築」しようとしている - 3.5に両方のプロジェクトを設定し

    0

    Google検索で同様の症状が発生しました。

    誰かがフレームワーク4.5を使用するようにプロジェクト参照を更新しましたが、参照アセンブリがまだ4.0の場合、この問題が発生しました。

    すべてのアセンブリを同じバージョンに更新することで修正されました。

    0

    私の問題は、intellisenseはエラーもビルドエラーも表示されていませんでしたが、実行時には例外が見つかりませんでした。

    幸い私は警告タブをチェックしましたが、この警告をクリックして設定ファイルのバインディングを修正するか、デフォルトのバインディングを使用するような警告が表示されました。私はそれをクリックして、ビオラ、すべてが働いた。

    Visual Studio 2015 - ASP.Net MVC 5 on .Net 4.6.1

    関連する問題