【发布时间】:2015-04-23 06:34:58
【问题描述】:
我们的代码位于Visual Studio Online TFS 存储库中,
我们构建并部署到 Azure。我们有一个使用托管构建控制器的Build Definition,还有一个TfvcContinuousDeploymentTemplate.12.xaml
构建过程模板,配置为部署到我们的 Windows Azure 部署环境。
在我们将 Azure 云服务 VM 从 Small 升级到 Standard_D1 大小之前,一切正常。 我们对 ServiceDefinition.csdef 中的 WebRole 进行了适当的更改:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="PriceCalv3CS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
<WebRole name="PriceCalv3CS.SPA" vmsize="Standard_D1">
...
</WebRole>
</ServiceDefinition>
如果我们从本地 Visual Studio 2013 发布和部署,一切仍然正常......但不是从 Visual Studio Online。
VSO 成功编译解决方案,但在尝试部署时抛出此异常:
Exception Message: Invalid enum value 'Standard_D1' cannot be deserialized into type 'Microsoft.TeamFoundation.Deployment.Workflow.AzureManagement.v1_7.InstanceSize'. Ensure that the necessary enum values are present and are marked with EnumMemberAttribute attribute if the type has DataContractAttribute attribute. (type SerializationException)
Exception Stack Trace: at System.Runtime.Serialization.EnumDataContract.ReadEnumValue(String value, Int32 index, Int32 count)
at System.Runtime.Serialization.EnumDataContract.ReadEnumValue(XmlReaderDelegator reader)
at System.Runtime.Serialization.EnumDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context)
...
VSO 似乎无法处理 Azure 现在支持的新(ish)实例大小名称。
我们正在使用Microsoft Azure SDK for .NET (VS 2013) - 2.5.0,
并尝试升级到最新的 2.5.1,但这对 VSO 没有帮助。
我看到的关于这个问题的其他参考资料在social.msdn 其中有一个 bug opened 已关闭且没有解决方案。
拥有similar error 的人能够通过删除他们的旧版本来解决它, 但这对我不起作用。我尝试创建一个全新的构建定义,但这也无济于事。
似乎我们需要告诉 VSO 尊重这些新的实例大小。但是怎么做呢?
更多:我认为 VSO 正在解析 ServiceDefinition.csdef,并在 vmsize="Standard_D1" 上窒息,但事实并非如此。我将其更改为vmsize="Small" 甚至vmsize="broken" 并且错误消息仍然抱怨“无效的枚举值'Standard_D1'”。
【问题讨论】:
标签: azure tfs azure-devops