Visual Studio无法创建Docker镜像。

3
我正在使用Visual Studio 2017企业版开发一个.NET Core项目。 我已经向该项目添加了Docker支持,但是当我按下F5键时会出现以下错误: “发送请求时发生错误”。 该错误发生在Microsoft.VisualStudio.Docker.Compose.targets (327,5)中。 寻求任何帮助! 更新 我发现VS试图向aka.ms发送请求,这是问题的根源。 由于这个请求,在封闭的网络环境中我无法在VS中启动它。但我可以使用命令行运行它。
docker-compose

你能添加一些细节吗:问题看起来无法解决。Docker-compose可以从命令行工作吗? - Roman Patutin
不,我遇到了这个错误: 无法加载源https://api.nuget...的服务索引 我已经更改了NuGet.Config,只包含所需的存储库。 - blackcoffee1338
我能够通过docker-compose up命令行运行它,并且它完美地工作,但我仍然无法从Visual Studio中运行它。我得到了相同的错误... - blackcoffee1338
2个回答

4
我找到了解决我的问题的方法。
当你尝试使用docker支持构建一个项目时,Visual Studio会尝试从aka.ms下载一个名为GetVsDbg.ps1的文件。所以要解决这个问题,你需要手动下载该文件并将其放置在%temp%文件夹中。
之后,你需要注释掉最后一部分,也就是尝试从vsdebugger.azureedge.net下载某个zip文件的部分。然后,你需要找到你的vsdbg版本(当你尝试构建你的.net core项目时,你可以在输出->构建部分找到它),并浏览到:

https://vsdebugger.azureedge.net/vsdbg-(Version)/vsdbg-linux-x64.zip

版本号看起来像这样:15-1-11011-1。下载zip文件后,将其解压到C:\Users(用户名)\vsdbg目录下。
请务必删除该项目的现有容器(如果有),然后重新构建该项目。
这解决了我的问题,希望能对其他人有所帮助!

1
对于未来的读者 - 这里有一个更详细的试验和错误步骤指南(https://github.com/dotnet-architecture/eShopOnContainers/issues/224) - StuartLC
“更详细的试错”并不能解决任何未来读者的问题。相反,它描述了一个早已过时的GetVsDbg.ps1代理修复程序。 - Mike Manard

1

三年后,如果您的安全软件在VS2019准备orchestration时阻止执行所述Power Shell脚本(GetVsDbg.ps1),该问题仍然存在。

不过,有一个比答案更简单的解决方法,即欺骗VS2019认为最新版本的remote debugger已经放置在下面的目录中,称为target directory

%userprofile%\vsdbg\vs2017u5

注意:这个解决方法假设所有调试会话都是在相同的操作系统上执行的。

步骤:

  1. 收集所需信息 - 从Containers Tools输出中获得工具的版本和目标Runtime ID

信息:使用 vsdbg 版本 '16.9.20111.1'
信息:使用 Runtime ID 'linux-x64'

  1. 在 Visual Studio 中关闭解决方案。

  2. 从上述网址模板下载所需的调试器。

    https://vsdebugger.azureedge.net/vsdbg-(版本)/vsdbg-(Runtime ID).zip

    版本 中的 . 改为 -

  3. 解压缩并复制到目标目录(如上所述)。

  4. 目标目录中创建一个名为success_rid.txt的文件,内容为(Runtime ID)

  5. 目标目录中创建一个名为success_version.txt的文件,内容为(Version)

完成。现在可以重新打开解决方案,在下一次编排时应该会产生类似以下的结果:

信息:VsDbg的最新版本已存在。跳过下载

这意味着GetVsDbg.ps1现在假定已经具备了调试所需的内容。如果'docker-compose'正确,那么所有容器应该按预期准备好。


谢谢你把这个问题重新提出来!我仍在以同样的方式苦苦挣扎。每当有新版本时,我都会偶尔搜索如何使流程更少手动操作(基本上是每次我再次感到沮丧时)。 - Mike Manard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接