背景: 私はデータベースを持つASP.NET MVC3アプリケーションを持っています。私はまた、(他のものの中で)Webアプリケーションのデータベースを初期化する複雑なコンソールアプリケーションを持っています:生成、制約の追加、sprocsの追加、トリガー、シードの追加など。我々のアーキテクチャではセンス)。ホスティング環境外からのASP.NET MVCパスへのアクセス
問題: コンソールアプリは明らかにそうなどHostingEnvironment
、MapPath
、HttpContext.Current
、Server.MapPath
、~
、へのアクセス権を持っている。しかし、私はからWebアプリケーションのパスへのアクセスを必要としない、ホスト環境で実行されていませんコンソールアプリ。また、コンソールアプリケーションはWebアプリケーションを呼び出し、通常はこれらのクラスを使用しますが、これらはすべてnullまたは未定義です。
質問: 私はホスティング環境のパスメカニズムにアクセスできるように、これらのクラスの1を偽装するためにいくつかの方法は、それが動作していないにもかかわらず、ありますか?
私はコンソールアプリケーションに必要なすべてのパスをハードコードできますが、それは非常に望ましくありません。
ユニットテストにも同じ必要性が要求されるため、これが可能でなければならないという印象を受けました。
TIA
「コンソールアプリケーションからウェブアプリのパスにアクセスする必要があります」 - これはどういう意味ですか?どちらのパス、なぜですか? – bzlm
@bzlm:Webアプリケーションのルートパス(〜)、そのイメージディレクトリ、dbディレクトリ(複数)、一時ディレクトリ、さまざまなcsvリポジトリ、クライアントファイルなど...コンソールアプリケーションはさまざまなバックエンドシステムからデータを取得し、 Webシステムが見つかる正しい場所に置いてください。これをきちんと行うためには、Webアプリケーションで使用するパスにアクセスする必要があります。それ以外の場合はすべてハードコードしなければなりません。また、いくつのサブシステムが呼び出されると、問題につながります。 – Matt0