web-dev-qa-db-ja.com

Windows Azureサービスの構築時のパスが長すぎるエラー

Windows Azureにサービスを公開しようとしています。このサービスは単一のwebRoleで構成されていますが、リモートログイン機能を追加して公開し、数回ビルドしましたが、突然ビルドされなくなりました。それが与える理由は

以下の詳細:
「エラー56指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は260文字未満である必要があり、ディレクトリ名は248文字未満である必要があります。C:\ Program Files(x86)\ MSBuild\Microsoft\Cloud Service\1.0\Visual Studio 10.0\Microsoft.CloudService.targets 202 5 FileSystemCreator」

私はすべてのフォーラムに参加しましたが、CSPackコマンドラインを使用してサービスをパッケージ化しましたが、リモートデスクトップ接続用の証明書を構成するのに本当に苦労しています。この機能を利用したいと思います。 onStartイベントでいくつかのWebサイトを作成しています。IISをのぞいてみたいと思います。一部のMicrosoftの従業員は、これがバグであり、この問題の修正を約束していることに同意しています。 post を参照してください。 VS2010を使用していますが、このバグの修正方法がわかりません。

誰か助けてください、または私が助けを得ることができる場所に私を向けることができますか?.

42
smoothe

新しいソリューションで同じ問題に遭遇しました。

Eugenio Paceの応答が示唆するのとは異なり、エラーはAzureにデプロイするときにのみ発生します(Azure Compute Emulatorでプロジェクトを実行しているときではありません)。

Windows Azure Visual Studioプロジェクトファイル(* .ccproj)の最初のプロパティグループに次の行を追加してください。

<ServiceOutputDirectory>C:\Azure\</ServiceOutputDirectory>

末尾のスラッシュ(選択したパスはすべて)が必要なようです。このフォルダは、パッケージが存在する場合、作成するたびに削除されます。

この設定により、パッケージの作業フォルダーがより短い基本パスにリダイレクトされ、パスが長すぎるというエラーが回避されます。

クレジットは次の場所に移動します http://govada.blogspot.com/2011/12/windows-Azure-package-build-error.html

68
Michael Petito

一時的な開発ファブリックの保存に使用されるローカルフォルダーが長すぎる可能性があります。 Windows Azure-「パスが完全修飾された後、パスが長すぎる」エラーメッセージを解決する を参照してください。

8
Eugenio Pace

Node.jsプロジェクトをAzureにデプロイするときにも、この問題が発生していました。

これを修正するには、「TEMP」および「TMP」ユーザー環境変数をデフォルト値よりも短いものに変更する必要がありました。

私の場合、それらはデフォルトで%USERPROFILE%\ AppData\Local\Tempを指していたため、C:\ Tempに変更すると解決しました。

後でWindowsを再起動してください。

4
mohlman3

より良い解決策は、プロジェクトフォルダーへのシンボリックリンクを作成することです。これには、ファイルの移動やシステム変数の変更は必要ありません。管理者としてコマンドプロンプトを開き、これを実行します。

mklink /D C:\Dev C:\Users\danzo\Source\Workspaces

もちろん、 "C:\ Dev"を好きなように変更できます。上の長いパスを、soltions/projectsフォルダーのルートディレクトリに変更する必要があります。

2
Dan

開発ファブリックでクラウドサービスを実行すると、開発ファブリックは一時フォルダーを使用して、ローカルストレージの場所、キャッシュされたバイナリ、構成、診断情報、キャッシュされたコンパイル済みWebサイトコンテンツなどの多数のファイルを格納します。

デフォルトでは、この場所はC:\ Users \\ AppData\Local\dftmpです。

クレジットはマイクロソフトのジムナカシマに送られます: https://blogs.msdn.Microsoft.com/jnak/2010/01/14/windows-Azure-resolving-the-path-is-too-long-after-完全修飾エラーメッセージ/

一時フォルダを変更するには、user environment変数を作成する必要があります。

_CSRUN_STATE_DIRECTORY

次のような短い名前のディレクトリの値を指定します。

c:\AzureTemp

環境変数を再度読み取るためにVisual Studioを再起動することを忘れないでください

それは多くのコンパイルの問題を修正しました!

0
Emmanuel DURIN

AzureのUmbracoプロジェクトをパッケージ化しようとしたときに同じ問題が発生しました(https://github.com/WindowsAzure-Accelerators/wa-accelerator-umbraco/wiki/Deployment)。解決策は次のとおりです。 -nameパスとフォルダを「C:\ someshortname」に。

(これによって解決策が提案されました: link

0
LincolnV

上記の2つの方法をすべて試しました。

-TEMPおよびTMP環境変数を変更する

-<ServiceOutputDirectory>

うまくいきませんでした。私の場合、プロジェクト全体を短いパスC:\に移動して作業する必要がありました。 W7とVS12を使用しています。

0
vicgilbcn