- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行 basic dotnetcore example在 docker 中,它工作正常。一切都建立起来了,我的 API 也可用了。它还会聆听完美的实时变化。您可以在问题底部找到 Dockerfile 和 docker-compose。
但是,我正在尝试使用 Visual-studio-code(内部人员和常规)结合 omnisharp(默认 c# 扩展)来处理代码,但它一直在我身上崩溃。
它会工作几秒钟,然后让我遇到 180 多个“问题”,所有这些都是错误的(应用程序工作..)
在我看来,输出没有任何指示(从重启到崩溃):
Starting OmniSharp server at 7/3/2018, 11:52:55 AM
Target: /home/mastermindzh/code/
OmniSharp server started
Path: /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/run
PID: 2323
[info]: OmniSharp.Stdio.Host
Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 1 MSBuild instance(s)
1: StandAlone 15.0 - "/home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to '/home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: StandAlone 15.0 - "/home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin"
MSBuildExtensionsPath = /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild
BypassFrameworkInstallChecks = true
CscToolPath = /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin/Roslyn
CscToolExe = csc.exe
MSBuildToolsPath = /home/mastermindzh/.vscode-insiders/extensions/ms-vscode.csharp-1.15.2/.omnisharp/1.30.1/omnisharp/msbuild/15.0/Bin
[info]: OmniSharp.Cake.CakeProjectSystem
Detecting Cake files in '/home/mastermindzh/code/'.
[info]: OmniSharp.Cake.CakeProjectSystem
Could not find any Cake files
[info]: OmniSharp.DotNet.DotNetProjectSystem
Initializing in /home/mastermindzh/code/
[info]: OmniSharp.DotNet.DotNetProjectSystem
Auto package restore: False
[info]: OmniSharp.DotNet.DotNetProjectSystem
Update workspace context
[info]: OmniSharp.DotNet.DotNetProjectSystem
Resolving projects references
[info]: OmniSharp.MSBuild.ProjectSystem
No solution files found in '/home/mastermindzh/code/'
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for '/home/mastermindzh/code//api/api.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
Detecting CSX files in '/home/mastermindzh/code/'.
[info]: OmniSharp.Script.ScriptProjectSystem
Could not find any CSX files
[info]: OmniSharp.Stdio.Host
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
[info]: OmniSharp.Stdio.Host
Configuration finished.
[info]: OmniSharp.Stdio.Host
Omnisharp server running using Stdio at location '/home/mastermindzh/code/' on host 30096.
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: /home/mastermindzh/code//api/api.csproj
[info]: OmniSharp.MSBuild.ProjectManager
Adding project '/home/mastermindzh/code//api/api.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
Update project: api
在此之后,扩展就不再工作了,直到我重新启动它并且它再次崩溃。只有在 Docker 中或从 cli 启动时才会失败,如果我通过 vscode 运行应用程序(我不想做的事情)它工作正常。
docker 文件:
FROM microsoft/dotnet:2.1-sdk-stretch
WORKDIR /app
EXPOSE 5000
CMD dotnet restore && dotnet watch run
撰写:
version: "3"
services:
web:
build:
context: ./../../api
dockerfile: ./../docker/images/api/Dockerfile
ports:
- "5000:5000"
- "5001:5001"
volumes:
- ./../../api/:/app
depends_on:
- db
到目前为止,我最好的猜测是它与 dotnet restore 和/或 bin/obj 文件夹有关。运行 dotnet clean 然后启动应用程序没有任何区别。
如有任何帮助,我们将不胜感激。
最佳答案
嗨,瑞克,你弄明白了吗?我遇到了同样的问题,试图在 docker 容器内使用 Omnisharp 扩展运行调试器。
我看到了您提到的那些 bin/obj 引用,这似乎是由于 .net 如何配置运行时环境。这似乎是基于 dotnet 共享文件夹的位置。这篇文章解释了其中的一部分: What is the purpose of msbuild's GenerateRuntimeConfigurationFiles?
我认为问题在于此共享文件夹与实际主机(我正在运行的机器)和 docker 容器上的内容不同。因此,当您在容器中运行 dotnet 时,它会根据该容器中的内容配置运行时。这会抛出 Omnisharp,因为它在容器外运行。
我认为我们可以将这些共享文件夹定义并卷挂载为 dockerfile(或 docker-compose)的一部分。但我还没有得到一些工作。我知道这是几个月前的事,但请检查您是否明白这一点。谢谢!
关于docker - Omnisharp 在使用 docker 时无声地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152474/
有谁知道如何使用 JS window.open(...) 但是默默地使用它,即实际上没有打开它,所以打开检查它是否能够打开? 我必须运行脚本来进行弹出 block 检查,我快完成了。我不想让浏览器物理
在一个使用远程通知的 iOS 应用程序(来自 Parse.com)中,在花了一些时间研究这个主题之后,我得出的结论是我不应该在后台使用远程通知或者可能使用静默通知。 但是无声通知看起来相当复杂。 例如
我正在编写一个函数来标准化音频文件。我正在使用 JAudioTagger 库。 我在 Logic Pro X 中创建了一个简短的音频文件,它将完全静音(如果我理解正确的话,mp3 主体的所有字节都应该
如何让 Grunt 运行更安静? 我没有 --verbose选项。我仍然得到一个很长的日志。 我想要一个更短的日志,最好只记录失败的规范。 有什么建议吗? 我正在使用 grunt-karma和 Jas
有没有办法让 Backbone.Model 静默获取?选项 {silent: true} 不适用于模型提取。基本上我想使当前 View 已经监听的同步事件静音。 收听: self.listenTo(s
在我们的应用程序中,用户将在开始工作时打卡。如果用户忘记签退,我们将在签到时间 24 小时后自动为其签退。应用程序可能不会长时间处于事件/后台状态。它可能会被终止。所以我们的想法是发布一个本地通知,通
当我的“chartModel”发生变化时,我想更新“globalModel”。 chartModel.bind("change", updateGlobalModel); updateGlobalMo
我正在将主干版本从 0.9.2 更新到 1.0,但遇到了问题。 模型未正确更新。它有延迟。以前我下面的代码工作得很好: this.model({ attrib: true},{silent:true}
我是一名优秀的程序员,十分优秀!