2017-02-19 3 views
1

.netコアプロジェクトのいくつかのファイルをプロジェクトに組み込み、ビルドアクションを "content"に設定して "always copy"に設定して参照したいプロジェクトからのそれらのファイルに。 .Netフレームワークでは、 "foo.zip"のような相対パスは、出力ディレクトリにコピーされたファイルを参照します。ただし、ファイルはプロジェクトディレクトリにコピーされ、DLLの出力ディレクトリにはコピーされません。例えば。 foo.zipはソースファイルの横に置かれ、出力dllは "bin/Debug | Release/netcoreapp1.0"になります。コード内の "foo.zip"の相対パスを使用すると、 "C:¥Program Files(x86)¥Microsoft Visual Studio¥2017¥Community¥Common7¥IDE¥foo.zip"というパスが参照されます。コア内の現在のproject.jsonパス

これは対象ですか?もしそうなら、私は出力のディレクトリにアクセスする方法はありますか?私が見つけた最も近いものはAppContext.BaseDirectoryです。これはnetcoreapp1.0ディレクトリを参照していますが、プロジェクトが公開されていると動作しません。

アップデート:いくつかの実験の後、コンテンツのビルドアクションがファイルはソースディレクトリに奇妙に見えます。期待どおりに "none"に設定し、出力ディレクトリにファイルをコピーしました。このパスはIDEディレクトリを指していますか?

+0

待機2週間.. vs2017 RCはこの問題を解消します。 – Thomas

答えて

0

あなたは彼がproject.jsonでセクションをpublishOptions使用することにより、出力にファイルをインクルードしたいと思う:

"publishOptions": { 
    "include": "foo.zip" 
}, 

ときは、そのままファイルは、その後、実行時に同じ相対位置にする必要がありますコードを書いています。

0

更新:いくつかの実験の後、コンテンツのビルドアクションが 奇妙に思えるソースディレクトリにファイルをコピーするための責任がありました。 "none"に設定すると、期待通りに実行され、ファイル が出力ディレクトリにコピーされました。このパスはIDEディレクトリを指していますか? が必要ですか?

コンテンツのビルドアクションは、ソースディレクティブにファイルをコピーするという事実が予想され、有用であることを意味します。あなたはMVCとWebサイトの研究開発をしているたとえば、あなたのビュー( .cshtmlファイル)は、次コントローラモデルディレクトリに、ビューであなたのソースディレクトリのディレクトリに位置していることが一般的です。

これでVisual StudioからWebアプリケーションを実行していて、HTMLページの一部のテキストを変更したいだけです。 Visual Studioの.cshtmlファイルを編集して保存するだけです。 変更はWebブラウザでページを更新した直後に表示されます。 Web開発に多くの時間を費やすことなく、Webアプリケーションをコンパイルして起動する必要はありません。

関連する問題