Specflow-名前「GenerationTargetLanguage」は現在のコンテキストに存在しません - ビルドエラー
質問
プロジェクトを構築しようとしてこのエラーが発生しています。私の機能ページで単語を強調し、このエラーを与えてくれます。
エラー1「GenerationTargetLanguage」という名前は、現在のコンテキストには存在しません
各機能でカスタムツールを実行しようとしましたが、エラーが2つのエラーからこれらのエラーの3つに移行しました。
Googleグループで問題を抱えているもう1人の人を見つけました。解決策はありません。
解決
Specflowの最新バージョンをインストールして、例のプロジェクトをコンパイルしようとしたときに同じ問題がありました。この例には、Specflow DLLの古いバージョンのローカルコピーがあるためです。新しいSpecflow-Feature-Fileコンパイラは、既存のSpecflow-DLLメソッドの署名を呼び出すためのSourcecodeを生成します。
私は、新しいインストールからのプロジェクトLib-DirectoryをDLLに置き換えることで、問題を解決しました。
他のヒント
さまざまな状況でまったく同じエラーに遭遇しました。私はもともと(2011年初頭)MSIインストーラーを使用してSpecflow v1.5.0.0をインストールしていましたが、今日はNugetを使用して特定のプロジェクトにバージョン1.8.1.0をインストールしました(使用しています(使用) Install-Package SpecFlow -ProjectName MyProject
).
Visual Studioのすべてのインスタンスを終了し、V1.8.1.0用にMSIインストーラーをダウンロードして実行し、Visual Studioを再び燃やし、既存の機能ファイルを削除して新しい機能ファイルを追加し、すべてが機能しました。
私はそれが壊れた変化であることがわかりました。 xyz.feature.csでenum GenerationTargetLanguage.csharpをプログラミングランガージに置き換える必要があります。