0

私のコード(ワーカーロールを持っている)では、ディレクトリへのパスを指定する必要があります(サードパーティのライブラリがそれを必要とします)。ローカルでは、フォルダをプロジェクトに含めて、そのフルパスを指定しました。ただし、もちろん展開後は、新しいパスが必要です。フォルダ全体が展開されたことを確認するにはどうすればよいですか?また、フォルダへの新しいパスを決定するにはどうすればよいですか?

編集: Visual Studioのロールノードにフォルダーを追加し、次のようにアクセスしました:Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), "my_folder");

4

2 に答える 2

2

このディレクトリは読み取りと書き込みに使用されますか?はいの場合は、LocalStorageリソースを使用する必要があります。 https://azure.microsoft.com/en-us/documentation/articles/cloud-services-configure-local-storage-resources/は、これを使用する方法を示しています。

ディレクトリが読み取り専用である場合(つまり、バイナリまたは構成ファイルがある場合)、%RoleRoot%環境変数を使用して、パッケージがデプロイされたパスを識別し、プロジェクトで参照したフォルダーを追加することができます。 (つまり、%RoleRoot%\ Myfiles)。

于 2013-03-06T21:43:06.473 に答える
2

私は少し異なるアプローチを取ります。サードパーティのパッケージをWindowsAzureBLOBストレージに配置します。次に、役割の起動時に、パッケージをダウンロード/抽出して、ファイルを使用可能なローカルストレージに配置できます(アプリに必要なアクセス許可を付与します)。次に、同じローカルストレージ構成エントリを介してアプリケーションからその場所を活用します。

これにより、展開パッケージのサイズを縮小できるだけでなく、ソリューションを完全に再展開せずにサードパーティのコンポーネントを更新できるようになります。また、起動時にそれを活用することで、ロールインスタンスが破棄されて再構築された場合に備えて、ファイルがそこにあることを保証できます。

于 2013-03-06T21:52:54.290 に答える