Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
f43cafb7
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,发现更多精彩内容 >>
未验证
提交
f43cafb7
编写于
11月 08, 2018
作者:
J
Jason Malinowski
提交者:
GitHub
11月 08, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #31048 from jasonmalinowski/fix-cps-edit-and-continue
Fix Edit and Continue in CPS projects
上级
bf5d5eb2
c0f9a9e8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
118 addition
and
0 deletion
+118
-0
src/VisualStudio/CSharp/Test/ProjectSystemShim/CPS/EditAndContinueTests.cs
...CSharp/Test/ProjectSystemShim/CPS/EditAndContinueTests.cs
+24
-0
src/VisualStudio/Core/Impl/ProjectSystem/CPS/CPSProject_IVsENCRebuildableProjectCfg.cs
...ojectSystem/CPS/CPSProject_IVsENCRebuildableProjectCfg.cs
+84
-0
src/VisualStudio/Core/Impl/ProjectSystem/CPS/CPSProject_IWorkspaceProjectContext.cs
.../ProjectSystem/CPS/CPSProject_IWorkspaceProjectContext.cs
+10
-0
未找到文件。
src/VisualStudio/CSharp/Test/ProjectSystemShim/CPS/EditAndContinueTests.cs
0 → 100644
浏览文件 @
f43cafb7
using
Microsoft.CodeAnalysis.Test.Utilities
;
using
Microsoft.VisualStudio.LanguageServices.Implementation.EditAndContinue.Interop
;
using
Microsoft.VisualStudio.LanguageServices.UnitTests.ProjectSystemShim.Framework
;
using
Roslyn.Test.Utilities
;
using
Xunit
;
namespace
Roslyn.VisualStudio.CSharp.UnitTests.ProjectSystemShim.CPS
{
[
UseExportProvider
]
public
class
EditAndContinueTests
{
[
WpfFact
,
WorkItem
(
31034
,
"https://github.com/dotnet/roslyn/issues/31034"
)]
[
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
ProjectSystemShims
)]
public
void
EditAndContinueInterfacesAreImplemented
()
{
using
(
var
environment
=
new
TestEnvironment
())
using
(
var
project
=
CSharpHelpers
.
CreateCSharpCPSProject
(
environment
,
"Test"
,
binOutputPath
:
null
))
{
Assert
.
IsAssignableFrom
<
IVsENCRebuildableProjectCfg2
>(
project
);
Assert
.
IsAssignableFrom
<
IVsENCRebuildableProjectCfg4
>(
project
);
}
}
}
}
src/VisualStudio/Core/Impl/ProjectSystem/CPS/CPSProject_IVsENCRebuildableProjectCfg.cs
0 → 100644
浏览文件 @
f43cafb7
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using
System
;
using
EncInterop
=
Microsoft
.
VisualStudio
.
LanguageServices
.
Implementation
.
EditAndContinue
.
Interop
;
using
ShellInterop
=
Microsoft
.
VisualStudio
.
Shell
.
Interop
;
using
VsTextSpan
=
Microsoft
.
VisualStudio
.
TextManager
.
Interop
.
TextSpan
;
namespace
Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.CPS
{
internal
partial
class
CPSProject
:
EncInterop
.
IVsENCRebuildableProjectCfg2
,
EncInterop
.
IVsENCRebuildableProjectCfg4
{
public
int
HasCustomMetadataEmitter
(
out
bool
value
)
{
value
=
true
;
return
VSConstants
.
S_OK
;
}
public
int
StartDebuggingPE
()
{
return
_editAndContinueProject
.
StartDebuggingPE
();
}
public
int
StopDebuggingPE
()
{
return
_editAndContinueProject
.
StopDebuggingPE
();
}
public
int
GetPEidentity
(
Guid
[]
pMVID
,
string
[]
pbstrPEName
)
{
return
_editAndContinueProject
.
GetPEidentity
(
pMVID
,
pbstrPEName
);
}
public
int
EnterBreakStateOnPE
(
EncInterop
.
ENC_BREAKSTATE_REASON
encBreakReason
,
ShellInterop
.
ENC_ACTIVE_STATEMENT
[]
pActiveStatements
,
uint
cActiveStatements
)
{
return
_editAndContinueProject
.
EnterBreakStateOnPE
(
encBreakReason
,
pActiveStatements
,
cActiveStatements
);
}
public
int
GetExceptionSpanCount
(
out
uint
pcExceptionSpan
)
{
pcExceptionSpan
=
default
;
return
_editAndContinueProject
.
GetExceptionSpanCount
(
out
pcExceptionSpan
);
}
public
int
GetExceptionSpans
(
uint
celt
,
ShellInterop
.
ENC_EXCEPTION_SPAN
[]
rgelt
,
ref
uint
pceltFetched
)
{
return
_editAndContinueProject
.
GetExceptionSpans
(
celt
,
rgelt
,
ref
pceltFetched
);
}
public
int
GetCurrentExceptionSpanPosition
(
uint
id
,
VsTextSpan
[]
ptsNewPosition
)
{
return
_editAndContinueProject
.
GetCurrentExceptionSpanPosition
(
id
,
ptsNewPosition
);
}
public
int
GetENCBuildState
(
ShellInterop
.
ENC_BUILD_STATE
[]
pENCBuildState
)
{
return
_editAndContinueProject
.
GetENCBuildState
(
pENCBuildState
);
}
public
int
ExitBreakStateOnPE
()
{
return
_editAndContinueProject
.
ExitBreakStateOnPE
();
}
public
int
GetCurrentActiveStatementPosition
(
uint
id
,
VsTextSpan
[]
ptsNewPosition
)
{
return
_editAndContinueProject
.
GetCurrentActiveStatementPosition
(
id
,
ptsNewPosition
);
}
public
int
EncApplySucceeded
(
int
hrApplyResult
)
{
return
_editAndContinueProject
.
EncApplySucceeded
(
hrApplyResult
);
}
public
int
GetPEBuildTimeStamp
(
Microsoft
.
VisualStudio
.
OLE
.
Interop
.
FILETIME
[]
pTimeStamp
)
{
return
VSConstants
.
E_NOTIMPL
;
}
public
int
BuildForEnc
(
object
pUpdatePE
)
{
return
_editAndContinueProject
.
BuildForEnc
(
pUpdatePE
);
}
}
}
src/VisualStudio/Core/Impl/ProjectSystem/CPS/CPSProject_IWorkspaceProjectContext.cs
浏览文件 @
f43cafb7
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
using
Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel
;
using
Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel
;
using
Microsoft.VisualStudio.LanguageServices.Implementation.TaskList
;
using
Microsoft.VisualStudio.LanguageServices.Implementation.TaskList
;
using
Microsoft.VisualStudio.LanguageServices.ProjectSystem
;
using
Microsoft.VisualStudio.LanguageServices.ProjectSystem
;
using
Microsoft.VisualStudio.Shell.Interop
;
using
Roslyn.Utilities
;
using
Roslyn.Utilities
;
namespace
Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.CPS
namespace
Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.CPS
...
@@ -27,6 +28,7 @@ internal sealed partial class CPSProject : IWorkspaceProjectContext
...
@@ -27,6 +28,7 @@ internal sealed partial class CPSProject : IWorkspaceProjectContext
private
readonly
VisualStudioWorkspaceImpl
_visualStudioWorkspace
;
private
readonly
VisualStudioWorkspaceImpl
_visualStudioWorkspace
;
private
readonly
IProjectCodeModel
_projectCodeModel
;
private
readonly
IProjectCodeModel
_projectCodeModel
;
private
readonly
ProjectExternalErrorReporter
_externalErrorReporterOpt
;
private
readonly
ProjectExternalErrorReporter
_externalErrorReporterOpt
;
private
readonly
EditAndContinue
.
VsENCRebuildableProjectImpl
_editAndContinueProject
;
public
string
DisplayName
public
string
DisplayName
{
{
...
@@ -66,6 +68,14 @@ public CPSProject(VisualStudioProject visualStudioProject, VisualStudioWorkspace
...
@@ -66,6 +68,14 @@ public CPSProject(VisualStudioProject visualStudioProject, VisualStudioWorkspace
_visualStudioProjectOptionsProcessor
=
new
VisualStudioProjectOptionsProcessor
(
_visualStudioProject
,
visualStudioWorkspace
.
Services
);
_visualStudioProjectOptionsProcessor
=
new
VisualStudioProjectOptionsProcessor
(
_visualStudioProject
,
visualStudioWorkspace
.
Services
);
}
}
// We don't have a SVsShellDebugger service in unit tests, in that case we can't implement ENC. We're OK
// leaving the field null in that case.
if
(
Shell
.
ServiceProvider
.
GlobalProvider
.
GetService
(
typeof
(
SVsShellDebugger
))
!=
null
)
{
// TODO: make this lazier, as fetching all the services up front during load shoudn't be necessary
_editAndContinueProject
=
new
EditAndContinue
.
VsENCRebuildableProjectImpl
(
_visualStudioWorkspace
,
_visualStudioProject
,
Shell
.
ServiceProvider
.
GlobalProvider
);
}
Guid
=
projectGuid
;
Guid
=
projectGuid
;
BinOutputPath
=
binOutputPath
;
BinOutputPath
=
binOutputPath
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录