build立Windows Azure服务时path太长错误

我一直在试图将我的服务发布到Windows Azure上。 该服务由一个webRole组成,但是我添加了发布它的远程loginfunction并构build了它几次,现在突然它不会构build。 它给出的原因是

详情如下:
“错误56指定的path,文件名或两者都太长。完全限定的文件名必须less于260个字符,目录名称必须less于248个字符。C:\ Program Files(x86)\ MSBuild \ Microsoft \ Cloud Service \ 1.0 \ Visual Studio 10.0 \ Microsoft.CloudService.targets 202 5 FileSystemCreator“

我已经去了所有的论坛,我已经使用CSPack命令行打包服务是好的,但我很难configuration远程桌面连接的证书,我想利用这个function,因为我在onStart事件中创build一些网站,我想窥探IIS。 一些微软员工确实认为这是一个错误,并已承诺解决这个问题,请参阅后 。 我正在使用VS2010,我不知道如何解决这个错误。

任何人都可以请帮忙,或者指给我一个我可以得到任何帮助的地方。

我遇到了一个新的解决scheme相同的问题。

请注意,与Eugenio Pace的回复暗示的不同,只有在部署到Azure时(而不是在Azure计算模拟器中运行项目时)才会出现此错误。

尝试将以下行添加到Windows Azure Visual Studio项目文件(* .ccproj)的第一个属性组中:

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

尾随斜线(无论你select的path)似乎是必需的。 每次创build包时,该文件夹都会被删除。

此设置似乎将包的工作文件夹redirect到较短的基本path,防止path太长的错误。

相关信息请访问: http : //govada.blogspot.com/2011/12/windows-azure-package-build-error.html

用于存储临时开发结构的本地文件夹可能太长。 请参阅Windows Azure – 解决“完全限定后的path太长”错误消息 。

当将一个Node.js项目部署到Azure时,我也遇到了这个问题。

为了解决这个问题,我必须将我的“TEMP”和“TMP”用户环境variables更改为比其默认值更短的值。

在我的情况下,他们默认指向%USERPROFILE%\ AppData \ Local \ Temp,将它们更改为C:\ Temp解决了它。

确保你重新启动Windows之后。

更好的解决scheme可能是创build一个符号链接到您的项目文件夹。 这不需要移动文件或更改系统variables。 以pipe理员身份打开命令提示符并运行以下命令:

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

很明显,你可以把“C:\ Dev”改成任何你想要的,你需要把上面的更长的path改成你的soltions / projects文件夹的根目录。

我尝试了以上两种方法:

改变TEMP和TMP环境variables

<ServiceOutputDirectory>path

并没有工作。 就我而言,我不得不把整个项目移到一个更短的pathC:\并工作。 我正在使用W7和VS12。

在开发结构上运行云服务时,开发结构使用临时文件夹来存储多个文件,包括本地存储位置,caching二进制文件,configuration,诊断信息和caching编译的网站内容。

默认情况下,这个位置是:C:\ Users \\ AppData \ Local \ dftmp

相信微软的Jim Nakashima: https : //blogs.msdn.microsoft.com/jnak/2010/01/14/windows-azure-resolving-the-path-is-too-long-after-being-fully-合格错误消息/

为了更改临时文件夹,必须创build一个用户环境variables:

它被命名为_CSRUN_STATE_DIRECTORY

给它一个短命名目录的值,如:

 c:\AzureTemp 

不要忘记重新启动Visual Studio,以便再次读取环境variables

它修复了许多编译问题!