【问题标题】:Cannot load imported module named 'Diagnostics.'无法加载名为“诊断”的导入模块。
【发布时间】:2015-02-25 22:38:35
【问题描述】:

VS 2013 的构建中断并出现以下错误:

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

文件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 工具\2.5\Microsoft.WindowsAzure.targets”。 确认声明中的路径正确,并且该文件存在于磁盘上。

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

【问题讨论】:

  • 祝你好运,打同样的仗。

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


【解决方案1】:

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

【讨论】:

  • 那篇文章似乎不再可用...我看到“缓存”存在这个问题
【解决方案2】:

在 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 支持该错误。由于我没有依赖于这些模块导入的代码,因此我只是将两个引用注释掉并且构建良好。

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 2014-05-10
    • 1970-01-01
    • 2019-11-21
    • 2020-04-29
    • 2021-08-16
    • 2019-05-12
    • 2021-02-22
    • 2021-09-02
    相关资源
    最近更新 更多