Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
e381e353
F
fsharp
项目概览
dotNET Platform
/
fsharp
12 个月 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
e381e353
编写于
11月 07, 2022
作者:
K
Kevin Ransom (msft)
提交者:
GitHub
11月 07, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ctrl+Break in VS on coreclr and desktop (#14218)
上级
8af363b4
变更
22
显示空白变更内容
内联
并排
Showing
22 changed file
with
135 addition
and
200 deletion
+135
-200
.gitignore
.gitignore
+0
-1
FSharp.sln
FSharp.sln
+3
-17
VisualFSharp.sln
VisualFSharp.sln
+1
-16
setup/Swix/Microsoft.FSharp.Compiler.MSBuild/Microsoft.FSharp.Compiler.MSBuild.csproj
...Compiler.MSBuild/Microsoft.FSharp.Compiler.MSBuild.csproj
+0
-2
setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.csproj
setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.csproj
+0
-1
src/Compiler/FSharp.Compiler.Service.fsproj
src/Compiler/FSharp.Compiler.Service.fsproj
+2
-1
src/Compiler/Interactive/FSharpInteractiveServer.fs
src/Compiler/Interactive/FSharpInteractiveServer.fs
+68
-0
src/Compiler/Interactive/FSharpInteractiveServer.fsi
src/Compiler/Interactive/FSharpInteractiveServer.fsi
+22
-0
src/FSharp.Compiler.Server.Shared/AssemblyInfo.fs
src/FSharp.Compiler.Server.Shared/AssemblyInfo.fs
+0
-9
src/FSharp.Compiler.Server.Shared/Directory.Build.props
src/FSharp.Compiler.Server.Shared/Directory.Build.props
+0
-9
src/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
...mpiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
+0
-36
src/FSharp.Compiler.Server.Shared/FSharpInteractiveServer.fs
src/FSharp.Compiler.Server.Shared/FSharpInteractiveServer.fs
+0
-47
src/fsi/fsi.targets
src/fsi/fsi.targets
+0
-3
src/fsi/fsimain.fs
src/fsi/fsimain.fs
+6
-6
tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected
...s/FSharp.CompilerService.SurfaceArea.netstandard.expected
+8
-0
vsintegration/Vsix/VisualFSharpFull/Source.extension.vsixmanifest
...ation/Vsix/VisualFSharpFull/Source.extension.vsixmanifest
+0
-2
vsintegration/Vsix/VisualFSharpFull/VisualFSharp.Core.targets
...tegration/Vsix/VisualFSharpFull/VisualFSharp.Core.targets
+0
-12
vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
.../src/FSharp.LanguageService/FSharp.LanguageService.fsproj
+0
-1
vsintegration/src/FSharp.ProjectSystem.FSharp/FSharp.ProjectSystem.FSharp.fsproj
...p.ProjectSystem.FSharp/FSharp.ProjectSystem.FSharp.fsproj
+0
-5
vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj
vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj
+1
-2
vsintegration/src/FSharp.VS.FSI/sessions.fs
vsintegration/src/FSharp.VS.FSI/sessions.fs
+24
-26
vsintegration/update-vsintegration.cmd
vsintegration/update-vsintegration.cmd
+0
-4
未找到文件。
.gitignore
浏览文件 @
e381e353
...
...
@@ -15,7 +15,6 @@ scripts/*.patch
/src/FSharp.Build/*.resx
/src/fsi/*.resx
/src/FSharp.Compiler.Interactive.Settings/*.resx
/src/FSharp.Compiler.Server.Shared/*.resx
/src/fsi/Fsi.sln
/src/FSharp.Build/*.resources
/src/Compiler/*.resx
...
...
FSharp.sln
浏览文件 @
e381e353
...
...
@@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32113.165
MinimumVisualStudioVersion = 10.0.40219.1
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Server.Shared", "src\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core", "src\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
...
...
@@ -98,9 +96,10 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsiAnyCpu", "src\fsi\fsiAny
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsiArm64", "src\fsi\fsiArm64Project\fsiArm64.fsproj", "{209C7D37-8C01-413C-8698-EC25F4C86976}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HistoricalBenchmark", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.fsproj", "{BEC6E796-7E53-4888-AAFC-B8FD55C425DF}"
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "HistoricalBenchmark", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.fsproj", "{BEC6E796-7E53-4888-AAFC-B8FD55C425DF}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{9C7523BA-7AB2-4604-A5FD-653E82C2BAD1}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D58BFE8B-7C85-4D3B-B5F3-9A7BB90FF1EE}"
ProjectSection(SolutionItems) = preProject
src\Compiler\FSComp.txt = src\Compiler\FSComp.txt
...
...
@@ -116,18 +115,6 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|x86.ActiveCfg = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|x86.Build.0 = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|Any CPU.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|x86.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|x86.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.ActiveCfg = Debug|Any CPU
...
...
@@ -433,7 +420,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{DED3BBD7-53F4-428A-8C9F-27968E768605} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
{702A7979-BCF9-4C41-853E-3ADFC9897890} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{649FA588-F02E-457C-9FCF-87E46407481E} = {B8DDA694-7939-42E3-95E5-265C2217C142}
...
...
VisualFSharp.sln
浏览文件 @
e381e353
...
...
@@ -33,8 +33,6 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.VS.FSI", "vsintegrat
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualFSharpFull", "vsintegration\Vsix\VisualFSharpFull\VisualFSharpFull.csproj", "{59ADCE46-9740-4079-834D-9A03A3494EBC}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Server.Shared", "src\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core", "src\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.LanguageService", "vsintegration\src\FSharp.LanguageService\FSharp.LanguageService.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}"
...
...
@@ -193,7 +191,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FCSBenchmarks", "FCSBenchma
tests\benchmarks\FCSBenchmarks\SmokeTestAllBenchmarks.ps1 = tests\benchmarks\FCSBenchmarks\SmokeTestAllBenchmarks.ps1
EndProjectSection
EndProject
Project("{
F2A71F9B-5D33-465A-A702-920D77279786
}") = "Fsharp.ProfilingStartpointProject", "tests\benchmarks\Fsharp.ProfilingStartpointProject\Fsharp.ProfilingStartpointProject.fsproj", "{FE23BB65-276A-4E41-8CC7-F7752241DEBA}"
Project("{
6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705
}") = "Fsharp.ProfilingStartpointProject", "tests\benchmarks\Fsharp.ProfilingStartpointProject\Fsharp.ProfilingStartpointProject.fsproj", "{FE23BB65-276A-4E41-8CC7-F7752241DEBA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
...
...
@@ -229,18 +227,6 @@ Global
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Release|Any CPU.Build.0 = Release|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Release|x86.ActiveCfg = Release|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Release|x86.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|x86.ActiveCfg = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Debug|x86.Build.0 = Debug|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|Any CPU.Build.0 = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|x86.ActiveCfg = Release|Any CPU
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Release|x86.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.ActiveCfg = Debug|Any CPU
...
...
@@ -1045,7 +1031,6 @@ Global
{CCAB6E50-34C6-42AF-A6B0-567C29FCD91B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{59ADCE46-9740-4079-834D-9A03A3494EBC} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{DED3BBD7-53F4-428A-8C9F-27968E768605} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F} = {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF} = {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}
...
...
setup/Swix/Microsoft.FSharp.Compiler.MSBuild/Microsoft.FSharp.Compiler.MSBuild.csproj
浏览文件 @
e381e353
...
...
@@ -13,7 +13,6 @@
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)
\f
si
\f
siArm64Project
\f
siArm64.fsproj"
/>
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)\FSharp.Build\FSharp.Build.fsproj"
/>
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj"
/>
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj"
/>
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)\Compiler\FSharp.Compiler.Service.fsproj"
/>
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)\FSharp.Core\FSharp.Core.fsproj"
/>
<
ProjectReference
Include
=
"$(FSharpSourcesRoot)\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Nuget.fsproj"
/>
...
...
@@ -108,7 +107,6 @@ folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharp\Tools"
file
source
=
"$(BinariesFolder)fsc\$(Configuration)\$(TargetFramework)\Microsoft.Build.Framework.dll"
file
source
=
"$(BinariesFolder)fsc\$(Configuration)\$(TargetFramework)\Microsoft.Build.Tasks.Core.dll"
file
source
=
"$(BinariesFolder)fsc\$(Configuration)\$(TargetFramework)\Microsoft.Build.Utilities.Core.dll"
file
source
=
"$(BinariesFolder)FSharp.Compiler.Server.Shared\$(Configuration)\$(TargetFramework)\FSharp.Compiler.Server.Shared.dll"
vs
.
file
.
ngen
=
yes
vs
.
file
.
ngenArchitecture
=
All
vs
.
file
.
ngenPriority
=
2
file
source
=
"$(BinariesFolder)FSharp.Core\$(Configuration)
\n
etstandard2.0\FSharp.Core.dll"
vs
.
file
.
ngen
=
yes
vs
.
file
.
ngenArchitecture
=
All
vs
.
file
.
ngenPriority
=
2
file
source
=
"$(BinariesFolder)FSharp.Core\$(Configuration)
\n
etstandard2.0\FSharp.Core.xml"
file
source
=
"$(BinariesFolder)FSharp.Build\$(Configuration)
\n
etstandard2.0\FSharp.Build.dll"
vs
.
file
.
ngen
=
no
vs
.
file
.
ngenArchitecture
=
All
vs
.
file
.
ngenPriority
=
2
...
...
setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.csproj
浏览文件 @
e381e353
...
...
@@ -18,7 +18,6 @@
<_Dependency Include="FSharp.Compiler.Interactive.Settings" Version="$(FSProductVersion)" />
<_Dependency Include="FSharp.Compiler.Service" Version="$(FSharpCompilerServiceVersion)" />
<_Dependency Include="FSharp.DependencyManager.Nuget" Version="$(FSProductVersion)" />
<_Dependency Include="FSharp.Compiler.Server.Shared" Version="$(FSProductVersion)" />
<_Dependency Include="FSharp.Core" Version="$(FSCoreVersion)" />
<_Dependency Include="FSharp.Editor" Version="$(VSAssemblyVersion)" />
<_Dependency Include="FSharp.LanguageService.Base" Version="$(VSAssemblyVersion)" />
...
...
src/Compiler/FSharp.Compiler.Service.fsproj
浏览文件 @
e381e353
...
...
@@ -69,7 +69,6 @@
<InternalsVisibleTo
Include=
"fsi"
/>
<InternalsVisibleTo
Include=
"fsiAnyCpu"
/>
<InternalsVisibleTo
Include=
"fsiArm64"
/>
<InternalsVisibleTo
Include=
"FSharp.Compiler.Server.Shared"
/>
<InternalsVisibleTo
Include=
"VisualFSharp.Salsa"
/>
<InternalsVisibleTo
Include=
"VisualFSharp.UnitTests"
/>
<InternalsVisibleTo
Include=
"FSharp.Compiler.UnitTests"
/>
...
...
@@ -456,6 +455,8 @@
<Compile
Include=
"Service\ServiceStructure.fs"
/>
<Compile
Include=
"Service\ServiceAnalysis.fsi"
/>
<Compile
Include=
"Service\ServiceAnalysis.fs"
/>
<Compile
Include=
"Interactive\FSharpInteractiveServer.fsi"
/>
<Compile
Include=
"Interactive\FSharpInteractiveServer.fs"
/>
<Compile
Include=
"Interactive\ControlledExecution.fs"
/>
<Compile
Include=
"Interactive\fsi.fsi"
/>
<Compile
Include=
"Interactive\fsi.fs"
/>
...
...
src/Compiler/Interactive/FSharpInteractiveServer.fs
0 → 100644
浏览文件 @
e381e353
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
namespace
FSharp
.
Compiler
.
Interactive
open
System
open
System
.
Text
open
System
.
Diagnostics
open
System
.
IO
open
System
.
IO
.
Pipes
open
System
.
Threading
module
CtrlBreakHandlers
=
let
interuptCommand
=
"Interactive-CtrlCNotificationCommand-Interupt"
let
lineInteruptCommand
=
Encoding
.
UTF8
.
GetBytes
(
interuptCommand
+
Environment
.
NewLine
)
let
connectionTimeout
=
1000
[<
AbstractClass
>]
type
public
CtrlBreakService
(
channelName
:
string
)
=
abstract
Interrupt
:
unit
->
unit
// Exceptions percolate to callsite, IO exceptions must be handled by caller
// Should be run on a new thread
member
this
.
Run
()
:
unit
=
let
service
=
new
NamedPipeServerStream
(
channelName
,
PipeDirection
.
In
)
// Wait for a client to connect
service
.
WaitForConnection
()
use
stream
=
new
StreamReader
(
service
)
try
while
not
(
stream
.
EndOfStream
)
do
let
line
=
stream
.
ReadLine
()
if
line
=
interuptCommand
then
this
.
Interrupt
()
finally
stream
.
Close
()
service
.
Close
()
type
public
CtrlBreakClient
(
channelName
:
string
)
=
let
mutable
service
:
NamedPipeClientStream
option
=
Some
(
new
NamedPipeClientStream
(
"."
,
channelName
,
PipeDirection
.
Out
))
member
this
.
Interrupt
()
=
match
service
with
|
None
->
()
|
Some
client
->
try
if
not
(
client
.
IsConnected
)
then
client
.
Connect
(
connectionTimeout
)
with
_
->
()
client
.
Write
(
lineInteruptCommand
,
0
,
lineInteruptCommand
.
Length
)
client
.
Flush
()
interface
IDisposable
with
member
_.
Dispose
()
=
match
service
with
|
None
->
()
|
Some
client
->
client
.
Dispose
()
service
<-
None
src/Compiler/Interactive/FSharpInteractiveServer.fsi
0 → 100644
浏览文件 @
e381e353
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
namespace
FSharp
.
Compiler
.
Interactive
open
System
module
CtrlBreakHandlers
=
[<
AbstractClass
>]
type
public
CtrlBreakService
=
new
:
channelName
:
string
->
CtrlBreakService
abstract
Interrupt
:
unit
->
unit
member
Run
:
unit
->
unit
type
public
CtrlBreakClient
=
new
:
channelName
:
string
->
CtrlBreakClient
member
Interrupt
:
unit
->
unit
interface
IDisposable
src/FSharp.Compiler.Server.Shared/AssemblyInfo.fs
已删除
100644 → 0
浏览文件 @
8af363b4
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
namespace
Microsoft
.
FSharp
open
System
.
Reflection
open
System
.
Runtime
.
InteropServices
[<
assembly
:
ComVisible
(
false
)>]
do
()
src/FSharp.Compiler.Server.Shared/Directory.Build.props
已删除
100644 → 0
浏览文件 @
8af363b4
<Project>
<PropertyGroup>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
</Project>
src/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
已删除
100644 → 0
浏览文件 @
8af363b4
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project
Sdk=
"Microsoft.NET.Sdk"
>
<PropertyGroup>
<TargetFramework>
net472
</TargetFramework>
<AssemblyName>
FSharp.Compiler.Server.Shared
</AssemblyName>
<UseFSharpProductVersion>
true
</UseFSharpProductVersion>
</PropertyGroup>
<!-- The FSharp.Core dll provides a referencable public interface -->
<PropertyGroup
Condition=
"'$(Configuration)' != 'Proto'"
>
<CompressMetadata
Condition=
"'$(CompressAllMetadata)' != 'true'"
>
false
</CompressMetadata>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo
Include=
"fsi"
/>
<InternalsVisibleTo
Include=
"fsiAnyCpu"
/>
<InternalsVisibleTo
Include=
"fsiArm64"
/>
<InternalsVisibleTo
Include=
"FSharp.VS.FSI"
/>
</ItemGroup>
<ItemGroup>
<Compile
Include=
"AssemblyInfo.fs"
/>
<Compile
Include=
"FSharpInteractiveServer.fs"
/>
</ItemGroup>
<ItemGroup>
<ProjectReference
Include=
"..\FSharp.Core\FSharp.Core.fsproj"
/>
</ItemGroup>
<ItemGroup>
<Reference
Include=
"System.Runtime.Remoting"
/>
</ItemGroup>
</Project>
src/FSharp.Compiler.Server.Shared/FSharpInteractiveServer.fs
已删除
100644 → 0
浏览文件 @
8af363b4
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
//[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>] // avoid calling the type "Shared" which is keyword in some languages
namespace
FSharp
.
Compiler
.
Server
.
Shared
// For FSI VS plugin, require FSI to provide services:
// e.g.
// - interrupt
// - intellisense completion
//
// This is done via remoting.
// Here we define the service class.
// This dll is required for both client (fsi-vs plugin) and server (spawned fsi).
//[<assembly: System.Security.SecurityTransparent>]
[<
assembly
:
System
.
Runtime
.
InteropServices
.
ComVisible
(
false
)>]
[<
assembly
:
System
.
CLSCompliant
(
true
)>]
do
()
open
System
open
System
.
Diagnostics
open
System
.
Runtime
.
Remoting
.
Channels
open
System
.
Runtime
.
Remoting
open
System
.
Runtime
.
Remoting
.
Lifetime
[<
AbstractClass
>]
type
internal
FSharpInteractiveServer
()
=
inherit
System
.
MarshalByRefObject
()
abstract
Interrupt
:
unit
->
unit
default
x
.
Interrupt
()
=
()
static
member
StartServer
(
channelName
:
string
,
server
:
FSharpInteractiveServer
)
=
let
chan
=
new
Ipc
.
IpcChannel
(
channelName
)
LifetimeServices
.
LeaseTime
<-
TimeSpan
(
7
,
0
,
0
,
0
)
// days,hours,mins,secs
LifetimeServices
.
LeaseManagerPollTime
<-
TimeSpan
(
7
,
0
,
0
,
0
)
LifetimeServices
.
RenewOnCallTime
<-
TimeSpan
(
7
,
0
,
0
,
0
)
LifetimeServices
.
SponsorshipTimeout
<-
TimeSpan
(
7
,
0
,
0
,
0
)
ChannelServices
.
RegisterChannel
(
chan
,
false
)
let
objRef
=
RemotingServices
.
Marshal
(
server
,
"FSIServer"
)
()
static
member
StartClient
(
channelName
)
=
let
T
=
Activator
.
GetObject
(
typeof
<
FSharpInteractiveServer
>,
"ipc://"
+
channelName
+
"/FSIServer"
)
let
x
=
T
:?>
FSharpInteractiveServer
x
src/fsi/fsi.targets
浏览文件 @
e381e353
...
...
@@ -44,9 +44,6 @@
<ProjectReference
Include=
"$(MSBuildThisFileDirectory)..\FSharp.Core\FSharp.Core.fsproj"
/>
<ProjectReference
Include=
"$(MSBuildThisFileDirectory)..\Compiler\FSharp.Compiler.Service.fsproj"
/>
<ProjectReference
Include=
"$(MSBuildThisFileDirectory)..\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj"
/>
<!-- only used when '$(TargetFramework)' == 'net472' -->
<ProjectReference
Include=
"$(MSBuildThisFileDirectory)..\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj"
Condition=
"'$(TargetFramework)' == 'net472'"
/>
</ItemGroup>
<ItemGroup
Condition=
"'$(TargetFramework)' == 'net472'"
>
...
...
src/fsi/fsimain.fs
浏览文件 @
e381e353
...
...
@@ -11,6 +11,7 @@
module
internal
Sample
.
FSharp
.
Compiler
.
Interactive
.
Main
open
System
open
System
.
Diagnostics
open
System
.
Globalization
open
System
.
IO
open
System
.
Reflection
...
...
@@ -22,6 +23,8 @@ open System.Windows.Forms
open
FSharp
.
Compiler
open
FSharp
.
Compiler
.
AbstractIL
open
FSharp
.
Compiler
.
Interactive
open
FSharp
.
Compiler
.
Interactive
.
CtrlBreakHandlers
open
FSharp
.
Compiler
.
Interactive
.
Shell
open
FSharp
.
Compiler
.
Interactive
.
Shell
.
Settings
open
FSharp
.
Compiler
.
CodeAnalysis
...
...
@@ -147,9 +150,9 @@ let internal TrySetUnhandledExceptionMode () =
/// Starts the remoting server to handle interrupt reuests from a host tool.
let
StartServer
(
fsiSession
:
FsiEvaluationSession
)
(
fsiServerName
)
=
#
if
FSI_SERVER
let
server
=
{
new
Server
.
Shared
.
FSharpInteractiveServer
()
with
{
new
CtrlBreakService
(
fsiServerName
)
with
member
_.
Interrupt
()
=
//printf "FSI-SERVER: received CTRL-C request...\n"
try
...
...
@@ -160,10 +163,7 @@ let StartServer (fsiSession: FsiEvaluationSession) (fsiServerName) =
()
}
Server
.
Shared
.
FSharpInteractiveServer
.
StartServer
(
fsiServerName
,
server
)
#
else
ignore
(
fsiSession
,
fsiServerName
)
#
endif
server
.
Run
()
//----------------------------------------------------------------------------
// GUI runCodeOnMainThread
...
...
tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected
浏览文件 @
e381e353
...
...
@@ -4151,6 +4151,14 @@ FSharp.Compiler.IO.StreamExtensions: System.String[] Stream.ReadAllLines(System.
FSharp.Compiler.IO.StreamExtensions: Void Stream.WriteAllLines(System.IO.Stream, System.Collections.Generic.IEnumerable`1[System.String], Microsoft.FSharp.Core.FSharpOption`1[System.Text.Encoding])
FSharp.Compiler.IO.StreamExtensions: Void Stream.WriteAllText(System.IO.Stream, System.String)
FSharp.Compiler.IO.StreamExtensions: Void Stream.Write[a](System.IO.Stream, a)
FSharp.Compiler.Interactive.CtrlBreakHandlers
FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakClient: Void .ctor(System.String)
FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakClient: Void Interrupt()
FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakService: Void .ctor(System.String)
FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakService: Void Interrupt()
FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakService: Void Run()
FSharp.Compiler.Interactive.CtrlBreakHandlers: FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakClient
FSharp.Compiler.Interactive.CtrlBreakHandlers: FSharp.Compiler.Interactive.CtrlBreakHandlers+CtrlBreakService
FSharp.Compiler.Interactive.Shell
FSharp.Compiler.Interactive.Shell+CompilerInputStream: Boolean CanRead
FSharp.Compiler.Interactive.Shell+CompilerInputStream: Boolean CanSeek
vsintegration/Vsix/VisualFSharpFull/Source.extension.vsixmanifest
浏览文件 @
e381e353
...
...
@@ -23,7 +23,6 @@
<Action
Type=
"Ngen"
Path=
"fsc.exe"
/>
<Action
Type=
"Ngen"
Path=
"FSharp.Compiler.Service.dll"
/>
<Action
Type=
"Ngen"
Path=
"FSharp.Compiler.Interactive.Settings.dll"
/>
<Action
Type=
"Ngen"
Path=
"FSharp.Compiler.Server.Shared.dll"
/>
<Action
Type=
"Ngen"
Path=
"FSharp.Core.dll"
/>
<Action
Type=
"Ngen"
Path=
"FSharp.DependencyManager.Nuget.dll"
/>
<Action
Type=
"Ngen"
Path=
"FSharp.Editor.dll"
/>
...
...
@@ -49,7 +48,6 @@
<Asset
Type=
"Microsoft.VisualStudio.VsPackage"
d:Source=
"File"
Path=
"FSharp.LanguageService.Base.pkgdef"
/>
<Asset
Type=
"Microsoft.VisualStudio.VsPackage"
d:Source=
"File"
Path=
"FSharp.LanguageService.pkgdef"
/>
<Asset
Type=
"Microsoft.VisualStudio.VsPackage"
d:Source=
"File"
Path=
"FSharp.Editor.pkgdef"
/>
<Asset
Type=
"Microsoft.VisualStudio.VsPackage"
d:Source=
"File"
Path=
"FSharp.Compiler.Server.Shared.pkgdef"
/>
<Asset
Type=
"Microsoft.VisualStudio.MefComponent"
d:Source=
"Project"
d:ProjectName=
"FSharp.Editor"
Path=
"|FSharp.Editor|"
/>
<Asset
Type=
"Microsoft.VisualStudio.Analyzer"
d:Source=
"Project"
d:ProjectName=
"FSharp.Editor"
Path=
"|FSharp.Editor|"
/>
...
...
vsintegration/Vsix/VisualFSharpFull/VisualFSharp.Core.targets
浏览文件 @
e381e353
...
...
@@ -48,18 +48,6 @@
<AdditionalProperties>
TargetFramework=netstandard2.0
</AdditionalProperties>
</ProjectReference>
<ProjectReference
Include=
"$(FSharpSourcesRoot)\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj"
>
<Project>
{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}
</Project>
<Name>
FSharp.Compiler.Server.Shared
</Name>
<IncludeOutputGroupsInVSIX>
BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3b
</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>
DebugSymbolsProjectOutputGroup%3b
</IncludeOutputGroupsInVSIXLocalOnly>
<Ngen>
true
</Ngen>
<NgenArchitecture>
All
</NgenArchitecture>
<NgenPriority>
2
</NgenPriority>
<Private>
True
</Private>
<AdditionalProperties>
TargetFramework=$(DependencyTargetFramework)
</AdditionalProperties>
</ProjectReference>
<ProjectReference
Include=
"$(FSharpSourcesRoot)\Compiler\FSharp.Compiler.Service.fsproj"
>
<Project>
{A59DB8AE-8044-41A5-848A-800A7FF31C93}
</Project>
<Name>
FSharp.Compiler.Service
</Name>
...
...
vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
浏览文件 @
e381e353
...
...
@@ -18,7 +18,6 @@
<InternalsVisibleTo
Include=
"FSharp.ProjectSystem.FSharp"
/>
<InternalsVisibleTo
Include=
"FSharp.ProjectSystem.PropertyPages"
/>
<InternalsVisibleTo
Include=
"FSharp.Compiler.Interactive.Settings"
/>
<InternalsVisibleTo
Include=
"FSharp.Compiler.Server.Shared"
/>
<InternalsVisibleTo
Include=
"VisualFSharp.Salsa"
/>
<InternalsVisibleTo
Include=
"VisualFSharp.UnitTests"
/>
<InternalsVisibleTo
Include=
"FSharp.Editor"
/>
...
...
vsintegration/src/FSharp.ProjectSystem.FSharp/FSharp.ProjectSystem.FSharp.fsproj
浏览文件 @
e381e353
...
...
@@ -71,11 +71,6 @@
<Version>
$(FSharpCompilerServiceVersion)
</Version>
<CodeBase>
$PackageFolder$\FSharp.Compiler.Service.dll
</CodeBase>
</AssemblyAttribute>
<AssemblyAttribute
Include=
"Microsoft.VisualStudio.Shell.ProvideCodeBaseAttribute"
>
<AssemblyName>
FSharp.Compiler.Server.Shared
</AssemblyName>
<Version>
$(FSProductVersion)
</Version>
<CodeBase>
$PackageFolder$\FSharp.Compiler.Server.Shared.dll
</CodeBase>
</AssemblyAttribute>
<AssemblyAttribute
Include=
"Microsoft.VisualStudio.Shell.ProvideCodeBaseAttribute"
>
<AssemblyName>
FSharp.UIResources
</AssemblyName>
<Version>
$(VSAssemblyVersion)
</Version>
...
...
vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj
浏览文件 @
e381e353
...
...
@@ -44,7 +44,6 @@
<ItemGroup>
<ProjectReference
Include=
"$(FSharpSourcesRoot)\FSharp.Core\FSharp.Core.fsproj"
/>
<ProjectReference
Include=
"$(FSharpSourcesRoot)\Compiler\FSharp.Compiler.Service.fsproj"
/>
<ProjectReference
Include=
"$(FSharpSourcesRoot)\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj"
/>
</ItemGroup>
<ItemGroup>
...
...
vsintegration/src/FSharp.VS.FSI/sessions.fs
浏览文件 @
e381e353
...
...
@@ -15,6 +15,9 @@ open System.Threading
let
mutable
timeoutAppShowMessageOnTimeOut
=
true
open
Microsoft
.
FSharp
.
Control
open
FSharp
.
Compiler
.
Interactive
open
FSharp
.
Compiler
.
Interactive
.
CtrlBreakHandlers
// Wrapper around ManualResetEvent which will ignore Sets on disposed object
type
internal
EventWrapper
()
=
let
waitHandle
=
new
ManualResetEvent
(
false
)
...
...
@@ -137,7 +140,7 @@ let determineFsiPath () =
let
arg
=
"fsi"
if
not
(
File
.
Exists
exe
)
then
raise
(
SessionError
(
VFSIstrings
.
SR
.
couldNotFindFsiExe
exe
))
exe
,
arg
,
false
,
false
exe
,
arg
,
false
else
let
fsiExeName
()
=
if
SessionsProperties
.
useAnyCpuVersion
then
...
...
@@ -152,9 +155,9 @@ let determineFsiPath () =
let
thisAssemblyDirectory
=
typeof
<
EventWrapper
>.
Assembly
.
Location
|>
Path
.
GetDirectoryName
Path
.
Combine
(
thisAssemblyDirectory
,
fsiExeName
()
)
// This path is relative to the location of "FSharp.Compiler.
Interactive.Settings
.dll"
// This path is relative to the location of "FSharp.Compiler.
Service
.dll"
let
determineFsiRelativePath2
()
=
let
thisAssembly
:
System
.
Reflection
.
Assembly
=
typeof
<
FSharp
.
Compiler
.
Server
.
Shared
.
FSharpInteractiveServer
>.
Assembly
let
thisAssembly
:
System
.
Reflection
.
Assembly
=
typeof
<
CtrlBreakClient
>.
Assembly
let
thisAssemblyDirectory
=
thisAssembly
.
Location
|>
Path
.
GetDirectoryName
// Use the quick-development path if available
Path
.
Combine
(
thisAssemblyDirectory
,
"Tools"
,
fsiExeName
()
)
...
...
@@ -175,7 +178,7 @@ let determineFsiPath () =
// Otherwise give up
raise
(
SessionError
(
VFSIstrings
.
SR
.
couldNotFindFsiExe
fsiRegistryPath
))
fsiExe
,
""
,
true
,
true
fsiExe
,
""
,
true
let
readOutputAsync
(
reader
:
StreamReader
)
trigger
=
let
buffer
=
StringBuilder
(
1024
)
...
...
@@ -234,7 +237,7 @@ let readOutputAsync (reader: StreamReader) trigger =
let
fsiStartInfo
channelName
sourceFile
=
let
procInfo
=
new
ProcessStartInfo
()
let
fsiPath
,
fsiFirstArgs
,
fsiSupportsS
erver
,
fsiSupportsS
hadowcopy
=
determineFsiPath
()
let
fsiPath
,
fsiFirstArgs
,
fsiSupportsShadowcopy
=
determineFsiPath
()
procInfo
.
FileName
<-
fsiPath
...
...
@@ -278,7 +281,7 @@ let fsiStartInfo channelName sourceFile =
if
Directory
.
Exists
(
initialPath
)
then
procInfo
.
WorkingDirectory
<-
initialPath
procInfo
,
fsiSupportsServer
procInfo
let
nonNull
=
function
null
->
false
|
(
s
:
string
)
->
true
...
...
@@ -287,12 +290,12 @@ let nonNull = function null -> false | (s:string) -> true
type
FsiSession
(
sourceFile
:
string
)
=
let
randomSalt
=
System
.
Random
()
let
channelName
=
let
pid
=
System
.
Diagnostics
.
Process
.
GetCurrentProcess
()
.
Id
let
tick
=
System
.
Environment
.
TickCount
let
pid
=
Process
.
GetCurrentProcess
()
.
Id
let
tick
=
Environment
.
TickCount
let
salt
=
randomSalt
.
Next
()
sprintf
"FSIChannel_%d_%d_%d"
pid
tick
salt
let
procInfo
,
fsiSupportsServer
=
fsiStartInfo
channelName
sourceFile
let
procInfo
=
fsiStartInfo
channelName
sourceFile
let
usingNetCore
=
SessionsProperties
.
fsiUseNetCore
...
...
@@ -349,21 +352,16 @@ type FsiSession(sourceFile: string) =
do
cmdProcess
.
EnableRaisingEvents
<-
true
let
client
Connection
=
if
fsiSupportsServer
then
try
Some
(
FSharp
.
Compiler
.
Server
.
Shared
.
FSharpInteractiveServer
.
StartClient
(
channelName
)
)
let
client
=
try
new
CtrlBreakClient
(
channelName
)
with
e
->
raise
(
SessionError
(
VFSIstrings
.
SR
.
exceptionRaisedWhenCreatingRemotingClient
(
e
.
ToString
()
)))
else
None
/// interrupt timeout in miliseconds
let
interruptTimeoutMS
=
1000
// Create session object
member
_.
Interrupt
()
=
match
clientConnection
with
|
None
->
false
|
Some
client
->
match
timeoutApp
"VFSI interrupt"
interruptTimeoutMS
(
fun
()
->
client
.
Interrupt
()
)
()
with
|
Some
()
->
true
|
None
->
false
...
...
@@ -378,7 +376,7 @@ type FsiSession(sourceFile: string) =
member
_.
Alive
=
not
cmdProcess
.
HasExited
member
_.
SupportsInterrupt
=
not
cmdProcess
.
HasExited
&&
clientConnection
.
IsSome
// clientConnection not on .NET Core
member
_.
SupportsInterrupt
=
not
cmdProcess
.
HasExited
member
_.
ProcessID
=
// When using .NET Core, allow up to 2 seconds to allow detection of process ID
...
...
vsintegration/update-vsintegration.cmd
浏览文件 @
e381e353
...
...
@@ -274,7 +274,6 @@ if "%DEPLOY%" == "yes" if "!ISADMIN!" == "yes" (
!
SN32
!
-Vr
HostedCompilerServer
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN32
!
-Vr
FSharp
.Compiler
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN32
!
-Vr
FSharp
.Compiler.Server.Shared
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN32
!
-Vr
FSharp
.Editor
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN32
!
-Vr
FSharp
.LanguageService
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN32
!
-Vr
FSharp
.LanguageService.Base
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
...
...
@@ -293,7 +292,6 @@ if "%DEPLOY%" == "yes" if "!ISADMIN!" == "yes" (
!
SN64
!
-Vr
HostedCompilerServer
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN64
!
-Vr
FSharp
.Compiler
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN64
!
-Vr
FSharp
.Compiler.Server.Shared
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN64
!
-Vr
FSharp
.Editor
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN64
!
-Vr
FSharp
.LanguageService
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
!
SN64
!
-Vr
FSharp
.LanguageService.Base
,
b03f5f7f11d50a3a
1
>
NUL
2
>
NUL
...
...
@@ -346,7 +344,6 @@ if "%ACTION%" == "restore" if "!ISADMIN!" == "yes" (
!
SN32
!
-Vu
HostedCompilerServer
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN32
!
-Vu
FSharp
.Compiler
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN32
!
-Vu
FSharp
.Compiler.Server.Shared
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN32
!
-Vu
FSharp
.Editor
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN32
!
-Vu
FSharp
.LanguageService
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN32
!
-Vu
FSharp
.LanguageService.Base
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
...
...
@@ -365,7 +362,6 @@ if "%ACTION%" == "restore" if "!ISADMIN!" == "yes" (
!
SN64
!
-Vu
HostedCompilerServer
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN64
!
-Vu
FSharp
.Compiler
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN64
!
-Vu
FSharp
.Compiler.Server.Shared
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN64
!
-Vu
FSharp
.Editor
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN64
!
-Vu
FSharp
.LanguageService
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
!
SN64
!
-Vu
FSharp
.LanguageService.Base
,
b03f5f7f11d50a3a
2
>
NUL
1
>
NUL
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录