Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
69ef6226
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,发现更多精彩内容 >>
未验证
提交
69ef6226
编写于
2月 04, 2019
作者:
S
Sam Harwell
提交者:
GitHub
2月 04, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #33100 from sharwell/vs2019-tests
Support running integration tests in VS 2019
上级
61fa1cdb
12a8945b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
37 addition
and
7 deletion
+37
-7
src/VisualStudio/IntegrationTest/TestUtilities/InProcess/StartPage_InProc.cs
...tegrationTest/TestUtilities/InProcess/StartPage_InProc.cs
+22
-3
src/VisualStudio/IntegrationTest/TestUtilities/VisualStudioInstanceFactory.cs
...egrationTest/TestUtilities/VisualStudioInstanceFactory.cs
+15
-4
未找到文件。
src/VisualStudio/IntegrationTest/TestUtilities/InProcess/StartPage_InProc.cs
浏览文件 @
69ef6226
...
...
@@ -2,15 +2,20 @@
using
System
;
using
Microsoft.VisualStudio.Shell.Interop
;
using
vsStartUp
=
EnvDTE
.
vsStartUp
;
namespace
Microsoft.VisualStudio.IntegrationTest.Utilities.InProcess
{
internal
class
StartPage_InProc
:
InProcComponent
{
// Values come from Tools -> Options -> Environment -> Startup -> At startup
private
const
int
ShowEmptyEnvironment
=
4
;
private
const
int
ShowEmptyEnvironment
=
(
int
)
vsStartUp
.
vsStartUpEmptyEnvironment
;
private
const
int
ShowStartPage
=
5
;
// These values apply to Visual Studio 2019
private
const
int
VS2019ShowStartWindow
=
13
;
private
const
int
VS2019ShowEmptyEnvironment
=
10
;
public
static
StartPage_InProc
Create
()
=>
new
StartPage_InProc
();
...
...
@@ -19,7 +24,14 @@ public bool IsEnabled()
return
InvokeOnUIThread
(()
=>
{
var
property
=
GetProperty
();
return
(
int
)
property
.
Value
==
ShowStartPage
;
if
(
new
Version
(
property
.
DTE
.
Version
).
Major
==
16
)
{
return
(
int
)
property
.
Value
==
VS2019ShowStartWindow
;
}
else
{
return
(
int
)
property
.
Value
==
ShowStartPage
;
}
});
}
...
...
@@ -28,7 +40,14 @@ public void SetEnabled(bool enabled)
InvokeOnUIThread
(()
=>
{
var
property
=
GetProperty
();
property
.
Value
=
enabled
?
ShowStartPage
:
ShowEmptyEnvironment
;
if
(
new
Version
(
property
.
DTE
.
Version
).
Major
==
16
)
{
property
.
Value
=
enabled
?
VS2019ShowStartWindow
:
VS2019ShowEmptyEnvironment
;
}
else
{
property
.
Value
=
enabled
?
ShowStartPage
:
ShowEmptyEnvironment
;
}
});
}
...
...
src/VisualStudio/IntegrationTest/TestUtilities/VisualStudioInstanceFactory.cs
浏览文件 @
69ef6226
...
...
@@ -163,7 +163,9 @@ private async Task UpdateCurrentlyRunningInstanceAsync(ImmutableHashSet<string>
supportedPackageIds
=
ImmutableHashSet
.
CreateRange
(
instance
.
GetPackages
().
Select
((
supportedPackage
)
=>
supportedPackage
.
GetId
()));
installationPath
=
instance
.
GetInstallationPath
();
hostProcess
=
StartNewVisualStudioProcess
(
installationPath
);
var
instanceVersion
=
instance
.
GetInstallationVersion
();
var
majorVersion
=
int
.
Parse
(
instanceVersion
.
Substring
(
0
,
instanceVersion
.
IndexOf
(
'.'
)));
hostProcess
=
StartNewVisualStudioProcess
(
installationPath
,
majorVersion
);
var
procDumpInfo
=
ProcDumpInfo
.
ReadFromEnvironment
();
if
(
procDumpInfo
!=
null
)
...
...
@@ -248,8 +250,6 @@ private static ISetupInstance LocateVisualStudioInstance(ImmutableHashSet<string
{
var
isMatch
=
true
;
{
isMatch
&=
instance
.
GetInstallationVersion
().
StartsWith
(
VsProductVersion
);
if
(
haveVsInstallDir
)
{
var
installationPath
=
instance
.
GetInstallationPath
();
...
...
@@ -257,6 +257,10 @@ private static ISetupInstance LocateVisualStudioInstance(ImmutableHashSet<string
installationPath
=
installationPath
.
TrimEnd
(
Path
.
DirectorySeparatorChar
,
Path
.
AltDirectorySeparatorChar
);
isMatch
&=
installationPath
.
Equals
(
vsInstallDir
,
StringComparison
.
OrdinalIgnoreCase
);
}
else
{
isMatch
&=
instance
.
GetInstallationVersion
().
StartsWith
(
VsProductVersion
);
}
}
return
isMatch
;
});
...
...
@@ -291,12 +295,19 @@ private static ISetupInstance LocateVisualStudioInstance(ImmutableHashSet<string
"There were no instances of Visual Studio found that match the specified requirements."
);
}
private
static
Process
StartNewVisualStudioProcess
(
string
installationPath
)
private
static
Process
StartNewVisualStudioProcess
(
string
installationPath
,
int
majorVersion
)
{
var
vsExeFile
=
Path
.
Combine
(
installationPath
,
@"Common7\IDE\devenv.exe"
);
var
vsRegEditExeFile
=
Path
.
Combine
(
installationPath
,
@"Common7\IDE\VsRegEdit.exe"
);
if
(
_firstLaunch
)
{
if
(
majorVersion
==
16
)
{
// Make sure the start window doesn't show on launch
Process
.
Start
(
vsRegEditExeFile
,
$"set \"
{
installationPath
}
\"
{
Settings
.
Default
.
VsRootSuffix
}
HKCU General OnEnvironmentStartup dword 10"
).
WaitForExit
();
}
// BUG: Currently building with /p:DeployExtension=true does not always cause the MEF cache to recompose...
// So, run clearcache and updateconfiguration to workaround https://devdiv.visualstudio.com/DevDiv/_workitems?id=385351.
Process
.
Start
(
vsExeFile
,
$"/clearcache
{
VsLaunchArgs
}
"
).
WaitForExit
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录