无法加载名为' Diagnostics的导入模块。'

时间:2014-12-29 18:24:24

标签: azure azure-cloud-services azure-diagnostics

VS 2013的构建打破了以下错误:

  

C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Windows   Azure Tools \ 2.5 \ Microsoft.WindowsAzure.targets(684,5):错误:   CloudServices58:无法加载名为“Diagnostics”的导入模块。

档案ServiceDefinition.csdef

<ServiceDefinition name="MYWEBPROJECTNAME.Azure"
                   xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"
                   schemaVersion="2014-06.2.4">
    <WebRole name="MYWEBPROJECTNAME" vmsize="Small">
        <Imports>
            <Import moduleName="Diagnostics" />
        </Imports>
    </WebRole>
</ServiceDefinition>

我已尝试从此处http://azure.microsoft.com/en-us/downloads/为VS 2013重新安装Azure SDK 2.5,但它没有帮助。

更新

它突破

  <ValidateServiceFiles
      ServiceDefinitionFile="@(SourceServiceDefinition)"
      ServiceConfigurationFile="@(SourceServiceConfiguration)">
  </ValidateServiceFiles>

ValidateServiceFiles任务调用Microsoft.ServiceHosting.Tools.MSBuildTasks.ImportResolver,但无法找到“诊断”模块。该任务从ImportedModules任务项数组中获取其模块。

更新2

看起来VS 2012/2013安装有些混乱。在运行“VS2012 x86 Native Tools命令提示符”(%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"" x86)时,msbuild显示此错误。运行“Microsoft Azure命令提示符 - v2.5”(C:\Windows\System32\cmd.exe /E:ON /V:ON /K "C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.5\\bin\setenv.cmd")时也一样。

  

C:\ SOMEPATH \ MYWEBPROJECTNAME.Azure.ccproj(72,3):错误MSB4019:   导入的项目“C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \   找不到Windows Azure Tools \ 2.5 \ Microsoft.WindowsAzure.targets“。   确认声明中的路径是否正确,以及该文件是否存在于磁盘上。

删除VS 2012并修复VS 2013没有帮助。

2 个答案:

答案 0 :(得分:5)

我必须从我的csdef文件中删除该元素才能让我的项目进行编译。然后我跟着这个http://msdn.microsoft.com/en-us/library/azure/dn186185.aspx#BK_Migration

答案 1 :(得分:1)

Azure SDK 2.4和Azure SDK 2.5之间存在一种诊断方法。您可以在https://msdn.microsoft.com/en-us/library/azure/dn186185.aspx#BK_Migration了解更改。也就是说,我没有受到更改影响的代码,但ServiceDefinition.csdef导入了诊断程序。

  <Imports>
        <Import moduleName="Diagnostics" />
        <Import moduleName="RemoteAccess" />
        <Import moduleName="Caching" />
    </Imports>

错误是在Microsoft.WindowsAzure.targets中支持的。由于我没有代码取决于这些模块导入,我只是注释掉了两个引用和构建的东西。