首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure部署中心在部署时生成错误

Azure部署中心在部署时生成错误
EN

Stack Overflow用户
提问于 2022-05-17 01:25:48
回答 4查看 849关注 0票数 10

当尝试使用将.NET API项目部署到Azure时,我面临一个错误。

这是一个错误:

代码语言:javascript
运行
复制
Project "D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj" on node 1 (Restore target(s)).
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242: SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.Sdk.Web". Exception: "System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\Program Files (x86)\dotnet\sdk-manifests'.
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at System.IO.FileSystemEnumerableIterator`1.CommonInit()
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at System.IO.Directory.GetDirectories(String path)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.FallbackForMissingManifest(String manifestId)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifestDirectories()
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<GetManifests>d__7.MoveNext()
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.Create(IWorkloadManifestProvider manifestProvider, String dotnetRootPath, String sdkVersion, String userProfileDir)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.DotNet.MSBuildSdkResolver.DotNetMSBuildSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext context, SdkResultFactory factory)
D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj : error MSB4242:    at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.ResolveSdk(Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio)""
Done Building Project "D:\home\site\repository\Api\Custom.Common.API\Custom.Common.API.csproj" (Restore target(s)) -- FAILED.

Build FAILED.

我能做些什么来解决这个问题?

EN

回答 4

Stack Overflow用户

发布于 2022-05-17 19:50:11

我通过在根项目文件夹中添加这个global.json文件来修复这个问题。

代码语言:javascript
运行
复制
{
  "sdk": {
    "version": "5.0.406"
  }
}

根据dotnet版本的不同,可能会有所不同。但不要使用第6版。

票数 6
EN

Stack Overflow用户

发布于 2022-05-17 20:22:52

在2022年5月14日至15日左右,一些Azure应用程序服务机器似乎发生了一些计划迁移,导致文件夹D:\Program Files (x86)\dotnet\sdk-manifests消失,如果需要解析项目中的.NET SDK引用,则会导致任何dotnet publish或任何msbuild调用失败:

在Azure团队正确修复此问题之前,可以使用以下解决方法:

  1. 将包含所有内容的sdk-manifests文件夹从安装了与发布脚本(可以通过global.json设置的)所需的.NET SDK版本相同的计算机上载到Azure上的D:\home部署根文件夹,该文件夹也通过%HOME%环境变量引用。
  2. 在"dotnet发布“或"msbuild”调用之前添加以下命令:

set DOTNETSDK_WORKLOAD_MANIFEST_ROOTS=%HOME%\sdk-manifests

票数 3
EN

Stack Overflow用户

发布于 2022-05-31 09:15:47

看起来SDKVersion6.0.201是有问题的版本。

在使用全局-json文件固定SDK版本之后,我能够进行部署。

如何插入sdk版本:https://learn.microsoft.com/en-us/dotnet/core/tools/global-json

代码语言:javascript
运行
复制
{
  "sdk": {
    "version": "6.0.102"
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72267221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档