に新鮮なWebAPIのプロジェクトを見動作ではありませんWebプロジェクトまたはWeb APIプロジェクトをデプロイする場合、$(TargetName)$(TargetExt).configが存在しないということは大きな問題ではありません。実行時に、IISはWeb.configを使用して、アセンブリに必要なすべてのものを把握します。
BUT!
あなたは*テストのための基礎として、WebアプリケーションまたはWeb APIプロジェクトを使用しているなら、あなたは、いくつかの思わぬ障害を打つことができます。特に、アセンブリーバインディングのリダイレクト(MVCの腸内の何かの場合、Newtonsoft.Json 4.5.0に依存していますが、現在のバージョンは7.0.0です)。同僚はテストプロジェクトに依存していた別のアセンブリで同様の問題を抱えていました。
Visual Studio(Resharperなど)でテストを実行すると、すべてうまく動作します。ただし、テストがCIサーバーに到達し、nunit-consoleによって実行されると、アセンブリのロードエラーが表示されます。綺麗ではない。これは、説明されている動作のためにVSが適切な出力に.configファイルを巧みにコピーしていて、msbuildがそうでないためです。ただし、ビルド後のビルドイベントでこれを回避することができます。
コピー$(PROJECTDIR)のWeb.Config $(TARGETDIR)$(TargetNameは)$(TargetExtは)これは私の問題を解決した
をを.configリダイレクトを伴う私はそれが他の人を助けることを望む。
- 「なぜWebアプリケーションまたはWeb APIプロジェクトをテストプロジェクトとして使用するのですか?」と尋ねることがあります。 Web *プロジェクトは、.NETアセンブリとJavaScriptテストを扱うテストプロジェクトのベースとして、JavaScriptが適切に認識されている(構文の強調表示)ように扱うのがずっと楽になります。スクリプトフォルダには、 Javascript File "メニュー項目を使用するので、私はプレーンクラスライブラリプロジェクトの代わりにこれを使用することをお勧めします。
出典
2015-07-29 06:21:18
daf
これはこれに関連していますか? http://stackoverflow.com/q/21745579/130352 ...その質問とは反対の問題があるようですが、根本的な原因は同じかもしれません。 –