1

ASP.NET WebApplication と WCF サービスの両方で使用できる共有機能を含むプロジェクトがあります。

共有プロジェクトはクラス ライブラリであり、ファイルにいくつかの依存関係があります。

通常、これらの依存関係を解決するために呼び出すだけですがHostingEnvironment.MapPath()、このコンテキストでSystem.Webは利用できないため (クラス ライブラリであるため)、これは不可能です。

クラス ライブラリへの絶対パスを渡す唯一の現実的なオプションはありますか? これは、クラス ライブラリのルートではなく、それぞれのプロジェクトのルートになるため、さらに処理を行う必要があります。

4

1 に答える 1

0

最終的に、次の解決策を見つけました。

  • 依存ファイルのプロパティを設定します:出力ディレクトリにコピー = 新しい場合はコピー
  • これにより、ファイルがホスティング環境の bin フォルダーにコピーされます (したがって、クラス ライブラリから WCF サービスまたは WebApplication にコピーされます)。
  • HostingEnvironment.ApplicationPhysicalPath次に、この場所を返します

違いは、ビルド時にファイルがプロジェクト間でコピーされることです(私はこれを行ったことを知りませんcopy if newerでした)。したがって、アプリケーションのビンからファイルにアクセスできます (以前に試みたように、クラス ライブラリからではありません)。

于 2013-06-24T10:49:55.127 に答える