在Azure中,如何解决错误“ValidateServiceFiles任务意外失败”?

时间:2014-04-04 18:37:42

标签: validation visual-studio-2012 azure

使用Azure SDK 2.2版时,我的Visual Studio 2012错误列表中会显示此错误。

它还引用了一个文件:

        Error   5   The "ValidateServiceFiles" task failed unexpectedly.
System.IO.FileNotFoundException: Could not find file 'C:\Project\Data.Contracts\ServiceConfiguration.Local.cscfg'.
File name: 'C:\Project\Data.Contracts\ServiceConfiguration.Local.cscfg'
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at Microsoft.ServiceHosting.Tools.Internal.Translations.Translate.ServiceConfigurationFromFile(Boolean useInternalSchema, String serviceConfigurationFile, ValidationHandler validationHandler)
   at Microsoft.ServiceHosting.Tools.MSBuildTasks.ValidateServiceFiles.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.2\Microsoft.WindowsAzure.targets  669 5   Azure.

文件肯定存在且具有正确的属性。奇怪的是文件不在给定的路径中,它在另一条路径中。就好像ValidateServiceFiles进程混淆并在错误的文件夹中查找文件一样。

重新加载Azure辅助角色项目和云项目无济于事,也无法重新启动计算机。有时可以通过在解决方案中手动构建每个云项目来取得进展。但是错误总是会返回,有时在从源代码控制中获取最新信息之后,尽管它本质上是随机的。

详细的构建日志显示了这一点:

58>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.2\Microsoft.WindowsAzure.targets(3259,5): warning MSB3026: Could not copy "ServiceConfiguration.Local.cscfg" to "bin\Debug\ServiceConfiguration.cscfg". Beginning retry 2 in 1000ms. Could not find file 'ServiceConfiguration.Local.cscfg'.

但这没有用。该文件存在于项目中的正确位置(不是错误消息中给出的路径)

互联网上关于如何调试ValidateServiceFiles进程的帮助很少。

2 个答案:

答案 0 :(得分:3)

此问题的任意性质是因为如果有人在Azure门户上删除了云服务,则本地计算机上的构建不起作用。这是因为ValidateServiceFiles函数检查您的发布配置文件是否包含对Azure门户上现有云服务的引用。

但是错误消息没有提到哪个项目有问题,只列出所有项目。

因此,右键单击每个云项目,然后单击“发布”并检查是否没有任何红色十字架。

enter image description here

答案 1 :(得分:1)

经过多次搜索,我找到了答案。我有3个引用来发布在磁盘上实际不存在的配置文件,如蓝色问号所示。

enter image description here