Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
2acccc48
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2acccc48
编写于
9月 19, 2016
作者:
H
Heejae Chang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
make VS not crash when service hub failed to launch
上级
385dbe98
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
34 addition
and
9 deletion
+34
-9
src/VisualStudio/Core/Def/Implementation/Remote/RemoteHostClientServiceFactory.RemoteHostClientService.cs
...RemoteHostClientServiceFactory.RemoteHostClientService.cs
+8
-1
src/VisualStudio/Core/Def/Implementation/Remote/RemoteHostOptions.cs
...tudio/Core/Def/Implementation/Remote/RemoteHostOptions.cs
+1
-1
src/VisualStudio/Core/Next/Remote/RemoteHostClientFactory.cs
src/VisualStudio/Core/Next/Remote/RemoteHostClientFactory.cs
+13
-2
src/VisualStudio/RemoteHostClientMock/Remote/RemoteHostClientFactory.cs
...io/RemoteHostClientMock/Remote/RemoteHostClientFactory.cs
+12
-5
未找到文件。
src/VisualStudio/Core/Def/Implementation/Remote/RemoteHostClientServiceFactory.RemoteHostClientService.cs
浏览文件 @
2acccc48
...
...
@@ -113,7 +113,9 @@ public void Disable()
try
{
instanceTask
.
Wait
(
_shutdownCancellationTokenSource
.
Token
);
instanceTask
.
Result
.
Shutdown
();
// result can be null if service hub failed to launch
instanceTask
.
Result
?.
Shutdown
();
}
catch
(
OperationCanceledException
)
{
...
...
@@ -151,6 +153,11 @@ private async Task<RemoteHostClient> EnableAsync(CancellationToken cancellationT
// if we reached here, IRemoteHostClientFactory must exist.
// this will make VS.Next dll to be loaded
var
instance
=
await
_workspace
.
Services
.
GetRequiredService
<
IRemoteHostClientFactory
>().
CreateAsync
(
_workspace
,
cancellationToken
).
ConfigureAwait
(
false
);
if
(
instance
==
null
)
{
return
null
;
}
instance
.
ConnectionChanged
+=
OnConnectionChanged
;
return
instance
;
...
...
src/VisualStudio/Core/Def/Implementation/Remote/RemoteHostOptions.cs
浏览文件 @
2acccc48
...
...
@@ -9,7 +9,7 @@ internal static class RemoteHostOptions
public
const
string
OptionName
=
"FeatureManager/Features"
;
[
ExportOption
]
public
static
readonly
Option
<
bool
>
RemoteHost
=
new
Option
<
bool
>(
OptionName
,
nameof
(
RemoteHost
),
defaultValue
:
fals
e
);
public
static
readonly
Option
<
bool
>
RemoteHost
=
new
Option
<
bool
>(
OptionName
,
nameof
(
RemoteHost
),
defaultValue
:
tru
e
);
[
ExportOption
]
public
static
readonly
Option
<
int
>
SolutionChecksumMonitorBackOffTimeSpanInMS
=
new
Option
<
int
>(
OptionName
,
nameof
(
SolutionChecksumMonitorBackOffTimeSpanInMS
),
defaultValue
:
10000
);
...
...
src/VisualStudio/Core/Next/Remote/RemoteHostClientFactory.cs
浏览文件 @
2acccc48
...
...
@@ -5,6 +5,7 @@
using
System.Threading.Tasks
;
using
Microsoft.CodeAnalysis
;
using
Microsoft.CodeAnalysis.Host.Mef
;
using
Roslyn.Utilities
;
namespace
Microsoft.VisualStudio.LanguageServices.Remote
{
...
...
@@ -13,8 +14,18 @@ internal class RemoteHostClientFactory : IRemoteHostClientFactory
{
public
Task
<
RemoteHostClient
>
CreateAsync
(
Workspace
workspace
,
CancellationToken
cancellationToken
)
{
// this is the point where we can create different kind of remote host client in future (cloud or etc)
return
ServiceHubRemoteHostClient
.
CreateAsync
(
workspace
,
cancellationToken
);
try
{
// this is the point where we can create different kind of remote host client in future (cloud or etc)
return
ServiceHubRemoteHostClient
.
CreateAsync
(
workspace
,
cancellationToken
);
}
catch
{
// currently there is so many moving parts that cause, in some branch/drop,
// service hub not to work. in such places (ex, Jenkins), rather than crashing VS
// right away, let VS run without service hub enabled.
return
SpecializedTasks
.
Default
<
RemoteHostClient
>();
}
}
}
}
\ No newline at end of file
src/VisualStudio/RemoteHostClientMock/Remote/RemoteHostClientFactory.cs
浏览文件 @
2acccc48
...
...
@@ -15,13 +15,20 @@ internal class RemoteHostClientFactory : IRemoteHostClientFactory
{
public
Task
<
RemoteHostClient
>
CreateAsync
(
Workspace
workspace
,
CancellationToken
cancellationToken
)
{
// this is the point where we can create different kind of remote host client in future (cloud or etc)
if
(
workspace
.
Options
.
GetOption
(
RemoteHostClientFactoryOptions
.
RemoteHost_InProc
))
try
{
return
InProcRemoteHostClient
.
CreateAsync
(
workspace
,
cancellationToken
);
}
// this is the point where we can create different kind of remote host client in future (cloud or etc)
if
(
workspace
.
Options
.
GetOption
(
RemoteHostClientFactoryOptions
.
RemoteHost_InProc
))
{
return
InProcRemoteHostClient
.
CreateAsync
(
workspace
,
cancellationToken
);
}
return
ServiceHubRemoteHostClient
.
CreateAsync
(
workspace
,
cancellationToken
);
return
ServiceHubRemoteHostClient
.
CreateAsync
(
workspace
,
cancellationToken
);
}
catch
{
return
Task
.
FromResult
<
RemoteHostClient
>(
null
);
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录