最近、Azure 用のクラウド サービス パッケージを作成するために、Teamcity で新しいビルド構成をセットアップしました。msbuild でプロジェクトをビルドした後、cspack.exe (Azure SDK 2.2) を呼び出してパッケージを作成しています。
これは私が使用しているコマンドです:
cspack.exe "ServiceDefinition.csdef"
"/out:%Package.RelativePath%package.cspkg"
"/role:MyWebRole;%teamcity.build.checkoutDir%\t\%build.number%;bin\MyProject.Web.dll"
"/sites:MyWebRole;MyWebSite;%teamcity.build.checkoutDir%\t\%build.number%"
これにより、正しいと思われる cspkg が作成されます。このパッケージを Azure ストレージにアップロードし、webrole の更新を実行しました。しかし、しばらくすると、そのスタートアップ タスクの実行中にエラーが表示されます。その後、webrole を再起動するループが発生します。
考えられる原因を探しているときに、元のプロジェクトでは approot のディレクトリの 1 つにスペースが含まれていることに気付きましたが、パッケージでは %20 にエンコードされています。ディレクトリ名を元の名前に変更し、webrole を再度更新すると、問題はなくなりました。
誰かがこの問題に精通しており、これを解決する正しい方向に私を向けることができますか?