使用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进程的帮助很少。
答案 0 :(得分:3)
此问题的任意性质是因为如果有人在Azure门户上删除了云服务,则本地计算机上的构建不起作用。这是因为ValidateServiceFiles函数检查您的发布配置文件是否包含对Azure门户上现有云服务的引用。
但是错误消息没有提到哪个项目有问题,只列出所有项目。
因此,右键单击每个云项目,然后单击“发布”并检查是否没有任何红色十字架。
答案 1 :(得分:1)
经过多次搜索,我找到了答案。我有3个引用来发布在磁盘上实际不存在的配置文件,如蓝色问号所示。