我最近在Teamcity中设置了一个新的生成配置,以为Azure创建一个Cloud Services程序包。使用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中的目录之一在我的原始项目中包含一个空格,但在编码为%20的包中包含一个空格。将目录名称更改为原始名称并再次更新webrole之后,问题消失了。
有谁熟悉这个问题,可以指出正确的方向解决这个问题吗?
%20仅进入软件包,而部署时不进入。您是否已RDP担任Cloud Service Role,以检查文件夹名称是否带有%20?因为看起来,%20仅添加到软件包中,而在解压缩时将其删除。因此,重启问题可能是其他问题。
顺便说一句,这适用于所有非URI字符,包括应放入包装中的Unicode字符。这是开放包装公约规定的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句