Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
21aead49
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,发现更多精彩内容 >>
提交
21aead49
编写于
6月 13, 2016
作者:
M
Matt Warren
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add option to disable converting metadata to project references
上级
214aa346
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
36 addition
and
14 deletion
+36
-14
src/EditorFeatures/Core/Shared/Options/InternalFeatureOnOffOptions.cs
...atures/Core/Shared/Options/InternalFeatureOnOffOptions.cs
+3
-0
src/VisualStudio/Core/Def/Implementation/ProjectSystem/AbstractProject.cs
.../Core/Def/Implementation/ProjectSystem/AbstractProject.cs
+33
-14
未找到文件。
src/EditorFeatures/Core/Shared/Options/InternalFeatureOnOffOptions.cs
浏览文件 @
21aead49
...
...
@@ -68,5 +68,8 @@ internal static class InternalFeatureOnOffOptions
[
ExportOption
]
public
static
readonly
Option
<
bool
>
FullSolutionAnalysisMemoryMonitor
=
new
Option
<
bool
>(
OptionName
,
"Full Solution Analysis Memory Monitor"
,
defaultValue
:
true
);
[
ExportOption
]
public
static
readonly
Option
<
bool
>
ProjectReferenceConversion
=
new
Option
<
bool
>(
OptionName
,
"Project Reference Conversion"
,
defaultValue
:
true
);
}
}
src/VisualStudio/Core/Def/Implementation/ProjectSystem/AbstractProject.cs
浏览文件 @
21aead49
...
...
@@ -9,6 +9,7 @@
using
System.Windows.Threading
;
using
Microsoft.CodeAnalysis
;
using
Microsoft.CodeAnalysis.Diagnostics
;
using
Microsoft.CodeAnalysis.Editor.Shared.Options
;
using
Microsoft.CodeAnalysis.ErrorReporting
;
using
Microsoft.CodeAnalysis.Host
;
using
Microsoft.CodeAnalysis.Notification
;
...
...
@@ -445,11 +446,26 @@ protected void SetOptions(CompilationOptions compilationOptions, ParseOptions pa
}
}
protected
bool
CanConvertToProjectReferences
{
get
{
if
(
this
.
Workspace
!=
null
)
{
return
this
.
Workspace
.
Options
.
GetOption
(
InternalFeatureOnOffOptions
.
ProjectReferenceConversion
);
}
else
{
return
InternalFeatureOnOffOptions
.
ProjectReferenceConversion
.
DefaultValue
;
}
}
}
protected
int
AddMetadataReferenceAndTryConvertingToProjectReferenceIfPossible
(
string
filePath
,
MetadataReferenceProperties
properties
)
{
// If this file is coming from a project, then we should convert it to a project reference instead
AbstractProject
project
;
if
(
ProjectTracker
.
TryGetProjectByBinPath
(
filePath
,
out
project
))
if
(
this
.
CanConvertToProjectReferences
&&
ProjectTracker
.
TryGetProjectByBinPath
(
filePath
,
out
project
))
{
var
projectReference
=
new
ProjectReference
(
project
.
Id
,
properties
.
Aliases
,
properties
.
EmbedInteropTypes
);
if
(
CanAddProjectReference
(
projectReference
))
...
...
@@ -924,23 +940,26 @@ public virtual void Disconnect()
internal
void
TryProjectConversionForIntroducedOutputPath
(
string
binPath
,
AbstractProject
projectToReference
)
{
// We should not already have references for this, since we're only introducing the path for the first time
Contract
.
ThrowIfTrue
(
_metadataFileNameToConvertedProjectReference
.
ContainsKey
(
binPath
));
var
metadataReference
=
TryGetCurrentMetadataReference
(
binPath
);
if
(
metadataReference
!=
null
)
if
(
this
.
CanConvertToProjectReferences
)
{
var
projectReference
=
new
ProjectReference
(
projectToReference
.
Id
,
metadataReference
.
Properties
.
Aliases
,
metadataReference
.
Properties
.
EmbedInteropTypes
);
// We should not already have references for this, since we're only introducing the path for the first time
Contract
.
ThrowIfTrue
(
_metadataFileNameToConvertedProjectReference
.
ContainsKey
(
binPath
));
if
(
CanAddProjectReference
(
projectReference
))
var
metadataReference
=
TryGetCurrentMetadataReference
(
binPath
);
if
(
metadataReference
!=
null
)
{
RemoveMetadataReferenceCore
(
metadataReference
,
disposeReference
:
true
);
AddProjectReference
(
projectReference
);
var
projectReference
=
new
ProjectReference
(
projectToReference
.
Id
,
metadataReference
.
Properties
.
Aliases
,
metadataReference
.
Properties
.
EmbedInteropTypes
);
if
(
CanAddProjectReference
(
projectReference
))
{
RemoveMetadataReferenceCore
(
metadataReference
,
disposeReference
:
true
);
AddProjectReference
(
projectReference
);
_metadataFileNameToConvertedProjectReference
.
Add
(
binPath
,
projectReference
);
_metadataFileNameToConvertedProjectReference
.
Add
(
binPath
,
projectReference
);
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录