diff --git a/.gitignore b/.gitignore
index 418b3677b361edfff7354bdd566094f582e65a11..1a1ec2707c25e46a863588fdcde96e199d7216ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,10 @@
# output location
artifacts/
-packages/
-
/tests/scripts/current
+.dotnet/
+.packages/
+./tools
# Patches that may have been generated by scripts.
# (These aren't generally useful to commit directly; if anything, they should be applied.)
diff --git a/.vsts-pr.yaml b/.vsts-pr.yaml
index c9f88e2296c32986359507fea4a6e03b9a59c235..b7d3862888ded9890d0ecc3f4d07c850bc43c177 100644
--- a/.vsts-pr.yaml
+++ b/.vsts-pr.yaml
@@ -1,4 +1,5 @@
jobs:
+
- job: Linux
pool:
vmImage: ubuntu-16.04
@@ -6,21 +7,42 @@ jobs:
strategy:
maxParallel: 3
matrix:
- dotnet_sdk:
- _command: make
- _args: Configuration=release
- release_fcs:
- _command: ./fcs/build.sh
- _args: Build
+ coreclr_release:
+ _configuration: Release
+ _testKind: testcoreclr
+ steps:
+ - script: ./eng/cibuild.sh --configuration $(_configuration) --$(_testKind)
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Build Logs
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_configuration)'
+ ArtifactName: 'Linux $(_configuration) $(_testKind) build log'
+ publishLocation: Container
+ continueOnError: true
+ condition: not(succeeded())
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Test Results
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
+ ArtifactName: 'Linux $(_configuration) $(_testKind)'
+ publishLocation: Container
+ continueOnError: true
+ condition: not(succeeded())
+
+- job: Linux_FCS
+ pool:
+ vmImage: ubuntu-16.04
+ timeoutInMinutes: 90
steps:
- - script: $(_command) $(_args)
+ - script: ./fcs/build.sh Build
- task: PublishBuildArtifacts@1
+ displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
- ArtifactName: 'Linux $(_command) $(_args)'
+ ArtifactName: 'Linux FCS test results'
publishLocation: Container
continueOnError: true
- condition: failed()
+ condition: not(succeeded())
- job: MacOS
pool:
@@ -29,56 +51,92 @@ jobs:
strategy:
maxParallel: 3
matrix:
- dotnet_sdk:
- _command: make
- _args: Configuration=release
- release_fcs:
- _command: ./fcs/build.sh
- _args: Build
+ coreclr_release:
+ _configuration: Release
+ _testKind: testcoreclr
steps:
- - script: $(_command) $(_args)
+ - script: ./eng/cibuild.sh --configuration $(_configuration) --$(_testKind)
- task: PublishBuildArtifacts@1
+ displayName: Publish Build Logs
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_configuration)'
+ ArtifactName: 'MacOS $(_configuration) $(_testKind) build log'
+ publishLocation: Container
+ continueOnError: true
+ condition: not(succeeded())
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
- ArtifactName: 'MacOS $(_command) $(_args)'
+ ArtifactName: 'MacOS $(_configuration) $(_testKind)'
publishLocation: Container
continueOnError: true
- condition: failed()
+ condition: not(succeeded())
+
+- job: MacOS_FCS
+ pool:
+ vmImage: macOS-10.13
+ timeoutInMinutes: 90
+ steps:
+ - script: ./fcs/build.sh Build
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Test Results
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
+ ArtifactName: 'MacOS FCS test results'
+ publishLocation: Container
+ continueOnError: true
+ condition: not(succeeded())
- job: Windows
pool:
vmImage: vs2017-win2016
timeoutInMinutes: 120
strategy:
- maxParallel: 7
+ maxParallel: 4
matrix:
- ci_part1:
- _command: build.cmd
- _args: release ci_part1
- ci_part2:
- _command: build.cmd
- _args: release ci_part2
- ci_part3:
- _command: build.cmd
- _args: release ci_part3
- ci_part4:
- _command: build.cmd
- _args: release ci_part4
- debug_default:
- _command: build.cmd
- _args: debug
- net40_no_vs:
- _command: build.cmd
- _args: release net40
- release_fcs:
- _command: fcs\build.cmd
- _args: TestAndNuget
+ desktop_release:
+ _configuration: Release
+ _testKind: testDesktop
+ coreclr_release:
+ _configuration: Release
+ _testKind: testCoreclr
+ fsharpqa_release:
+ _configuration: Release
+ _testKind: testFSharpQA
+ vs_release:
+ _configuration: Release
+ _testKind: testVs
+ steps:
+ - script: eng\CIBuild.cmd -configuration $(_configuration) -$(_testKind)
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Build Logs
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
+ ArtifactName: 'Windows $(_configuration) $(_testKind) build log'
+ publishLocation: Container
+ continueOnError: true
+ condition: not(succeeded())
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Test Results
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
+ ArtifactName: 'Windows $(_configuration) $(_testKind) test results'
+ publishLocation: Container
+ continueOnError: true
+ condition: not(succeeded())
+
+- job: Windows_FCS
+ pool:
+ vmImage: vs2017-win2016
+ timeoutInMinutes: 120
steps:
- - script: $(_command) $(_args)
+ - script: fcs\build.cmd TestAndNuget
- task: PublishBuildArtifacts@1
+ displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
- ArtifactName: 'Windows $(_command) $(_args)'
+ ArtifactName: 'Windows FCS test results'
publishLocation: Container
continueOnError: true
- condition: failed()
+ condition: not(succeeded())
diff --git a/.vsts-signed.yaml b/.vsts-signed.yaml
index 823ac20297af1e8bdd3e6461a351968b33653f6e..599237086b3f24ca5dcbb66b136327032d169cc8 100644
--- a/.vsts-signed.yaml
+++ b/.vsts-signed.yaml
@@ -1,9 +1,9 @@
variables:
-- name: PB_PublishBlobFeedUrl
- value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
- group: DotNet-Blob-Feed
-- name: PB_PublishBlobFeedKey
- value: $(dotnetfeed-storage-access-key-1)
+- name: SignType
+ value: real
+- name: VisualStudioDropName
+ value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)
jobs:
- job: Full_Signed
@@ -13,124 +13,96 @@ jobs:
variables:
BuildConfiguration: 'Release'
steps:
+
# Install Signing Plugin
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1
displayName: Install Signing Plugin
inputs:
signType: real
- condition: and(succeeded(), in(variables['PB_SignType'], 'test', 'real'))
-
- # Install Swix Plugin
- - task: ms-vseng.MicroBuildTasks.32f78468-e895-4f47-962c-58a699361df8.MicroBuildSwixPlugin@1
- displayName: Install Swix Plugin
+ esrpSigning: true
+ condition: and(succeeded(), ne(variables['SignType'], ''))
- # Run build.cmd
- - task: CmdLine@1
- displayName: Run build.cmd
- inputs:
- filename: build.cmd
- arguments: microbuild
+ # Build
+ - script: eng\CIBuild.cmd
+ -configuration $(BuildConfiguration)
+ -testAll
+ /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
+ /p:VisualStudioDropName=$(VisualStudioDropName)
+ /p:DotNetSignType=$(SignType)
+ /p:DotNetPublishToBlobFeed=true
+ /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
+ /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
+ /p:PublishToSymbolServer=true
+ /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
+ /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
+ displayName: Build
- # Publish nightly package to MyGet
- - task: PowerShell@1
- displayName: Publish nightly package to MyGet
+ # Publish logs
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Logs
inputs:
- scriptName: 'setup\publish-assets.ps1'
- arguments: '-binariesPath artifacts\bin -configuration $(BuildConfiguration) -branchName $(Build.SourceBranch) -apiKey $(FSharp.MyGetApiKey)'
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'myget'))
+ PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)'
+ ArtifactName: 'Build Diagnostic Files'
+ publishLocation: Container
+ continueOnError: true
+ condition: succeededOrFailed()
- # Package publish
- - task: CmdLine@1
- displayName: Restore package publishing
- inputs:
- filename: '.nuget\NuGet.exe'
- arguments: 'restore packages.config -PackagesDirectory packages -Source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json'
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
- - task: MSBuild@1
- displayName: Publish packages to Azure Blob Storage
- inputs:
- solution: PublishToBlob.proj
- msbuildArguments: '/t:Build /p:Configuration=$(BuildConfiguration) /p:ExpectedFeedUrl=$(PB_PublishBlobFeedUrl) /p:AccountKey=$(PB_PublishBlobFeedKey) /p:ManifestRepouri=$(Build.Repository.Uri) /p:ManifestBranch=$(Build.SourceBranch) /p:ManifestCommit=$(Build.SourceVersion) /p:ManifestBuildId=$(Build.BuildNumber) /bl:$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/pub/publish.binlog'
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
+ # Publish test results
- task: PublishBuildArtifacts@1
- displayName: Publish publishing bin log
+ displayName: Publish Test Results
inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/pub'
- ArtifactName: 'Publish_bin_log'
+ PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
+ ArtifactName: 'Test Results'
publishLocation: Container
continueOnError: true
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
- - task: CopyFiles@2
- displayName: Gather Asset Manifests
+ condition: succeededOrFailed()
+
+ # Upload VSTS Drop
+ - task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1
+ displayName: Upload VSTS Drop
inputs:
- SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest'
- TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
- continueOnError: true
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
+ DropName: $(VisualStudioDropName)
+ DropFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
+ condition: succeeded()
+
+ # Publish an artifact that the RoslynInsertionTool is able to find by its name.
- task: PublishBuildArtifacts@1
- displayName: Push Asset Manifests
+ displayName: Publish Artifact VSSetup
inputs:
- PathtoPublish: '$(Build.StagingDirectory)/AssetManifests'
- PublishLocation: Container
- ArtifactName: AssetManifests
- continueOnError: true
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
+ PathtoPublish: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
+ ArtifactName: 'VSSetup'
+ condition: succeeded()
- # Create static drop
+ # Archive NuGet packages to DevOps.
- task: PublishBuildArtifacts@1
- displayName: Create static drop
+ displayName: Publish Artifact Packages
inputs:
- PathtoPublish: 'artifacts'
- ArtifactName: '$(Build.BuildNumber)'
- publishLocation: FilePath
- TargetPath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)'
- Parallel: true
- ParallelCount: 64
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'drop'))
+ PathtoPublish: '$(Build.SourcesDirectory)\artifacts\packages\$(BuildConfiguration)'
+ ArtifactName: 'Packages'
+ condition: succeeded()
- # Publish symbols
- - task: PublishSymbols@1
- displayName: Publish symbols
+ # Publish nightly package to MyGet
+ - task: PowerShell@1
+ displayName: Publish nightly package to MyGet
inputs:
- SymbolsPath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\Symbols'
- SearchPattern: '**\*.dll;**\*.exe;**\*.pdb'
- SymbolsFolder: '$(Build.SourcesDirectory)\artifacts\SymStore'
- TreatNotIndexedAsWarning: true
- SymbolsProduct: '$(Build.DefinitionName)'
- SymbolsVersion: '$(Build.BuildNumber)'
- continueOnError: true
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'symbols'))
+ scriptName: 'setup\publish-assets.ps1'
+ arguments: '-binariesPath artifacts\bin -configuration $(BuildConfiguration) -branchName $(Build.SourceBranch) -apiKey $(FSharp.MyGetApiKey)'
+ condition: succeeded()
- # Upload VSTS Drop
- - task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1
- displayName: Upload VSTS Drop
+ # Package publish
+ - task: PublishBuildArtifacts@1
+ displayName: Push Asset Manifests
inputs:
- DropFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'vsts'))
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest'
+ ArtifactName: AssetManifests
+ continueOnError: true
+ condition: succeeded()
# Execute cleanup tasks
- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1
displayName: Execute cleanup tasks
condition: succeededOrFailed()
- # Publish Artifact: MicroBuildOutputs
- - task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: MicroBuildOutputs'
- inputs:
- PathtoPublish: '$(Build.StagingDirectory)\MicroBuild\Output'
- ArtifactName: MicroBuildOutputs
- publishLocation: Container
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'microbuild'))
-
- # Publish Symbols to Symweb
- - task: ms-vscs-artifact.build-tasks.artifactSymbolTask-1.artifactSymbolTask@0
- displayName: Publish symbols to SymWeb
- inputs:
- symbolServiceURI: 'https://microsoft.artifacts.visualstudio.com/DefaultCollection'
- sourcePath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\SymStore'
- usePat: false
- condition: and(succeeded(), contains(variables['PB_PublishType'], 'symweb'))
-
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
dependsOn:
diff --git a/Build.cmd b/Build.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..ad55484933d3742c2cdf4308aa36def236ceb328
--- /dev/null
+++ b/Build.cmd
@@ -0,0 +1,2 @@
+@echo off
+powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -build -restore %*"
diff --git a/DEVGUIDE.md b/DEVGUIDE.md
index e9c62109a964be8eeaedd35768aa09d80e4ff4f6..1c0ff3eabe3626c52cbb630f5d9e0926463f8dc9 100644
--- a/DEVGUIDE.md
+++ b/DEVGUIDE.md
@@ -34,97 +34,33 @@ Install
2. The command prompt must have Administrator rights (`Run as Administrator`).
-On Windows you can build the F# compiler for .NET Framework as follows:
+On Windows you can build the F# compiler and tools as follows:
- build.cmd
+ Build.cmd
-This is the same as
+Desktop tests can be run with:
- build.cmd net40
+ Build.cmd -test
-There are various qualifiers:
+Additional options are available via:
- build.cmd release -- build release (the default)
- build.cmd debug -- build debug instead of release
-
- build.cmd net40 -- build .NET Framework compiler (the default)
- build.cmd coreclr -- build .NET Core compiler
- build.cmd vs -- build the Visual F# IDE Tools (see below)
- build.cmd pcls -- build the PCL FSharp.Core libraries
- build.cmd all -- build all
-
- build.cmd proto -- force the rebuild of the Proto bootstrap compiler in addition to other things
-
- build.cmd test -- build default targets, run suitable tests
- build.cmd net40 test -- build net40, run suitable tests
- build.cmd coreclr test -- build coreclr, run suitable tests
- build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
- build.cmd all test -- build all, run all tests
-
- build.cmd test-smoke -- build, run smoke tests
- build.cmd test-net40-fsharp -- build, run tests\fsharp suite for .NET Framework
- build.cmd test-net40-fsharpqa -- build, run tests\fsharpqa suite for .NET Framework
+ Build.cmd /?
After you build the first time you can open and use this solution:
- .\FSharp.sln
-
-or just build it directly:
-
- msbuild FSharp.sln
+ .\VisualFSharp.sln
If you are just developing the core compiler and library then building ``FSharp.sln`` will be enough.
-### Developing the F# Compiler (Linux)
-
-For Linux/Mono, follow [these instructions](http://www.mono-project.com/docs/getting-started/install/linux/). Also you may need:
-
- sudo apt-get install mono-complete make git
-
-Then:
-
- make
-
-Then to replace your machine-wide installation:
-
- sudo make install
-
-Full testing is not yet enabled on Linux.
-
-### Developing the F# Compiler (macOS)
+### Developing the F# Compiler (Linux/macOS)
-Install XCode command line tools (or homebrew equivalents) and Mono or Visual Studio for Mac.
+For Linux/Mac:
-Then:
+ ./build.sh
- make
+Running tests:
-Then to replace your machine-wide installation:
-
- sudo make install
-
-Full testing is not yet enabled on macOS.
-
-### [Optional] Specifying the install path (Linux or macOS)
-
-You can specify a custom installation path using the DESTDIR shell variable
-
- DESTDIR=/my/path/to/fsharp make install
-
-### Developing the F# Compiler (Linux or macOS - .NET Core)
-
-Install [the latest .NET SDK](https://www.microsoft.com/net/download/). Then use
-
- src/buildfromsource.sh
-
-Outputs are placed in
-
- BuildFromSource/Debug/...
- BuildFromSource/Release/...
-
-This uses an installed .NET SDK 2.0 to build the various duplicated project
-
-Testing the .NET Core version of the F# compiler on macOS and Linux is TBD.
+ ./build.sh -test
### Developing the Visual F# IDE Tools (Windows Only)
@@ -132,15 +68,26 @@ To build and test Visual F# IDE Tools, install these requirements:
- Download [Visual Studio 2017](https://www.visualstudio.com/downloads/)
- Launch the Visual Studio Installer
- - Under the "Windows" workloads, select ".NET desktop development"
- - Select "F# desktop language support" under the optional components
- - Under the "Other Toolsets" workloads, select "Visual Studio extension development"
+ - Under the **"Windows"** workload, select **".NET desktop development"**
+ - Select the optional component **"F# desktop language support"**
+ - Under the **"Mobile & Gaming"** workload, select **"Mobile development with .NET"**
+ - Under the **"Other Toolsets"** workload, select **"Visual Studio extension development"**
+ - On the **"Individual Components"** tab, select **".NET Framework 4.7.2 SDK"** and **".NET Framework 4.7.2 targeting pack"**
Steps to build:
- build.cmd vs -- build the Visual F# IDE Tools in Release configuration (see below)
- build.cmd vs debug -- build the Visual F# IDE Tools in Debug configuration (see below)
- build.cmd vs test -- build Visual F# IDE Tools, run all tests (see below)
+ Build.cmd -- build all F# components under the default configuration (Debug)
+ Build.cmd -configuration Release -- build all F# components as Release
+ Build.cmd -testDesktop -- build and test all net46 tests
+
+All test options:
+
+ -testDesktop -- test all net46 target frameworks
+ -testCoreClr -- test all netstandard and netcoreapp target frameworks
+ -testFSharpQA -- test all F# Cambridge tests
+ -testVs -- test all VS integration points
+ -testFcs -- test F# compiler service components
+ -testAll -- all of the above
Use ``VisualFSharp.sln`` if you're building the Visual F# IDE Tools.
diff --git a/FSharp.Directory.Build.props b/Directory.Build.props
similarity index 100%
rename from FSharp.Directory.Build.props
rename to Directory.Build.props
diff --git a/FSharp.Directory.Build.targets b/Directory.Build.targets
similarity index 99%
rename from FSharp.Directory.Build.targets
rename to Directory.Build.targets
index 84125426d58eb00fb02ce8dfe1101f3b09fca8fa..08da3ab09668fd3d6385edf9c78dcea6262dd8dc 100644
--- a/FSharp.Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,7 +1,5 @@
-
-
diff --git a/DotnetCLIToolsVersion.txt b/DotnetCLIToolsVersion.txt
deleted file mode 100644
index 38295b0d98d7a61c7a4b4f172273498baa94651a..0000000000000000000000000000000000000000
--- a/DotnetCLIToolsVersion.txt
+++ /dev/null
@@ -1 +0,0 @@
-2.1.504
\ No newline at end of file
diff --git a/FSharp.sln b/FSharp.sln
index 923255dd35ba917aa9f1a0b20da9956dfdc44cf5..115e9a219c9520b6946d2a0055b5862caeaefe74 100644
--- a/FSharp.sln
+++ b/FSharp.sln
@@ -3,35 +3,28 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Private", "src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Private", "src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Server.Shared", "src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core", "src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build", "src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsc", "src\fsharp\Fsc\Fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Build", "src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Interactive.Settings", "src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsc", "src\fsharp\fsc\fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsiAnyCPU", "src\fsharp\fsiAnyCpu\FsiAnyCPU.fsproj", "{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}"
- ProjectSection(ProjectDependencies) = postProject
- {649FA588-F02E-457C-9FCF-87E46407481E} = {649FA588-F02E-457C-9FCF-87E46407481E}
- EndProjectSection
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Interactive.Settings", "src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsi", "src\fsharp\fsi\Fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsi", "src\fsharp\fsi\fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
ProjectSection(ProjectDependencies) = postProject
{649FA588-F02E-457C-9FCF-87E46407481E} = {649FA588-F02E-457C-9FCF-87E46407481E}
EndProjectSection
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Tests.FSharpSuite", "tests\fsharp\FSharp.Tests.FSharpSuite.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharpSuite.Tests", "tests\fsharp\FSharpSuite.Tests.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.UnitTests", "tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.UnitTests", "tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core.UnitTests", "tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core.UnitTests", "tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"
EndProject
@@ -39,7 +32,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B8DDA694
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{3058BC79-8E79-4645-B05D-48CC182FA8A6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fsharpqafiles", "tests\fsharpqa\fsharpqafiles.csproj", "{AAAAD274-696A-49EC-AAAA-F870BE91AAAA}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Build.UnitTests", "tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj", "{53C0DAAD-158C-4658-8EC7-D7341530239F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -55,34 +48,22 @@ Global
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.Build.0 = Debug|Any CPU
- {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.ActiveCfg = Proto|Any CPU
- {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.Build.0 = Proto|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.ActiveCfg = Release|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.Build.0 = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.Build.0 = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|x86.ActiveCfg = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.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 = Proto|Any CPU
- {D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.ActiveCfg = Proto|Any CPU
- {D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}.Proto|x86.Build.0 = Proto|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
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.Build.0 = Debug|Any CPU
- {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.ActiveCfg = Proto|Any CPU
- {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.Build.0 = Proto|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.ActiveCfg = Release|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|Any CPU.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|x86.ActiveCfg = Release|Any CPU
@@ -91,10 +72,10 @@ Global
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|Any CPU.Build.0 = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|x86.ActiveCfg = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|x86.Build.0 = Debug|Any CPU
- {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.ActiveCfg = Proto|Any CPU
- {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.Build.0 = Proto|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.ActiveCfg = Release|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.Build.0 = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|Any CPU.ActiveCfg = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|Any CPU.Build.0 = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|x86.ActiveCfg = Release|Any CPU
@@ -103,10 +84,10 @@ Global
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|x86.ActiveCfg = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|x86.Build.0 = Debug|Any CPU
- {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.ActiveCfg = Proto|Any CPU
- {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.Build.0 = Proto|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.ActiveCfg = Release|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.Build.0 = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|Any CPU.Build.0 = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|x86.ActiveCfg = Release|Any CPU
@@ -115,34 +96,22 @@ Global
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|x86.ActiveCfg = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|x86.Build.0 = Debug|Any CPU
- {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.ActiveCfg = Proto|Any CPU
- {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.Build.0 = Proto|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.ActiveCfg = Release|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.Build.0 = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.Build.0 = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.ActiveCfg = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.Build.0 = Release|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.Build.0 = Debug|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.ActiveCfg = Proto|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.Build.0 = Proto|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.Build.0 = Release|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.ActiveCfg = Release|Any CPU
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.Build.0 = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.Build.0 = Debug|Any CPU
- {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.ActiveCfg = Proto|Any CPU
- {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.Build.0 = Proto|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.ActiveCfg = Release|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.Build.0 = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|Any CPU.Build.0 = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|x86.ActiveCfg = Release|Any CPU
@@ -151,10 +120,10 @@ Global
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.ActiveCfg = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.Build.0 = Debug|Any CPU
- {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.ActiveCfg = Proto|Any CPU
- {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.Build.0 = Proto|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.ActiveCfg = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.Build.0 = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.Build.0 = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|x86.ActiveCfg = Release|Any CPU
@@ -163,10 +132,10 @@ Global
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.Build.0 = Debug|Any CPU
- {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.ActiveCfg = Proto|Any CPU
- {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.Build.0 = Proto|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.ActiveCfg = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.Build.0 = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.Build.0 = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|x86.ActiveCfg = Release|Any CPU
@@ -175,42 +144,41 @@ Global
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.ActiveCfg = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.Build.0 = Debug|Any CPU
- {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.ActiveCfg = Proto|Any CPU
- {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.Build.0 = Proto|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.ActiveCfg = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.Build.0 = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.Build.0 = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.ActiveCfg = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.Build.0 = Release|Any CPU
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Debug|Any CPU.ActiveCfg = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Debug|x86.ActiveCfg = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Debug|x86.Build.0 = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Proto|Any CPU.ActiveCfg = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Proto|Any CPU.Build.0 = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Proto|x86.ActiveCfg = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Proto|x86.Build.0 = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Release|Any CPU.ActiveCfg = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Release|Any CPU.Build.0 = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Release|x86.ActiveCfg = Debug|x86
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA}.Release|x86.Build.0 = Debug|x86
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Debug|x86.Build.0 = Debug|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Proto|x86.ActiveCfg = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Proto|x86.Build.0 = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Release|x86.ActiveCfg = Release|Any CPU
+ {53C0DAAD-158C-4658-8EC7-D7341530239F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
- {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}
{C94C257C-3C0A-4858-B5D8-D746498D1F08} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{649FA588-F02E-457C-9FCF-87E46407481E} = {B8DDA694-7939-42E3-95E5-265C2217C142}
- {8B3E283D-B5FE-4055-9D80-7E3A32F3967B} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{D0E98C0D-490B-4C61-9329-0862F6E87645} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{C163E892-5BF7-4B59-AA99-B0E8079C67C4} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{88E2D422-6852-46E3-A740-83E391DC7973} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {AAAAD274-696A-49EC-AAAA-F870BE91AAAA} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
+ {53C0DAAD-158C-4658-8EC7-D7341530239F} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BD5177C7-1380-40E7-94D2-7768E1A8B1B8}
diff --git a/FSharpBuild.Directory.Build.props b/FSharpBuild.Directory.Build.props
index fcbe5205d0bf04e85e13d161ea5dc1e79f7e49f8..c38700df06c3835aeb8ded50e7cc9ae39a15e8a7 100644
--- a/FSharpBuild.Directory.Build.props
+++ b/FSharpBuild.Directory.Build.props
@@ -1,25 +1,14 @@
-
-
-
-
+
+
- Debug
- $(MSBuildThisFileDirectory)
$(RepoRoot)src
- $(RepoRoot)artifacts
- $(ArtifactsDir)\toolset
- $(ArtifactsDir)\bin
- $(ArtifactsDir)\obj
- $(ArtifactsDir)\packages
- $(ArtifactsBinDir)\$(MSBuildProjectName)
- $(ArtifactsObjDir)\$(MSBuildProjectName)
$(ArtifactsDir)\SymStore
- $(ArtifactsBinDir)\fsc\Proto\net46
- $(ArtifactsBinDir)/fsc/Proto/netcoreapp2.1
+ $(ArtifactsDir)\Bootstrap
+ $(ArtifactsDir)/fsc/Proto/netcoreapp2.1
4.4.0
1182;0025;$(WarningsAsErrors)
@@ -62,13 +51,8 @@
- false
- true
- $(FSharpSourcesRoot)\fsharp\msft.pubkey
- true
- true
+ Microsoft
-
$(FSharpSourcesRoot)\fsharp\test.snk
false
@@ -83,6 +67,8 @@
+ $(NoWarn);FS2003
+ true
portable
fs
false
diff --git a/FSharpBuild.Directory.Build.targets b/FSharpBuild.Directory.Build.targets
index fa39d7498fd53cb2f5fd3c2598ad872e6346afe1..4c700d1ac224e63e90383ef19c5942f806ef058e 100644
--- a/FSharpBuild.Directory.Build.targets
+++ b/FSharpBuild.Directory.Build.targets
@@ -1,5 +1,7 @@
+
+
@@ -13,6 +15,7 @@
during `net46`, but for purposes of restore needs to be present.
-->
$(AssetTargetFallback);net462
+ $(NoWarn);NU1605;NU1701
@@ -34,9 +37,4 @@
-
-
-
-
-
diff --git a/FSharpTests.Directory.Build.props b/FSharpTests.Directory.Build.props
index a0481c8b4a0a0135c9767a03a44c74b7fbc7aa7a..6c298fe44266479a2eb1738706727d9078135f57 100644
--- a/FSharpTests.Directory.Build.props
+++ b/FSharpTests.Directory.Build.props
@@ -19,12 +19,12 @@
true
- $(MSBuildThisFileDirectory)artifacts\toolset\dotnet
+ $([System.IO.Path]::GetDirectoryName('$(DOTNET_HOST_PATH)'))
dotnet.exe
dotnet
$(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\netcoreapp2.1\fsc.exe
- $(MSBuildThisFileDirectory)artifacts\toolset\dotnet
+ $([System.IO.Path]::GetDirectoryName('$(DOTNET_HOST_PATH)'))
dotnet.exe
dotnet
$(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\netcoreapp2.1\fsi.exe
diff --git a/NuGet.Config b/NuGet.config
similarity index 100%
rename from NuGet.Config
rename to NuGet.config
diff --git a/PublishToBlob.proj b/PublishToBlob.proj
deleted file mode 100644
index 21e8ec6eb6fa75202a51027472d1f680e8ddafdc..0000000000000000000000000000000000000000
--- a/PublishToBlob.proj
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
- Microsoft.DotNet.Build.Tasks.Feed
-
- 2.2.0-beta.19066.1
-
-
-
-
-
-
-
-
-
-
- $(MSBuildThisFileDirectory)artifacts\log\$(Configuration)\
- AnyCPU
- $(Platform)
- $(ArtifactsLogDir)AssetManifest\$(OS)-$(PlatformName).xml
-
-
-
-
-
-
-
diff --git a/Restore.cmd b/Restore.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..1b84815f3ed0f984fb1e6016b92e3c0b1de5236f
--- /dev/null
+++ b/Restore.cmd
@@ -0,0 +1,2 @@
+@echo off
+powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -restore %*"
diff --git a/Test.cmd b/Test.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..4a6eabc39e2b12e04916a563d43e31d572ae4dcb
--- /dev/null
+++ b/Test.cmd
@@ -0,0 +1,2 @@
+@echo off
+powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -test %*"
diff --git a/VisualFSharp.sln b/VisualFSharp.sln
index ea9bbe592d7b292ddc48b4bbcb9c3b7f75642540..2ac4e75bf61b3091f9690eeffc321d71c07e0259 100644
--- a/VisualFSharp.sln
+++ b/VisualFSharp.sln
@@ -3,98 +3,98 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28010.2036
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.VS.FSI", "vsintegration\src\FSharp.VS.FSI\FSharp.VS.FSI.fsproj", "{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Private", "src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp.UnitTests Support", "VisualFSharp.UnitTests Support", "{3F044931-FB83-4433-B934-AE66AB27B278}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualFSharpFull", "vsintegration\Vsix\VisualFSharpFull\VisualFSharpFull.csproj", "{59ADCE46-9740-4079-834D-9A03A3494EBC}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp", "VisualFSharp", "{4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}"
+ ProjectSection(SolutionItems) = preProject
+ vsintegration\readme.md = vsintegration\readme.md
+ EndProjectSection
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Server.Shared", "src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.LanguageService", "vsintegration\src\FSharp.LanguageService\FSharp.LanguageService.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B8DDA694-7939-42E3-95E5-265C2217C142}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.LanguageService.Base", "vsintegration\src\FSharp.LanguageService.Base\FSharp.LanguageService.Base.csproj", "{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{3058BC79-8E79-4645-B05D-48CC182FA8A6}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Editor", "vsintegration\src\FSharp.Editor\FSharp.Editor.fsproj", "{65E0E82A-EACE-4787-8994-888674C2FE87}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ItemTemplates", "ItemTemplates", "{F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectSystem.Base", "vsintegration\src\FSharp.ProjectSystem.Base\Project\ProjectSystem.Base.csproj", "{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utils", "Utils", "{D086C8C6-D00D-4C3B-9AB2-A4286C9F5922}"
EndProject
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "FSharp.PropertiesPages", "vsintegration\src\FSharp.ProjectSystem.PropertyPages\FSharp.PropertiesPages.vbproj", "{FCFB214C-462E-42B3-91CA-FC557EFEE74F}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FSharp.Compiler.Service.tests Support", "FSharp.Compiler.Service.tests Support", "{35636A82-401A-4C3A-B2AB-EB7DC5E9C268}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ProjectSystem", "vsintegration\src\FSharp.ProjectSystem.FSharp\ProjectSystem.fsproj", "{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Legacy", "Legacy", "{CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProjectTemplates", "ProjectTemplates", "{C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.VS.FSI", "vsintegration\src\FSharp.VS.FSI\FSharp.VS.FSI.fsproj", "{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Private", "src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "VisualFSharp.Salsa", "vsintegration\tests\Salsa\VisualFSharp.Salsa.fsproj", "{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualFSharpFull", "vsintegration\Vsix\VisualFSharpFull\VisualFSharpFull.csproj", "{59ADCE46-9740-4079-834D-9A03A3494EBC}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "VisualFSharp.UnitTests", "vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualFSharpTemplates", "vsintegration\Vsix\VisualFSharpTemplates\VisualFSharpTemplates.csproj", "{025CE01B-98F3-4C3C-B486-2C0BD038D011}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttribute", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttribute\DefinitionLocationAttribute.csproj", "{DA39AD38-4A58-47BF-9215-E49768295169}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Server.Shared", "src\fsharp\FSharp.Compiler.Server.Shared\FSharp.Compiler.Server.Shared.fsproj", "{D5870CF0-ED51-4CBC-B3D7-6F56DA84AC06}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeFileDoesnotExist", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttributeFileDoesnotExist\DefinitionLocationAttributeFileDoesnotExist.csproj", "{8C2439BD-0E49-4929-A8B1-29CEE228191E}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core", "src\fsharp\FSharp.Core\FSharp.Core.fsproj", "{DED3BBD7-53F4-428A-8C9F-27968E768605}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeLineDoesnotExist", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttributeLineDoesnotExist\DefinitionLocationAttributeLineDoesnotExist.csproj", "{F47196DC-186D-4055-BAF2-658282A12F33}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.LanguageService", "vsintegration\src\FSharp.LanguageService\FSharp.LanguageService.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefinitionLocationAttributeWithSpaceInTheType", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttributeWithSpaceInTheType\DefinitionLocationAttributeWithSpaceInTheType.csproj", "{D4C88934-5893-467E-A55C-A11ECD6479FE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.LanguageService.Base", "vsintegration\src\FSharp.LanguageService.Base\FSharp.LanguageService.Base.csproj", "{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "DummyProviderForLanguageServiceTesting", "vsintegration\tests\MockTypeProviders\DummyProviderForLanguageServiceTesting\DummyProviderForLanguageServiceTesting.fsproj", "{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Editor", "vsintegration\src\FSharp.Editor\FSharp.Editor.fsproj", "{65E0E82A-EACE-4787-8994-888674C2FE87}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EditorHideMethodsAttribute", "vsintegration\tests\MockTypeProviders\EditorHideMethodsAttribute\EditorHideMethodsAttribute.csproj", "{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectSystem.Base", "vsintegration\src\FSharp.ProjectSystem.Base\Project\ProjectSystem.Base.csproj", "{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "EmptyAssembly", "vsintegration\tests\MockTypeProviders\EmptyAssembly\EmptyAssembly.fsproj", "{004982C6-93EA-4E70-B4F0-BE7D7219926A}"
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "FSharp.PropertiesPages", "vsintegration\src\FSharp.ProjectSystem.PropertyPages\FSharp.PropertiesPages.vbproj", "{FCFB214C-462E-42B3-91CA-FC557EFEE74F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithAdequateComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithAdequateComment\XmlDocAttributeWithAdequateComment.csproj", "{243A81AC-A954-4601-833A-60EEEFB00FCD}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ProjectSystem", "vsintegration\src\FSharp.ProjectSystem.FSharp\ProjectSystem.fsproj", "{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithEmptyComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithEmptyComment\XmlDocAttributeWithEmptyComment.csproj", "{B4595EB6-053A-400E-AA1B-7727F1BC900F}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "VisualFSharp.Salsa", "vsintegration\tests\Salsa\VisualFSharp.Salsa.fsproj", "{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithLocalizedComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithLocalizedComment\XmlDocAttributeWithLocalizedComment.csproj", "{A559D7E8-7EFD-473A-B618-A10B41AB523B}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "VisualFSharp.UnitTests", "vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj", "{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithLongComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithLongComment\XmlDocAttributeWithLongComment.csproj", "{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DefinitionLocationAttribute", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttribute\DefinitionLocationAttribute.csproj", "{DA39AD38-4A58-47BF-9215-E49768295169}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlDocAttributeWithNullComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithNullComment\XmlDocAttributeWithNullComment.csproj", "{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DefinitionLocationAttributeFileDoesnotExist", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttributeFileDoesnotExist\DefinitionLocationAttributeFileDoesnotExist.csproj", "{8C2439BD-0E49-4929-A8B1-29CEE228191E}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build", "src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DefinitionLocationAttributeLineDoesnotExist", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttributeLineDoesnotExist\DefinitionLocationAttributeLineDoesnotExist.csproj", "{F47196DC-186D-4055-BAF2-658282A12F33}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsc", "src\fsharp\Fsc\Fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DefinitionLocationAttributeWithSpaceInTheType", "vsintegration\tests\MockTypeProviders\DefinitionLocationAttributeWithSpaceInTheType\DefinitionLocationAttributeWithSpaceInTheType.csproj", "{D4C88934-5893-467E-A55C-A11ECD6479FE}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Interactive.Settings", "src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "DummyProviderForLanguageServiceTesting", "vsintegration\tests\MockTypeProviders\DummyProviderForLanguageServiceTesting\DummyProviderForLanguageServiceTesting.fsproj", "{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FsiAnyCPU", "src\fsharp\fsiAnyCpu\FsiAnyCPU.fsproj", "{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EditorHideMethodsAttribute", "vsintegration\tests\MockTypeProviders\EditorHideMethodsAttribute\EditorHideMethodsAttribute.csproj", "{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Fsi", "src\fsharp\fsi\Fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "EmptyAssembly", "vsintegration\tests\MockTypeProviders\EmptyAssembly\EmptyAssembly.fsproj", "{004982C6-93EA-4E70-B4F0-BE7D7219926A}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Tests.FSharpSuite", "tests\fsharp\FSharp.Tests.FSharpSuite.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDocAttributeWithAdequateComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithAdequateComment\XmlDocAttributeWithAdequateComment.csproj", "{243A81AC-A954-4601-833A-60EEEFB00FCD}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp.UnitTests Support", "VisualFSharp.UnitTests Support", "{3F044931-FB83-4433-B934-AE66AB27B278}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDocAttributeWithEmptyComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithEmptyComment\XmlDocAttributeWithEmptyComment.csproj", "{B4595EB6-053A-400E-AA1B-7727F1BC900F}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.UnitTests", "tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDocAttributeWithLocalizedComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithLocalizedComment\XmlDocAttributeWithLocalizedComment.csproj", "{A559D7E8-7EFD-473A-B618-A10B41AB523B}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core.UnitTests", "tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDocAttributeWithLongComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithLongComment\XmlDocAttributeWithLongComment.csproj", "{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp", "VisualFSharp", "{4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}"
- ProjectSection(SolutionItems) = preProject
- vsintegration\readme.md = vsintegration\readme.md
- EndProjectSection
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDocAttributeWithNullComment", "vsintegration\tests\MockTypeProviders\XmlDocAttributeWithNullComment\XmlDocAttributeWithNullComment.csproj", "{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Build", "src\fsharp\FSharp.Build\FSharp.Build.fsproj", "{702A7979-BCF9-4C41-853E-3ADFC9897890}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsc", "src\fsharp\fsc\fsc.fsproj", "{C94C257C-3C0A-4858-B5D8-D746498D1F08}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B8DDA694-7939-42E3-95E5-265C2217C142}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Interactive.Settings", "src\fsharp\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj", "{649FA588-F02E-457C-9FCF-87E46407481E}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{3058BC79-8E79-4645-B05D-48CC182FA8A6}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsiAnyCpu", "src\fsharp\fsiAnyCpu\fsiAnyCpu.fsproj", "{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleProject", "vsintegration\ProjectTemplates\ConsoleProject\ConsoleProject.csproj", "{604F0DAA-2D33-48DD-B162-EDF0B672803D}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "fsi", "src\fsharp\fsi\fsi.fsproj", "{D0E98C0D-490B-4C61-9329-0862F6E87645}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryProject", "vsintegration\ProjectTemplates\LibraryProject\LibraryProject.csproj", "{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharpSuite.Tests", "tests\fsharp\FSharpSuite.Tests.fsproj", "{C163E892-5BF7-4B59-AA99-B0E8079C67C4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialProject", "vsintegration\ProjectTemplates\TutorialProject\TutorialProject.csproj", "{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.UnitTests", "tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj", "{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ItemTemplates", "ItemTemplates", "{F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Core.UnitTests", "tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj", "{88E2D422-6852-46E3-A740-83E391DC7973}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppConfig", "vsintegration\ItemTemplates\AppConfig\AppConfig.csproj", "{6BA13AA4-C25F-480F-856B-8E8000299A72}"
EndProject
@@ -108,38 +108,56 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextFile", "vsintegration\I
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLFile", "vsintegration\ItemTemplates\XMLFile\XMLFile.csproj", "{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HostedCompilerServer", "tests\fsharpqa\testenv\src\HostedCompilerServer\HostedCompilerServer.fsproj", "{4239EFEA-E746-446A-BF7A-51FCBAB13946}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "HostedCompilerServer", "tests\fsharpqa\testenv\src\HostedCompilerServer\HostedCompilerServer.fsproj", "{4239EFEA-E746-446A-BF7A-51FCBAB13946}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ILComparer", "tests\fsharpqa\testenv\src\ILComparer\ILComparer.fsproj", "{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utils", "Utils", "{D086C8C6-D00D-4C3B-9AB2-A4286C9F5922}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ILComparer", "tests\fsharpqa\testenv\src\ILComparer\ILComparer.fsproj", "{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "LanguageServiceProfiling", "vsintegration\Utils\LanguageServiceProfiling\LanguageServiceProfiling.fsproj", "{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.UIResources", "vsintegration\src\FSharp.UIResources\FSharp.UIResources.csproj", "{C4586A06-1402-48BC-8E35-A1B8642F895B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharp_Analysis", "tests\service\data\CSharp_Analysis\CSharp_Analysis.csproj", "{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharp_Analysis", "tests\service\data\CSharp_Analysis\CSharp_Analysis.csproj", "{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FSharp.Compiler.Service.tests Support", "FSharp.Compiler.Service.tests Support", "{35636A82-401A-4C3A-B2AB-EB7DC5E9C268}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "TestTP", "tests\service\data\TestTP\TestTP.fsproj", "{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "TestTP", "tests\service\data\TestTP\TestTP.fsproj", "{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceFile", "vsintegration\ItemTemplates\ResourceFile\ResourceFile.csproj", "{0385564F-07B4-4264-AB8A-17C393E9140C}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build.UnitTests", "tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj", "{400FAB03-786E-40CC-85A8-04B0C2869B14}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Build.UnitTests", "tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj", "{400FAB03-786E-40CC-85A8-04B0C2869B14}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PEVerify", "tests\fsharpqa\testenv\src\PEVerify\PEVerify.csproj", "{B0689A4E-07D8-494D-A0C8-791CB1D74E54}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp.PatternMatcher", "vsintegration\src\FSharp.PatternMatcher\FSharp.PatternMatcher.csproj", "{18227628-DF90-4C47-AF3D-CC72D2EDD986}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Legacy", "Legacy", "{CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "GetTypesVS.UnitTests", "vsintegration\tests\GetTypesVS.UnitTests\GetTypesVS.UnitTests.fsproj", "{6D93CEBD-4540-4D96-A153-B440A661FD09}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Setup", "Setup", "{6235B3AF-774D-4EA1-8F37-789E767F6368}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.Compiler.MSBuild", "setup\Swix\Microsoft.FSharp.Compiler.MSBuild\Microsoft.FSharp.Compiler.MSBuild.csproj", "{4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.Dependencies", "setup\Swix\Microsoft.FSharp.Dependencies\Microsoft.FSharp.Dependencies.csproj", "{6BCFED7A-3F67-4180-B307-C7D69D191D8C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.IDE", "setup\Swix\Microsoft.FSharp.IDE\Microsoft.FSharp.IDE.csproj", "{E93E7D28-1C6B-4E04-BE83-68428CF7E039}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "GetTypesVSUnitTests", "vsintegration\tests\GetTypesVSUnitTests\GetTypesVSUnitTests.fsproj", "{6D93CEBD-4540-4D96-A153-B440A661FD09}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.SDK", "setup\Swix\Microsoft.FSharp.SDK\Microsoft.FSharp.SDK.csproj", "{9482211E-23D0-4BD0-9893-E4AA5559F67A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuGet", "NuGet", "{647810D0-5307-448F-99A2-E83917010DAE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.Compiler", "src\fsharp\FSharp.Compiler.nuget\Microsoft.FSharp.Compiler.csproj", "{04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProjectTemplates", "ProjectTemplates", "{BED74F9E-A0D2-48E2-9EE7-449832100487}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleProject", "vsintegration\ProjectTemplates\ConsoleProject\ConsoleProject.csproj", "{1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryProject", "vsintegration\ProjectTemplates\LibraryProject\LibraryProject.csproj", "{C32806E0-71C2-40E4-AEC4-517F73F6A18A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialProject", "vsintegration\ProjectTemplates\TutorialProject\TutorialProject.csproj", "{7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
+ Proto|Any CPU = Proto|Any CPU
+ Proto|x86 = Proto|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
@@ -148,6 +166,10 @@ Global
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Debug|Any CPU.Build.0 = Debug|Any CPU
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Debug|x86.ActiveCfg = Debug|Any CPU
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Debug|x86.Build.0 = Debug|Any CPU
+ {991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Proto|x86.ActiveCfg = Release|Any CPU
+ {991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Proto|x86.Build.0 = Release|Any CPU
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Release|Any CPU.ActiveCfg = Release|Any CPU
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Release|Any CPU.Build.0 = Release|Any CPU
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}.Release|x86.ActiveCfg = Release|Any CPU
@@ -156,6 +178,10 @@ Global
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Debug|x86.Build.0 = Debug|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.ActiveCfg = Release|Any CPU
+ {2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Proto|x86.Build.0 = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|Any CPU.Build.0 = Release|Any CPU
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}.Release|x86.ActiveCfg = Release|Any CPU
@@ -164,6 +190,10 @@ Global
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Debug|x86.ActiveCfg = Debug|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Debug|x86.Build.0 = Debug|Any CPU
+ {59ADCE46-9740-4079-834D-9A03A3494EBC}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {59ADCE46-9740-4079-834D-9A03A3494EBC}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {59ADCE46-9740-4079-834D-9A03A3494EBC}.Proto|x86.ActiveCfg = Release|Any CPU
+ {59ADCE46-9740-4079-834D-9A03A3494EBC}.Proto|x86.Build.0 = Release|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Release|Any CPU.Build.0 = Release|Any CPU
{59ADCE46-9740-4079-834D-9A03A3494EBC}.Release|x86.ActiveCfg = Release|Any CPU
@@ -172,6 +202,10 @@ Global
{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
@@ -180,6 +214,10 @@ Global
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.ActiveCfg = Debug|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Debug|x86.Build.0 = Debug|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.ActiveCfg = Release|Any CPU
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}.Proto|x86.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|Any CPU.Build.0 = Release|Any CPU
{DED3BBD7-53F4-428A-8C9F-27968E768605}.Release|x86.ActiveCfg = Release|Any CPU
@@ -188,6 +226,10 @@ Global
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Debug|x86.ActiveCfg = Debug|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Debug|x86.Build.0 = Debug|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Proto|x86.ActiveCfg = Release|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Proto|x86.Build.0 = Release|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Release|Any CPU.Build.0 = Release|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}.Release|x86.ActiveCfg = Release|Any CPU
@@ -196,6 +238,10 @@ Global
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Debug|x86.ActiveCfg = Debug|Any CPU
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Debug|x86.Build.0 = Debug|Any CPU
+ {1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Proto|x86.ActiveCfg = Release|Any CPU
+ {1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Proto|x86.Build.0 = Release|Any CPU
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Release|Any CPU.Build.0 = Release|Any CPU
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}.Release|x86.ActiveCfg = Release|Any CPU
@@ -204,6 +250,10 @@ Global
{65E0E82A-EACE-4787-8994-888674C2FE87}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65E0E82A-EACE-4787-8994-888674C2FE87}.Debug|x86.ActiveCfg = Debug|Any CPU
{65E0E82A-EACE-4787-8994-888674C2FE87}.Debug|x86.Build.0 = Debug|Any CPU
+ {65E0E82A-EACE-4787-8994-888674C2FE87}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {65E0E82A-EACE-4787-8994-888674C2FE87}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {65E0E82A-EACE-4787-8994-888674C2FE87}.Proto|x86.ActiveCfg = Release|Any CPU
+ {65E0E82A-EACE-4787-8994-888674C2FE87}.Proto|x86.Build.0 = Release|Any CPU
{65E0E82A-EACE-4787-8994-888674C2FE87}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65E0E82A-EACE-4787-8994-888674C2FE87}.Release|Any CPU.Build.0 = Release|Any CPU
{65E0E82A-EACE-4787-8994-888674C2FE87}.Release|x86.ActiveCfg = Release|Any CPU
@@ -212,6 +262,10 @@ Global
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Debug|x86.ActiveCfg = Debug|Any CPU
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Debug|x86.Build.0 = Debug|Any CPU
+ {B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Proto|x86.ActiveCfg = Release|Any CPU
+ {B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Proto|x86.Build.0 = Release|Any CPU
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Release|Any CPU.Build.0 = Release|Any CPU
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}.Release|x86.ActiveCfg = Release|Any CPU
@@ -220,6 +274,10 @@ Global
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Debug|x86.ActiveCfg = Debug|Any CPU
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Debug|x86.Build.0 = Debug|Any CPU
+ {FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Proto|x86.Build.0 = Proto|Any CPU
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Release|Any CPU.Build.0 = Release|Any CPU
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}.Release|x86.ActiveCfg = Release|Any CPU
@@ -228,6 +286,10 @@ Global
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Debug|x86.ActiveCfg = Debug|Any CPU
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Debug|x86.Build.0 = Debug|Any CPU
+ {6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Proto|x86.ActiveCfg = Release|Any CPU
+ {6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Proto|x86.Build.0 = Release|Any CPU
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Release|Any CPU.Build.0 = Release|Any CPU
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}.Release|x86.ActiveCfg = Release|Any CPU
@@ -236,6 +298,10 @@ Global
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Debug|x86.ActiveCfg = Debug|Any CPU
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Debug|x86.Build.0 = Debug|Any CPU
+ {FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Proto|x86.ActiveCfg = Release|Any CPU
+ {FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Proto|x86.Build.0 = Release|Any CPU
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Release|Any CPU.Build.0 = Release|Any CPU
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7}.Release|x86.ActiveCfg = Release|Any CPU
@@ -244,6 +310,10 @@ Global
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Debug|x86.ActiveCfg = Debug|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Debug|x86.Build.0 = Debug|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Proto|x86.ActiveCfg = Release|Any CPU
+ {EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Proto|x86.Build.0 = Release|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Release|Any CPU.Build.0 = Release|Any CPU
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F}.Release|x86.ActiveCfg = Release|Any CPU
@@ -252,6 +322,10 @@ Global
{DA39AD38-4A58-47BF-9215-E49768295169}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DA39AD38-4A58-47BF-9215-E49768295169}.Debug|x86.ActiveCfg = Debug|Any CPU
{DA39AD38-4A58-47BF-9215-E49768295169}.Debug|x86.Build.0 = Debug|Any CPU
+ {DA39AD38-4A58-47BF-9215-E49768295169}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {DA39AD38-4A58-47BF-9215-E49768295169}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {DA39AD38-4A58-47BF-9215-E49768295169}.Proto|x86.ActiveCfg = Release|Any CPU
+ {DA39AD38-4A58-47BF-9215-E49768295169}.Proto|x86.Build.0 = Release|Any CPU
{DA39AD38-4A58-47BF-9215-E49768295169}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DA39AD38-4A58-47BF-9215-E49768295169}.Release|Any CPU.Build.0 = Release|Any CPU
{DA39AD38-4A58-47BF-9215-E49768295169}.Release|x86.ActiveCfg = Release|Any CPU
@@ -260,6 +334,10 @@ Global
{8C2439BD-0E49-4929-A8B1-29CEE228191E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C2439BD-0E49-4929-A8B1-29CEE228191E}.Debug|x86.ActiveCfg = Debug|Any CPU
{8C2439BD-0E49-4929-A8B1-29CEE228191E}.Debug|x86.Build.0 = Debug|Any CPU
+ {8C2439BD-0E49-4929-A8B1-29CEE228191E}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {8C2439BD-0E49-4929-A8B1-29CEE228191E}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {8C2439BD-0E49-4929-A8B1-29CEE228191E}.Proto|x86.ActiveCfg = Release|Any CPU
+ {8C2439BD-0E49-4929-A8B1-29CEE228191E}.Proto|x86.Build.0 = Release|Any CPU
{8C2439BD-0E49-4929-A8B1-29CEE228191E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C2439BD-0E49-4929-A8B1-29CEE228191E}.Release|Any CPU.Build.0 = Release|Any CPU
{8C2439BD-0E49-4929-A8B1-29CEE228191E}.Release|x86.ActiveCfg = Release|Any CPU
@@ -268,6 +346,10 @@ Global
{F47196DC-186D-4055-BAF2-658282A12F33}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F47196DC-186D-4055-BAF2-658282A12F33}.Debug|x86.ActiveCfg = Debug|Any CPU
{F47196DC-186D-4055-BAF2-658282A12F33}.Debug|x86.Build.0 = Debug|Any CPU
+ {F47196DC-186D-4055-BAF2-658282A12F33}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {F47196DC-186D-4055-BAF2-658282A12F33}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {F47196DC-186D-4055-BAF2-658282A12F33}.Proto|x86.ActiveCfg = Release|Any CPU
+ {F47196DC-186D-4055-BAF2-658282A12F33}.Proto|x86.Build.0 = Release|Any CPU
{F47196DC-186D-4055-BAF2-658282A12F33}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F47196DC-186D-4055-BAF2-658282A12F33}.Release|Any CPU.Build.0 = Release|Any CPU
{F47196DC-186D-4055-BAF2-658282A12F33}.Release|x86.ActiveCfg = Release|Any CPU
@@ -276,6 +358,10 @@ Global
{D4C88934-5893-467E-A55C-A11ECD6479FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4C88934-5893-467E-A55C-A11ECD6479FE}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4C88934-5893-467E-A55C-A11ECD6479FE}.Debug|x86.Build.0 = Debug|Any CPU
+ {D4C88934-5893-467E-A55C-A11ECD6479FE}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {D4C88934-5893-467E-A55C-A11ECD6479FE}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {D4C88934-5893-467E-A55C-A11ECD6479FE}.Proto|x86.ActiveCfg = Release|Any CPU
+ {D4C88934-5893-467E-A55C-A11ECD6479FE}.Proto|x86.Build.0 = Release|Any CPU
{D4C88934-5893-467E-A55C-A11ECD6479FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4C88934-5893-467E-A55C-A11ECD6479FE}.Release|Any CPU.Build.0 = Release|Any CPU
{D4C88934-5893-467E-A55C-A11ECD6479FE}.Release|x86.ActiveCfg = Release|Any CPU
@@ -284,6 +370,10 @@ Global
{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Debug|x86.ActiveCfg = Debug|Any CPU
{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Debug|x86.Build.0 = Debug|Any CPU
+ {6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Proto|x86.ActiveCfg = Release|Any CPU
+ {6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Proto|x86.Build.0 = Release|Any CPU
{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Release|Any CPU.Build.0 = Release|Any CPU
{6AFF752D-E991-4A08-9ED2-5BF46B0E0F8B}.Release|x86.ActiveCfg = Release|Any CPU
@@ -292,6 +382,10 @@ Global
{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Debug|x86.ActiveCfg = Debug|Any CPU
{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Debug|x86.Build.0 = Debug|Any CPU
+ {0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Proto|x86.ActiveCfg = Release|Any CPU
+ {0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Proto|x86.Build.0 = Release|Any CPU
{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Release|Any CPU.Build.0 = Release|Any CPU
{0B9CDEAF-EE8F-45E0-A4E0-34A8ED6DD09E}.Release|x86.ActiveCfg = Release|Any CPU
@@ -300,6 +394,10 @@ Global
{004982C6-93EA-4E70-B4F0-BE7D7219926A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{004982C6-93EA-4E70-B4F0-BE7D7219926A}.Debug|x86.ActiveCfg = Debug|Any CPU
{004982C6-93EA-4E70-B4F0-BE7D7219926A}.Debug|x86.Build.0 = Debug|Any CPU
+ {004982C6-93EA-4E70-B4F0-BE7D7219926A}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {004982C6-93EA-4E70-B4F0-BE7D7219926A}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {004982C6-93EA-4E70-B4F0-BE7D7219926A}.Proto|x86.ActiveCfg = Release|Any CPU
+ {004982C6-93EA-4E70-B4F0-BE7D7219926A}.Proto|x86.Build.0 = Release|Any CPU
{004982C6-93EA-4E70-B4F0-BE7D7219926A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{004982C6-93EA-4E70-B4F0-BE7D7219926A}.Release|Any CPU.Build.0 = Release|Any CPU
{004982C6-93EA-4E70-B4F0-BE7D7219926A}.Release|x86.ActiveCfg = Release|Any CPU
@@ -308,6 +406,10 @@ Global
{243A81AC-A954-4601-833A-60EEEFB00FCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{243A81AC-A954-4601-833A-60EEEFB00FCD}.Debug|x86.ActiveCfg = Debug|Any CPU
{243A81AC-A954-4601-833A-60EEEFB00FCD}.Debug|x86.Build.0 = Debug|Any CPU
+ {243A81AC-A954-4601-833A-60EEEFB00FCD}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {243A81AC-A954-4601-833A-60EEEFB00FCD}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {243A81AC-A954-4601-833A-60EEEFB00FCD}.Proto|x86.ActiveCfg = Release|Any CPU
+ {243A81AC-A954-4601-833A-60EEEFB00FCD}.Proto|x86.Build.0 = Release|Any CPU
{243A81AC-A954-4601-833A-60EEEFB00FCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{243A81AC-A954-4601-833A-60EEEFB00FCD}.Release|Any CPU.Build.0 = Release|Any CPU
{243A81AC-A954-4601-833A-60EEEFB00FCD}.Release|x86.ActiveCfg = Release|Any CPU
@@ -316,6 +418,10 @@ Global
{B4595EB6-053A-400E-AA1B-7727F1BC900F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B4595EB6-053A-400E-AA1B-7727F1BC900F}.Debug|x86.ActiveCfg = Debug|Any CPU
{B4595EB6-053A-400E-AA1B-7727F1BC900F}.Debug|x86.Build.0 = Debug|Any CPU
+ {B4595EB6-053A-400E-AA1B-7727F1BC900F}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {B4595EB6-053A-400E-AA1B-7727F1BC900F}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {B4595EB6-053A-400E-AA1B-7727F1BC900F}.Proto|x86.ActiveCfg = Release|Any CPU
+ {B4595EB6-053A-400E-AA1B-7727F1BC900F}.Proto|x86.Build.0 = Release|Any CPU
{B4595EB6-053A-400E-AA1B-7727F1BC900F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4595EB6-053A-400E-AA1B-7727F1BC900F}.Release|Any CPU.Build.0 = Release|Any CPU
{B4595EB6-053A-400E-AA1B-7727F1BC900F}.Release|x86.ActiveCfg = Release|Any CPU
@@ -324,6 +430,10 @@ Global
{A559D7E8-7EFD-473A-B618-A10B41AB523B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A559D7E8-7EFD-473A-B618-A10B41AB523B}.Debug|x86.ActiveCfg = Debug|Any CPU
{A559D7E8-7EFD-473A-B618-A10B41AB523B}.Debug|x86.Build.0 = Debug|Any CPU
+ {A559D7E8-7EFD-473A-B618-A10B41AB523B}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {A559D7E8-7EFD-473A-B618-A10B41AB523B}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {A559D7E8-7EFD-473A-B618-A10B41AB523B}.Proto|x86.ActiveCfg = Release|Any CPU
+ {A559D7E8-7EFD-473A-B618-A10B41AB523B}.Proto|x86.Build.0 = Release|Any CPU
{A559D7E8-7EFD-473A-B618-A10B41AB523B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A559D7E8-7EFD-473A-B618-A10B41AB523B}.Release|Any CPU.Build.0 = Release|Any CPU
{A559D7E8-7EFD-473A-B618-A10B41AB523B}.Release|x86.ActiveCfg = Release|Any CPU
@@ -332,6 +442,10 @@ Global
{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Debug|x86.ActiveCfg = Debug|Any CPU
{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Debug|x86.Build.0 = Debug|Any CPU
+ {AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Proto|x86.ActiveCfg = Release|Any CPU
+ {AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Proto|x86.Build.0 = Release|Any CPU
{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Release|Any CPU.Build.0 = Release|Any CPU
{AC85EE6D-033C-45F9-B8BA-884BC22EC6D9}.Release|x86.ActiveCfg = Release|Any CPU
@@ -340,6 +454,10 @@ Global
{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Debug|x86.ActiveCfg = Debug|Any CPU
{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Debug|x86.Build.0 = Debug|Any CPU
+ {956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Proto|x86.ActiveCfg = Release|Any CPU
+ {956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Proto|x86.Build.0 = Release|Any CPU
{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Release|Any CPU.Build.0 = Release|Any CPU
{956BBE41-ABD1-4DBA-9F3B-BA1C9821C98C}.Release|x86.ActiveCfg = Release|Any CPU
@@ -348,6 +466,10 @@ Global
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|Any CPU.Build.0 = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|x86.ActiveCfg = Debug|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Debug|x86.Build.0 = Debug|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.ActiveCfg = Release|Any CPU
+ {702A7979-BCF9-4C41-853E-3ADFC9897890}.Proto|x86.Build.0 = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|Any CPU.ActiveCfg = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|Any CPU.Build.0 = Release|Any CPU
{702A7979-BCF9-4C41-853E-3ADFC9897890}.Release|x86.ActiveCfg = Release|Any CPU
@@ -356,6 +478,10 @@ Global
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|x86.ActiveCfg = Debug|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Debug|x86.Build.0 = Debug|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.ActiveCfg = Release|Any CPU
+ {C94C257C-3C0A-4858-B5D8-D746498D1F08}.Proto|x86.Build.0 = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|Any CPU.Build.0 = Release|Any CPU
{C94C257C-3C0A-4858-B5D8-D746498D1F08}.Release|x86.ActiveCfg = Release|Any CPU
@@ -364,6 +490,10 @@ Global
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|x86.ActiveCfg = Debug|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Debug|x86.Build.0 = Debug|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.ActiveCfg = Release|Any CPU
+ {649FA588-F02E-457C-9FCF-87E46407481E}.Proto|x86.Build.0 = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|Any CPU.Build.0 = Release|Any CPU
{649FA588-F02E-457C-9FCF-87E46407481E}.Release|x86.ActiveCfg = Release|Any CPU
@@ -372,6 +502,10 @@ Global
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.ActiveCfg = Debug|Any CPU
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Debug|x86.Build.0 = Debug|Any CPU
+ {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.ActiveCfg = Release|Any CPU
+ {8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Proto|x86.Build.0 = Release|Any CPU
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|Any CPU.Build.0 = Release|Any CPU
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}.Release|x86.ActiveCfg = Release|Any CPU
@@ -380,6 +514,10 @@ Global
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Debug|x86.Build.0 = Debug|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.ActiveCfg = Release|Any CPU
+ {D0E98C0D-490B-4C61-9329-0862F6E87645}.Proto|x86.Build.0 = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|Any CPU.Build.0 = Release|Any CPU
{D0E98C0D-490B-4C61-9329-0862F6E87645}.Release|x86.ActiveCfg = Release|Any CPU
@@ -388,6 +526,10 @@ Global
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.ActiveCfg = Debug|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Debug|x86.Build.0 = Debug|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.ActiveCfg = Release|Any CPU
+ {C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Proto|x86.Build.0 = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|Any CPU.Build.0 = Release|Any CPU
{C163E892-5BF7-4B59-AA99-B0E8079C67C4}.Release|x86.ActiveCfg = Release|Any CPU
@@ -396,6 +538,10 @@ Global
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Debug|x86.Build.0 = Debug|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.ActiveCfg = Release|Any CPU
+ {A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Proto|x86.Build.0 = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|Any CPU.Build.0 = Release|Any CPU
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5}.Release|x86.ActiveCfg = Release|Any CPU
@@ -404,38 +550,22 @@ Global
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.ActiveCfg = Debug|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Debug|x86.Build.0 = Debug|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.ActiveCfg = Release|Any CPU
+ {88E2D422-6852-46E3-A740-83E391DC7973}.Proto|x86.Build.0 = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|Any CPU.Build.0 = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.ActiveCfg = Release|Any CPU
{88E2D422-6852-46E3-A740-83E391DC7973}.Release|x86.Build.0 = Release|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Debug|x86.Build.0 = Debug|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Release|Any CPU.Build.0 = Release|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Release|x86.ActiveCfg = Release|Any CPU
- {604F0DAA-2D33-48DD-B162-EDF0B672803D}.Release|x86.Build.0 = Release|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Debug|x86.Build.0 = Debug|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|Any CPU.Build.0 = Release|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|x86.ActiveCfg = Release|Any CPU
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|x86.Build.0 = Release|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|x86.Build.0 = Debug|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Release|Any CPU.Build.0 = Release|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Release|x86.ActiveCfg = Release|Any CPU
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Release|x86.Build.0 = Release|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Debug|x86.ActiveCfg = Debug|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Debug|x86.Build.0 = Debug|Any CPU
+ {6BA13AA4-C25F-480F-856B-8E8000299A72}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {6BA13AA4-C25F-480F-856B-8E8000299A72}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {6BA13AA4-C25F-480F-856B-8E8000299A72}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {6BA13AA4-C25F-480F-856B-8E8000299A72}.Proto|x86.Build.0 = Proto|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Release|Any CPU.Build.0 = Release|Any CPU
{6BA13AA4-C25F-480F-856B-8E8000299A72}.Release|x86.ActiveCfg = Release|Any CPU
@@ -444,6 +574,10 @@ Global
{12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Debug|x86.ActiveCfg = Debug|Any CPU
{12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Debug|x86.Build.0 = Debug|Any CPU
+ {12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Proto|x86.Build.0 = Proto|Any CPU
{12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Release|Any CPU.Build.0 = Release|Any CPU
{12AC2813-E895-4AAA-AE6C-94E21DA09F64}.Release|x86.ActiveCfg = Release|Any CPU
@@ -452,6 +586,10 @@ Global
{A333B85A-DC23-49B6-9797-B89A7951E92D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A333B85A-DC23-49B6-9797-B89A7951E92D}.Debug|x86.ActiveCfg = Debug|Any CPU
{A333B85A-DC23-49B6-9797-B89A7951E92D}.Debug|x86.Build.0 = Debug|Any CPU
+ {A333B85A-DC23-49B6-9797-B89A7951E92D}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {A333B85A-DC23-49B6-9797-B89A7951E92D}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {A333B85A-DC23-49B6-9797-B89A7951E92D}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {A333B85A-DC23-49B6-9797-B89A7951E92D}.Proto|x86.Build.0 = Proto|Any CPU
{A333B85A-DC23-49B6-9797-B89A7951E92D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A333B85A-DC23-49B6-9797-B89A7951E92D}.Release|Any CPU.Build.0 = Release|Any CPU
{A333B85A-DC23-49B6-9797-B89A7951E92D}.Release|x86.ActiveCfg = Release|Any CPU
@@ -460,6 +598,10 @@ Global
{E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Debug|x86.ActiveCfg = Debug|Any CPU
{E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Debug|x86.Build.0 = Debug|Any CPU
+ {E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Proto|x86.Build.0 = Proto|Any CPU
{E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Release|Any CPU.Build.0 = Release|Any CPU
{E3FDD4AC-46B6-4B9F-B672-317D1202CC50}.Release|x86.ActiveCfg = Release|Any CPU
@@ -468,6 +610,10 @@ Global
{D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Debug|x86.ActiveCfg = Debug|Any CPU
{D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Debug|x86.Build.0 = Debug|Any CPU
+ {D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Proto|x86.Build.0 = Proto|Any CPU
{D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Release|Any CPU.Build.0 = Release|Any CPU
{D11FC318-8F5D-4C8C-9287-AB40A016D13C}.Release|x86.ActiveCfg = Release|Any CPU
@@ -476,6 +622,10 @@ Global
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Debug|x86.ActiveCfg = Debug|Any CPU
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Debug|x86.Build.0 = Debug|Any CPU
+ {1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Proto|x86.Build.0 = Proto|Any CPU
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Release|Any CPU.Build.0 = Release|Any CPU
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6}.Release|x86.ActiveCfg = Release|Any CPU
@@ -484,6 +634,10 @@ Global
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|x86.ActiveCfg = Debug|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Debug|x86.Build.0 = Debug|Any CPU
+ {4239EFEA-E746-446A-BF7A-51FCBAB13946}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {4239EFEA-E746-446A-BF7A-51FCBAB13946}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {4239EFEA-E746-446A-BF7A-51FCBAB13946}.Proto|x86.ActiveCfg = Release|Any CPU
+ {4239EFEA-E746-446A-BF7A-51FCBAB13946}.Proto|x86.Build.0 = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|Any CPU.Build.0 = Release|Any CPU
{4239EFEA-E746-446A-BF7A-51FCBAB13946}.Release|x86.ActiveCfg = Release|Any CPU
@@ -492,6 +646,10 @@ Global
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Debug|x86.Build.0 = Debug|Any CPU
+ {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Proto|x86.ActiveCfg = Release|Any CPU
+ {2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Proto|x86.Build.0 = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|Any CPU.Build.0 = Release|Any CPU
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236}.Release|x86.ActiveCfg = Release|Any CPU
@@ -500,6 +658,10 @@ Global
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|x86.ActiveCfg = Debug|Any CPU
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Debug|x86.Build.0 = Debug|Any CPU
+ {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|x86.ActiveCfg = Release|Any CPU
+ {E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Proto|x86.Build.0 = Release|Any CPU
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|Any CPU.Build.0 = Release|Any CPU
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903}.Release|x86.ActiveCfg = Release|Any CPU
@@ -508,6 +670,10 @@ Global
{C4586A06-1402-48BC-8E35-A1B8642F895B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4586A06-1402-48BC-8E35-A1B8642F895B}.Debug|x86.ActiveCfg = Debug|Any CPU
{C4586A06-1402-48BC-8E35-A1B8642F895B}.Debug|x86.Build.0 = Debug|Any CPU
+ {C4586A06-1402-48BC-8E35-A1B8642F895B}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {C4586A06-1402-48BC-8E35-A1B8642F895B}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {C4586A06-1402-48BC-8E35-A1B8642F895B}.Proto|x86.ActiveCfg = Release|Any CPU
+ {C4586A06-1402-48BC-8E35-A1B8642F895B}.Proto|x86.Build.0 = Release|Any CPU
{C4586A06-1402-48BC-8E35-A1B8642F895B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4586A06-1402-48BC-8E35-A1B8642F895B}.Release|Any CPU.Build.0 = Release|Any CPU
{C4586A06-1402-48BC-8E35-A1B8642F895B}.Release|x86.ActiveCfg = Release|Any CPU
@@ -516,6 +682,10 @@ Global
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Debug|x86.ActiveCfg = Debug|Any CPU
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Debug|x86.Build.0 = Debug|Any CPU
+ {887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Proto|x86.ActiveCfg = Release|Any CPU
+ {887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Proto|x86.Build.0 = Release|Any CPU
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Release|Any CPU.Build.0 = Release|Any CPU
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB}.Release|x86.ActiveCfg = Release|Any CPU
@@ -524,6 +694,10 @@ Global
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Debug|x86.ActiveCfg = Debug|Any CPU
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Debug|x86.Build.0 = Debug|Any CPU
+ {FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Proto|x86.ActiveCfg = Release|Any CPU
+ {FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Proto|x86.Build.0 = Release|Any CPU
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Release|Any CPU.Build.0 = Release|Any CPU
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B}.Release|x86.ActiveCfg = Release|Any CPU
@@ -532,6 +706,10 @@ Global
{0385564F-07B4-4264-AB8A-17C393E9140C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0385564F-07B4-4264-AB8A-17C393E9140C}.Debug|x86.ActiveCfg = Debug|Any CPU
{0385564F-07B4-4264-AB8A-17C393E9140C}.Debug|x86.Build.0 = Debug|Any CPU
+ {0385564F-07B4-4264-AB8A-17C393E9140C}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {0385564F-07B4-4264-AB8A-17C393E9140C}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {0385564F-07B4-4264-AB8A-17C393E9140C}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {0385564F-07B4-4264-AB8A-17C393E9140C}.Proto|x86.Build.0 = Proto|Any CPU
{0385564F-07B4-4264-AB8A-17C393E9140C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0385564F-07B4-4264-AB8A-17C393E9140C}.Release|Any CPU.Build.0 = Release|Any CPU
{0385564F-07B4-4264-AB8A-17C393E9140C}.Release|x86.ActiveCfg = Release|Any CPU
@@ -540,6 +718,10 @@ Global
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Debug|Any CPU.Build.0 = Debug|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Debug|x86.ActiveCfg = Debug|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Debug|x86.Build.0 = Debug|Any CPU
+ {400FAB03-786E-40CC-85A8-04B0C2869B14}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {400FAB03-786E-40CC-85A8-04B0C2869B14}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {400FAB03-786E-40CC-85A8-04B0C2869B14}.Proto|x86.ActiveCfg = Release|Any CPU
+ {400FAB03-786E-40CC-85A8-04B0C2869B14}.Proto|x86.Build.0 = Release|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Release|Any CPU.ActiveCfg = Release|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Release|Any CPU.Build.0 = Release|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Release|x86.ActiveCfg = Release|Any CPU
@@ -548,6 +730,10 @@ Global
{B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|x86.ActiveCfg = Debug|Any CPU
{B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|x86.Build.0 = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|x86.ActiveCfg = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|x86.Build.0 = Release|Any CPU
{B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|Any CPU.Build.0 = Release|Any CPU
{B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|x86.ActiveCfg = Release|Any CPU
@@ -556,6 +742,10 @@ Global
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Debug|x86.ActiveCfg = Debug|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Debug|x86.Build.0 = Debug|Any CPU
+ {18227628-DF90-4C47-AF3D-CC72D2EDD986}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {18227628-DF90-4C47-AF3D-CC72D2EDD986}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {18227628-DF90-4C47-AF3D-CC72D2EDD986}.Proto|x86.ActiveCfg = Release|Any CPU
+ {18227628-DF90-4C47-AF3D-CC72D2EDD986}.Proto|x86.Build.0 = Release|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Release|Any CPU.Build.0 = Release|Any CPU
{18227628-DF90-4C47-AF3D-CC72D2EDD986}.Release|x86.ActiveCfg = Release|Any CPU
@@ -564,15 +754,133 @@ Global
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|x86.ActiveCfg = Debug|Any CPU
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Debug|x86.Build.0 = Debug|Any CPU
+ {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|x86.ActiveCfg = Release|Any CPU
+ {6D93CEBD-4540-4D96-A153-B440A661FD09}.Proto|x86.Build.0 = Release|Any CPU
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|Any CPU.Build.0 = Release|Any CPU
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|x86.ActiveCfg = Release|Any CPU
{6D93CEBD-4540-4D96-A153-B440A661FD09}.Release|x86.Build.0 = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Debug|x86.Build.0 = Debug|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Proto|x86.ActiveCfg = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Proto|x86.Build.0 = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Release|x86.ActiveCfg = Release|Any CPU
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A}.Release|x86.Build.0 = Release|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Debug|x86.Build.0 = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Proto|Any CPU.Build.0 = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Proto|x86.ActiveCfg = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Proto|x86.Build.0 = Debug|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Release|x86.ActiveCfg = Release|Any CPU
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C}.Release|x86.Build.0 = Release|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Debug|x86.Build.0 = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Proto|Any CPU.Build.0 = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Proto|x86.ActiveCfg = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Proto|x86.Build.0 = Debug|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Release|x86.ActiveCfg = Release|Any CPU
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039}.Release|x86.Build.0 = Release|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Debug|x86.Build.0 = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Proto|Any CPU.Build.0 = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Proto|x86.ActiveCfg = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Proto|x86.Build.0 = Debug|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Release|x86.ActiveCfg = Release|Any CPU
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A}.Release|x86.Build.0 = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Debug|x86.Build.0 = Debug|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Proto|x86.ActiveCfg = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Proto|x86.Build.0 = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Release|Any CPU.Build.0 = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Release|x86.ActiveCfg = Release|Any CPU
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011}.Release|x86.Build.0 = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Debug|x86.Build.0 = Debug|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Proto|Any CPU.ActiveCfg = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Proto|Any CPU.Build.0 = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Proto|x86.ActiveCfg = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Proto|x86.Build.0 = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|x86.ActiveCfg = Release|Any CPU
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|x86.Build.0 = Release|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Debug|x86.Build.0 = Debug|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Proto|x86.Build.0 = Proto|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Release|x86.ActiveCfg = Release|Any CPU
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8}.Release|x86.Build.0 = Release|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Debug|x86.Build.0 = Debug|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Proto|x86.Build.0 = Proto|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Release|x86.ActiveCfg = Release|Any CPU
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A}.Release|x86.Build.0 = Release|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Debug|x86.Build.0 = Debug|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Proto|Any CPU.Build.0 = Proto|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Proto|x86.ActiveCfg = Proto|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Proto|x86.Build.0 = Proto|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Release|x86.ActiveCfg = Release|Any CPU
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {3F044931-FB83-4433-B934-AE66AB27B278} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
+ {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {D086C8C6-D00D-4C3B-9AB2-A4286C9F5922} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {35636A82-401A-4C3A-B2AB-EB7DC5E9C268} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
+ {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{59ADCE46-9740-4079-834D-9A03A3494EBC} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
@@ -584,7 +892,6 @@ Global
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7} = {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}
{FCFB214C-462E-42B3-91CA-FC557EFEE74F} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44} = {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B}
- {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{FBD4B354-DC6E-4032-8EC7-C81D8DFB1AF7} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
{EE85AAB7-CDA0-4C4E-BDA0-A64DDDD13E3F} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
{DA39AD38-4A58-47BF-9215-E49768295169} = {3F044931-FB83-4433-B934-AE66AB27B278}
@@ -605,14 +912,8 @@ Global
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{D0E98C0D-490B-4C61-9329-0862F6E87645} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{C163E892-5BF7-4B59-AA99-B0E8079C67C4} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {3F044931-FB83-4433-B934-AE66AB27B278} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
{A8D9641A-9170-4CF4-8FE0-6DB8C134E1B5} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{88E2D422-6852-46E3-A740-83E391DC7973} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
- {604F0DAA-2D33-48DD-B162-EDF0B672803D} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {01678CDA-A11F-4DEE-9344-2EDF91CF1AE7} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{6BA13AA4-C25F-480F-856B-8E8000299A72} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
{12AC2813-E895-4AAA-AE6C-94E21DA09F64} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
{A333B85A-DC23-49B6-9797-B89A7951E92D} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
@@ -621,18 +922,25 @@ Global
{1FB1DD07-06AA-45B4-B5AC-20FF5BEE98B6} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
{4239EFEA-E746-446A-BF7A-51FCBAB13946} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{2E60864A-E3FF-4BCC-810F-DC7C34E6B236} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
- {D086C8C6-D00D-4C3B-9AB2-A4286C9F5922} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{E7FA3A71-51AF-4FCA-9C2F-7C853E515903} = {D086C8C6-D00D-4C3B-9AB2-A4286C9F5922}
{C4586A06-1402-48BC-8E35-A1B8642F895B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{887630A3-4B1D-40EA-B8B3-2D842E9C40DB} = {35636A82-401A-4C3A-B2AB-EB7DC5E9C268}
- {35636A82-401A-4C3A-B2AB-EB7DC5E9C268} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B} = {35636A82-401A-4C3A-B2AB-EB7DC5E9C268}
{0385564F-07B4-4264-AB8A-17C393E9140C} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
{400FAB03-786E-40CC-85A8-04B0C2869B14} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{B0689A4E-07D8-494D-A0C8-791CB1D74E54} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{18227628-DF90-4C47-AF3D-CC72D2EDD986} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
- {CCAB6E50-34C6-42AF-A6B0-567C29FCD91B} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{6D93CEBD-4540-4D96-A153-B440A661FD09} = {F7876C9B-FB6A-4EFB-B058-D6967DB75FB2}
+ {4CBEE353-EB7F-4A47-988B-0070AEB4EE7A} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
+ {6BCFED7A-3F67-4180-B307-C7D69D191D8C} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
+ {E93E7D28-1C6B-4E04-BE83-68428CF7E039} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
+ {9482211E-23D0-4BD0-9893-E4AA5559F67A} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
+ {025CE01B-98F3-4C3C-B486-2C0BD038D011} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8} = {647810D0-5307-448F-99A2-E83917010DAE}
+ {BED74F9E-A0D2-48E2-9EE7-449832100487} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
+ {1D8D778E-8D6B-4A8C-88A6-BE578988FBE8} = {BED74F9E-A0D2-48E2-9EE7-449832100487}
+ {C32806E0-71C2-40E4-AEC4-517F73F6A18A} = {BED74F9E-A0D2-48E2-9EE7-449832100487}
+ {7B345E51-F2C0-4D4B-B0E0-05432EC9D5E1} = {BED74F9E-A0D2-48E2-9EE7-449832100487}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {48EDBBBE-C8EE-4E3C-8B19-97184A487B37}
diff --git a/build.cmd b/build.cmd
deleted file mode 100644
index ab85f177c5daeff932c0ebc52b6c312d7404e926..0000000000000000000000000000000000000000
--- a/build.cmd
+++ /dev/null
@@ -1,1087 +0,0 @@
-rem Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
-@if "%_echo%"=="" echo off
-setlocal enableDelayedExpansion
-
-:ARGUMENTS_VALIDATION
-if /I "%1" == "--help" (goto :USAGE)
-if /I "%1" == "/help" (goto :USAGE)
-if /I "%1" == "/h" (goto :USAGE)
-if /I "%1" == "/?" (goto :USAGE)
-goto :ARGUMENTS_OK
-
-
-:USAGE
-
-echo Build and run a subset of test suites
-echo.
-echo Usage:
-echo.
-echo build.cmd ^
-echo ^
-echo ^
-echo ^
-echo ^
-echo ^
-echo ^
-echo ^
-echo.
-echo No arguments default to default", meaning this (no testing)
-echo.
-echo build.cmd net40
-echo.
-echo.Other examples:
-echo.
-echo. build.cmd net40 (build compiler for .NET Framework)
-echo. build.cmd coreclr (build compiler for .NET Core)
-echo. build.cmd buildfromsource (build compiler for .NET Core -- Verify that buildfromsource works)
-echo. build.cmd vs (build Visual Studio IDE Tools)
-echo. build.cmd all (build everything)
-echo. build.cmd test (build and test default targets)
-echo. build.cmd net40 test (build and test compiler for .NET Framework)
-echo. build.cmd coreclr test (build and test compiler for .NET Core)
-echo. build.cmd vs test (build and test Visual Studio IDE Tools)
-echo. build.cmd all test (build and test everything)
-echo. build.cmd nobuild test include Conformance (run only tests marked with Conformance category)
-echo. build.cmd nobuild test include Expensive (run only tests marked with Expensive category)
-echo.
-goto :success
-
-:ARGUMENTS_OK
-
-rem disable setup build by setting FSC_BUILD_SETUP=0
-if /i "%FSC_BUILD_SETUP%" == "" (set FSC_BUILD_SETUP=1)
-
-rem by default don't build coreclr lkg. However allow configuration by setting an environment variable : set BUILD_PROTO_WITH_CORECLR_LKG = 1
-if "%BUILD_PROTO_WITH_CORECLR_LKG%" =="" (set BUILD_PROTO_WITH_CORECLR_LKG=0)
-
-set BUILD_PROTO=0
-set BUILD_PHASE=1
-set BUILD_NET40=0
-set BUILD_NET40_FSHARP_CORE=0
-set BUILD_CORECLR=0
-set BUILD_FROMSOURCE=0
-set BUILD_VS=0
-set BUILD_FCS=0
-set BUILD_CONFIG=Release
-set BUILD_DIAG=
-set BUILD_PUBLICSIGN=0
-set BUILD_FSHARP_PROJ=1
-
-set TEST_NET40_COMPILERUNIT_SUITE=0
-set TEST_NET40_COREUNIT_SUITE=0
-set TEST_NET40_FSHARP_SUITE=0
-set TEST_NET40_FSHARPQA_SUITE=0
-set TEST_CORECLR_COREUNIT_SUITE=0
-set TEST_CORECLR_FSHARP_SUITE=0
-set TEST_VS_IDEUNIT_SUITE=0
-set TEST_FCS=0
-set TEST_END_2_END=0
-set INCLUDE_TEST_TAGS=
-
-set COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES=0
-
-set SIGN_TYPE=%PB_SIGNTYPE%
-
-REM ------------------ Parse all arguments -----------------------
-
-set _autoselect=1
-set _autoselect_tests=0
-set no_test=0
-set /a counter=0
-for /l %%x in (1 1 9) do (
- set /a counter=!counter!+1
- set /a nextcounter=!counter!+1
- call :PROCESS_ARG %%!counter! %%!nextcounter! "!counter!"
-)
-for %%i in (%BUILD_FSC_DEFAULT%) do ( call :PROCESS_ARG %%i )
-
-REM apply defaults
-
-if /i "%_buildexit%" == "1" (
- exit /B %_buildexitvalue%
-)
-
-if /i "%_autoselect%" == "1" (
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NET40=1
-)
-
-if /i "%_autoselect_tests%" == "1" (
- if /i "%BUILD_NET40_FSHARP_CORE%" == "1" (
- set BUILD_NUGET=1
- set TEST_NET40_COREUNIT_SUITE=1
- )
-
- if /i "%BUILD_NET40%" == "1" (
- set BUILD_NUGET=1
- set TEST_NET40_COMPILERUNIT_SUITE=1
- set TEST_NET40_COREUNIT_SUITE=1
- set TEST_NET40_FSHARP_SUITE=1
- set TEST_NET40_FSHARPQA_SUITE=1
- )
-
- if /i "%BUILD_FCS%" == "1" (
- set TEST_FCS=1
- )
-
- if /i "%BUILD_CORECLR%" == "1" (
- set TEST_CORECLR_FSHARP_SUITE=1
- set TEST_CORECLR_COREUNIT_SUITE=1
- )
-
- if /i "%BUILD_VS%" == "1" (
- set TEST_VS_IDEUNIT_SUITE=1
- )
-)
-
-goto :MAIN
-
-REM ------------------ Procedure to parse one argument -----------------------
-
-:PROCESS_ARG
-set ARG=%~1
-set ARG2=%~2
-if "%ARG%" == "1" if "%2" == "" (set ARG=default)
-if "%2" == "" if not "%ARG%" == "default" goto :EOF
-
-rem Do no work
-if /i "%ARG%" == "none" (
- set _buildexit=1
- set _buildexitvalue=0
-)
-
-if /i "%ARG%" == "net40-lib" (
- set _autoselect=0
- set BUILD_NET40_FSHARP_CORE=1
-)
-
-if /i "%ARG%" == "net40" (
- set _autoselect=0
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NET40=1
- set COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES=1
-)
-
-if /i "%ARG%" == "coreclr" (
- set _autoselect=0
- set BUILD_CORECLR=1
- set BUILD_FROMSOURCE=1
-)
-
-if /i "%ARG%" == "buildfromsource" (
- set _autoselect=0
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_FROMSOURCE=1
-)
-
-if /i "%ARG%" == "vs" (
- set _autoselect=0
- set BUILD_NET40=1
- set BUILD_VS=1
- set COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES=1
-)
-
-if /i "%ARG%" == "fcs" (
- set _autoselect=0
- set BUILD_FCS=1
-)
-
-if /i "%ARG%" == "vstest" (
- set TEST_VS_IDEUNIT_SUITE=1
-)
-
-if /i "%ARG%" == "nobuild" (
- set BUILD_PHASE=0
-)
-if /i "%ARG%" == "all" (
- set _autoselect=0
- set COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES=1
- set BUILD_PROTO=1
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_NET40=1
- set BUILD_CORECLR=1
- set BUILD_VS=1
- set BUILD_FCS=1
- set BUILD_SETUP=%FSC_BUILD_SETUP%
- set BUILD_NUGET=1
- set CI=1
-)
-
-if /i "%ARG%" == "microbuild" (
- set _autoselect=0
- set BUILD_PROTO=1
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_CORECLR=1
- set BUILD_VS=1
- set BUILD_SETUP=%FSC_BUILD_SETUP%
- set BUILD_NUGET=1
- set BUILD_MICROBUILD=1
-
- set TEST_NET40_COMPILERUNIT_SUITE=1
- set TEST_NET40_COREUNIT_SUITE=1
- set TEST_NET40_FSHARP_SUITE=1
- set TEST_NET40_FSHARPQA_SUITE=1
- set TEST_CORECLR_COREUNIT_SUITE=0
- set TEST_CORECLR_FSHARP_SUITE=0
- set TEST_VS_IDEUNIT_SUITE=1
- set CI=1
-
- REM redirecting TEMP directories
- set TEMP=%~dp0artifacts\tmp
- set TMP=%~dp0artifacts\tmp
-)
-
-if /i "%ARG%" == "nuget" (
- set _autoselect=0
-
- set BUILD_PROTO=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NET40=1
- set BUILD_CORECLR=1
- set BUILD_NUGET=1
-)
-
-REM These divide "ci" into three chunks which can be done in parallel
-if /i "%ARG%" == "ci_part1" (
- set _autoselect=0
-
- REM what we do - build and test Visual F# Tools, including setup and nuget
- set BUILD_PROTO=1
- set BUILD_NUGET=1
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_VS=1
- set TEST_VS_IDEUNIT_SUITE=1
- set BUILD_CORECLR=1
- set BUILD_SETUP=%FSC_BUILD_SETUP%
- set CI=1
-)
-
-if /i "%ARG%" == "ci_part2" (
- set _autoselect=0
-
- REM what we do - test F# on .NET Framework
- set BUILD_PROTO=1
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NUGET=1
- set TEST_NET40_COMPILERUNIT_SUITE=1
- set TEST_NET40_COREUNIT_SUITE=1
- set TEST_NET40_FSHARPQA_SUITE=1
- set TEST_NET40_FSHARP_SUITE=1
- set CI=1
-)
-
-if /i "%ARG%" == "ci_part3" (
- set _autoselect=0
-
- REM what we do: test F# on Core CLR: nuget requires coreclr, fcs requires coreclr
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_PROTO=1
- set BUILD_CORECLR=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NET40=1
- set TEST_CORECLR_FSHARP_SUITE=1
- set TEST_CORECLR_COREUNIT_SUITE=1
- set CI=1
-)
-
-if /i "%ARG%" == "ci_part4" (
- set _autoselect=0
-
- REM what we do: test F# on Core CLR: nuget requires coreclr, fcs requires coreclr
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_PROTO=1
- set BUILD_CORECLR=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NET40=1
- set BUILD_NUGET=1
- set BUILD_FCS=1
- set TEST_FCS=1
- set CI=1
-)
-
-if /i "%ARG%" == "end-2-end" (
- set BUILD_PROTO=1
- set BUILD_CORECLR=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NET40=1
- set TEST_END_2_END=1
-)
-
-if /i "%ARG%" == "proto" (
- set _autoselect=0
- set BUILD_PROTO=1
-)
-
-if /i "%ARG%" == "diag" (
- set BUILD_DIAG=/v:detailed
- if not defined APPVEYOR ( set BUILD_LOG=fsharp_build_log.log )
-)
-
-if /i "%ARG%" == "debug" (
- set BUILD_CONFIG=Debug
-)
-
-if /i "%ARG%" == "release" (
- set BUILD_CONFIG=Release
-)
-
-if /i "%ARG%" == "test-sign" (
- set SIGN_TYPE=test
-)
-
-if /i "%ARG%" == "real-sign" (
- set SIGN_TYPE=real
-)
-
-if /i "%ARG%" == "test" (
- set _autoselect_tests=1
-)
-
-if /i "%ARG%" == "no-test" (
- set no_test=1
-)
-
-if /i "%ARG%" == "include" (
- set /a counter=!counter!+1
- if "!INCLUDE_TEST_TAGS!" == "" ( set INCLUDE_TEST_TAGS=%ARG2% ) else (set INCLUDE_TEST_TAGS=%ARG2%;!INCLUDE_TEST_TAGS! )
-)
-
-if /i "%ARG%" == "test-all" (
- set _autoselect=0
- set BUILD_PROTO=1
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_CORECLR=1
- set BUILD_VS=1
- set BUILD_FCS=1
- set BUILD_SETUP=%FSC_BUILD_SETUP%
- set BUILD_NUGET=1
-
- set TEST_NET40_COMPILERUNIT_SUITE=1
- set TEST_NET40_COREUNIT_SUITE=1
- set TEST_NET40_FSHARP_SUITE=1
- set TEST_NET40_FSHARPQA_SUITE=1
- set TEST_CORECLR_COREUNIT_SUITE=1
- set TEST_VS_IDEUNIT_SUITE=1
- set TEST_FCS=1
- set TEST_END_2_END=1
-)
-
-if /i "%ARG%" == "test-net40-fsharpqa" (
- set _autoselect=0
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set TEST_NET40_FSHARPQA_SUITE=1
-)
-
-if /i "%ARG%" == "test-compiler-unit" (
- set _autoselect=0
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set TEST_NET40_COMPILERUNIT_SUITE=1
-)
-
-if /i "%ARG%" == "test-net40-ideunit" (
- set _autoselect=0
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_VS=1
- set TEST_VS_IDEUNIT_SUITE=1
-)
-
-if /i "%ARG%" == "test-net40-coreunit" (
- set _autoselect=0
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_NUGET=1
- set TEST_NET40_COREUNIT_SUITE=1
-)
-
-if /i "%ARG%" == "test-coreclr-coreunit" (
- set _autoselect=0
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_CORECLR=1
- set BUILD_NUGET=1
- set TEST_CORECLR_COREUNIT_SUITE=1
-)
-
-if /i "%ARG%" == "test-net40-fsharp" (
- set _autoselect=0
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set TEST_NET40_FSHARP_SUITE=1
-)
-
-if /i "%ARG%" == "test-fcs" (
- set _autoselect=0
- set BUILD_FCS=1
- set TEST_FCS=1
-)
-
-if /i "%ARG%" == "test-coreclr-fsharp" (
- set _autoselect=0
- set BUILD_NET40=1
- set BUILD_NET40_FSHARP_CORE=1
- set BUILD_PROTO_WITH_CORECLR_LKG=1
- set BUILD_CORECLR=1
- set TEST_CORECLR_FSHARP_SUITE=1
-)
-
-if /i "%ARG%" == "publicsign" (
- set BUILD_PUBLICSIGN=1
-)
-
-if /i "%ARG%" == "init" (
- set BUILD_PROTO_WITH_CORECLR_LKG=1
-)
-
-goto :EOF
-:: Note: "goto :EOF" returns from an in-batchfile "call" command
-:: in preference to returning from the entire batch file.
-
-REM ------------------ Report config -----------------------
-
-:MAIN
-
-REM after this point, ARG variable should not be used, use only BUILD_* or TEST_*
-
-REM all PB_* variables override any settings
-
-REM if the `PB_SKIPTESTS` variable is set to 'true' then no tests should be built or run, even if explicitly specified
-if /i "%PB_SKIPTESTS%" == "true" (
- set TEST_NET40_COMPILERUNIT_SUITE=0
- set TEST_NET40_COREUNIT_SUITE=0
- set TEST_NET40_FSHARP_SUITE=0
- set TEST_NET40_FSHARPQA_SUITE=0
- set TEST_CORECLR_COREUNIT_SUITE=0
- set TEST_CORECLR_FSHARP_SUITE=0
- set TEST_VS_IDEUNIT_SUITE=0
-)
-
-if /i "%TEST_NET40_FSHARP_SUITE" == "1" (
- if /i "%TEST_CORECLR_FSHARP_SUITE%" == "1" (
- TEST_END_2_END=1
- )
-)
-
-rem Decide if Proto need building
-if NOT EXIST "%~dp0artifacts\bin\fsc\Proto\net46\fsc.exe" (
- set BUILD_PROTO=1
-)
-
-rem decide if FSharp.Proj needs building
-if "%BUILD_NET40%"=="0" if "%BUILD_NET40_FSHARP_CORE%"=="0" if "%BUILD_CORECLR%"=="0" if "%BUILD_VS%"=="0" if "%BUILD_FCS%"=="0" if "%TEST_NET40_COMPILERUNIT_SUITE%"=="0" if "%TEST_NET40_COREUNIT_SUITE%"=="0" if "%TEST_NET40_FSHARP_SUITE%"=="0" if "%TEST_NET40_FSHARPQA_SUITE%"=="0" if "%TEST_CORECLR_COREUNIT_SUITE%"=="0" if "%TEST_CORECLR_FSHARP_SUITE%"=="0" if "%TEST_VS_IDEUNIT_SUITE%"=="0" if "%TEST_FCS%"=="0" if "%TEST_END_2_END%"=="0" if "%COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES%"=="0" (
- set BUILD_FSHARP_PROJ=0
-)
-
-rem
-rem This stops the dotnet cli from hunting around and
-rem finding the highest possible dotnet sdk version to use.
-rem
-rem description of dotnet lookup here:
-rem https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet?tabs=netcore2x
-set DOTNET_MULTILEVEL_LOOKUP=false
-
-echo Build/Tests configuration:
-echo.
-echo BUILD_PROTO=%BUILD_PROTO%
-echo BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG%
-echo BUILD_NET40=%BUILD_NET40%
-echo BUILD_NET40_FSHARP_CORE=%BUILD_NET40_FSHARP_CORE%
-echo BUILD_CORECLR=%BUILD_CORECLR%
-echo BUILD_VS=%BUILD_VS%
-echo BUILD_FCS=%BUILD_FCS%
-echo BUILD_SETUP=%BUILD_SETUP%
-echo BUILD_NUGET=%BUILD_NUGET%
-echo BUILD_CONFIG=%BUILD_CONFIG%
-echo BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN%
-echo BUILD_MICROBUILD=%BUILD_MICROBUILD%
-echo BUILD_FROMSOURCE=%BUILD_FROMSOURCE%
-echo BUILD_FSHARP_PROJ=%BUILD_FSHARP_PROJ%
-echo.
-echo PB_SKIPTESTS=%PB_SKIPTESTS%
-echo PB_RESTORESOURCE=%PB_RESTORESOURCE%
-echo.
-echo SIGN_TYPE=%SIGN_TYPE%
-echo.
-echo COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES=%COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES%
-echo.
-echo TEST_FCS=%TEST_FCS%
-echo TEST_NET40_COMPILERUNIT_SUITE=%TEST_NET40_COMPILERUNIT_SUITE%
-echo TEST_NET40_COREUNIT_SUITE=%TEST_NET40_COREUNIT_SUITE%
-echo TEST_NET40_FSHARP_SUITE=%TEST_NET40_FSHARP_SUITE%
-echo TEST_NET40_FSHARPQA_SUITE=%TEST_NET40_FSHARPQA_SUITE%
-echo TEST_CORECLR_COREUNIT_SUITE=%TEST_CORECLR_COREUNIT_SUITE%
-echo TEST_CORECLR_FSHARP_SUITE=%TEST_CORECLR_FSHARP_SUITE%
-echo TEST_VS_IDEUNIT_SUITE=%TEST_VS_IDEUNIT_SUITE%
-echo INCLUDE_TEST_TAGS=%INCLUDE_TEST_TAGS%
-echo TEMP=%TEMP%
-
-:: load Visual Studio 2017 developer command prompt if VS150COMNTOOLS is not set
-
-:: If this is not set, VsDevCmd.bat will change %cd% to [USERPROFILE]\source, causing the build to fail.
-SET VSCMD_START_DIR=%cd%
-
-:: Try find installation path of VS2017 with vswhere.exe
-if "%VS150COMNTOOLS%" EQU "" if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\" (
- for /f "usebackq delims=" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -property installationPath`) do set VS_INSTALLATION_PATH=%%i
-)
-
-if "%VS_INSTALLATION_PATH%" NEQ "" (
- call "%VS_INSTALLATION_PATH%\Common7\Tools\VsDevCmd.bat"
-)
-
-:: If there's no installation of VS2017 or VS2017 Preview, use the build tools
-if "%VS150COMNTOOLS%" EQU "" if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" (
- call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat"
-)
-
-echo.
-echo Environment
-set
-echo.
-echo.
-
-echo ---------------- Done with arguments, starting preparation -----------------
-rem set TargetFrameworkSDKToolsDirectory --- needed for sdk to find al.exe.
-if not "%TargetFrameworkSDKToolsDirectory%" == "" ( goto have_TargetFrameworkSDKToolsDirectory )
-set TargetFrameworkSDKToolsDirectory=%WindowsSDK_ExecutablePath_x64%
-
-if not "%TargetFrameworkSDKToolsDirectory%" == "" ( goto have_TargetFrameworkSDKToolsDirectory )
-set TargetFrameworkSDKToolsDirectory=%WindowsSDK_ExecutablePath_x86%
-
-:have_TargetFrameworkSDKToolsDirectory
-
-if "%RestorePackages%"=="" (
- set RestorePackages=true
-)
-
-@echo VSSDKToolsPath: %VSSDKToolsPath%
-@echo VSSDKIncludes: %VSSDKIncludes%
-@echo TargetFrameworkSDKToolsDirectory: %TargetFrameworkSDKToolsDirectory%
-
-@call src\update.cmd signonly
-
-:: Check prerequisites
-if not "%VisualStudioVersion%" == "" goto vsversionset
-if exist "%VS160COMNTOOLS%\..\ide\devenv.exe" set VisualStudioVersion=16.0
-if not "%VisualStudioVersion%" == "" goto vsversionset
-
-if not "%VisualStudioVersion%" == "" goto vsversionset
-if exist "%VS150COMNTOOLS%\..\ide\devenv.exe" set VisualStudioVersion=15.0
-if not "%VisualStudioVersion%" == "" goto vsversionset
-
-if not "%VisualStudioVersion%" == "" goto vsversionset
-if exist "%VS150COMNTOOLS%\..\..\ide\devenv.exe" set VisualStudioVersion=15.0
-if not "%VisualStudioVersion%" == "" goto vsversionset
-
-if exist "%VS140COMNTOOLS%\..\ide\devenv.exe" set VisualStudioVersion=14.0
-if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\common7\ide\devenv.exe" set VisualStudioVersion=14.0
-if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\common7\ide\devenv.exe" set VisualStudioVersion=14.0
-if not "%VisualStudioVersion%" == "" goto vsversionset
-
-if exist "%VS120COMNTOOLS%\..\ide\devenv.exe" set VisualStudioVersion=12.0
-if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\common7\ide\devenv.exe" set VisualStudioVersion=12.0
-if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\common7\ide\devenv.exe" set VisualStudioVersion=12.0
-
-:vsversionset
-if "%VisualStudioVersion%" == "" echo Error: Could not find an installation of Visual Studio && goto :failure
-
-if exist "%VS160COMNTOOLS%\..\..\MSBuild\Current\Bin\MSBuild.exe" (
- set _msbuildexe="%VS160COMNTOOLS%\..\..\MSBuild\Current\Bin\MSBuild.exe"
- goto :havemsbuild
-)
-if exist "%VS150COMNTOOLS%\..\..\MSBuild\15.0\Bin\MSBuild.exe" (
- set _msbuildexe="%VS150COMNTOOLS%\..\..\MSBuild\15.0\Bin\MSBuild.exe"
- goto :havemsbuild
-)
-if exist "%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe" (
- set _msbuildexe="%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe"
- goto :havemsbuild
-)
-if exist "%ProgramFiles%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe" (
- set _msbuildexe="%ProgramFiles%\MSBuild\%VisualStudioVersion%\Bin\MSBuild.exe"
- goto :havemsbuild
-)
-echo Error: Could not find MSBuild.exe. && goto :failure
-goto :eof
-
-:havemsbuild
-set _nrswitch=/nr:false
-
-set msbuildflags=%_nrswitch% /nologo /clp:Summary /v:minimal
-set _ngenexe="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ngen.exe"
-if not exist %_ngenexe% echo Error: Could not find ngen.exe. && goto :failure
-
-echo ---------------- Done with prepare, starting package restore ----------------
-
-:: Restore the Tools directory
-call "%~dp0init-tools.cmd"
-set _dotnetexe=%~dp0artifacts\toolset\dotnet\dotnet.exe
-set path=%~dp0artifacts\toolset\dotnet;%path%
-
-if not "%PB_PackageVersionPropsUrl%" == "" (
- echo ----------- do dependency uptake check -----------
-
- set dependencyUptakeDir=%~dp0artifacts\dependencyUptake
- if not exist "!dependencyUptakeDir!" mkdir "!dependencyUptakeDir!"
-
- :: download package version overrides
- echo powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
- powershell -noprofile -executionPolicy RemoteSigned -command "Invoke-WebRequest -Uri '%PB_PackageVersionPropsUrl%' -OutFile '!dependencyUptakeDir!\PackageVersions.props'"
- if ERRORLEVEL 1 echo Error downloading package version properties && goto :failure
-)
-
-if "%RestorePackages%" == "true" (
- if "%BUILD_FCS%" == "1" (
- cd fcs
- .paket\paket.exe restore
- cd..
- @if ERRORLEVEL 1 echo Error: Paket restore failed && goto :failure
- )
-)
-
-echo ---------------- Done with package restore, verify buildfrom source ---------------
-if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
- pushd src
- call buildfromsource.cmd
- @if ERRORLEVEL 1 echo Error: buildfromsource.cmd failed && goto :failure
- popd
-)
-
-echo ---------------- Done with package restore, starting proto ------------------------
-set logdir=%~dp0artifacts\log\%BUILD_CONFIG%
-if not exist "!logdir!" mkdir "!logdir!"
-
-rem Build Proto
-if "%BUILD_PROTO%" == "1" (
- rmdir /s /q artifacts/bin/fsc/Proto
-
- echo %_msbuildexe% proto.proj /t:Restore /bl:%~dp0artifacts\log\Proto\proto.proj.restore.binlog
- %_msbuildexe% proto.proj /t:Restore /bl:%~dp0artifacts\log\Proto\proto.proj.restore.binlog
- @if ERRORLEVEL 1 echo Error restoring proto failed && goto :failure
-
- echo %_msbuildexe% proto.proj /t:Build /bl:%~dp0artifacts\log\Proto\proto.proj.build.binlog
- %_msbuildexe% proto.proj /t:Build /bl:%~dp0artifacts\log\Proto\proto.proj.build.binlog
- @if ERRORLEVEL 1 echo Error building proto failed && goto :failure
-)
-
-echo ---------------- Done with SDK restore, starting build ------------------------
-
-if "%BUILD_PHASE%" == "1" if "%BUILD_FSHARP_PROJ%" == "1" (
-
- echo %_dotnetexe% restore fsharp.proj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\fsharp.proj.restore.binlog
- %_dotnetexe% restore fsharp.proj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\fsharp.proj.restore.binlog
-
- echo %_msbuildexe% fsharp.proj /t:Build /p:Configuration=%BUILD_CONFIG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN% /bl:!logdir!\fsharp.proj.build.binlog
- %_msbuildexe% fsharp.proj /t:Build /p:Configuration=%BUILD_CONFIG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN% /bl:!logdir!\fsharp.proj.build.binlog
-
- @if ERRORLEVEL 1 echo Error build failed && goto :failure
-)
-
-echo ---------------- Done with build, starting assembly version checks ---------------
-set asmvercheckpath=%~dp0tests\fsharpqa\testenv\src\AssemblyVersionCheck
-
-if "%BUILD_NET40%" == "1" (
- echo #r @"%USERPROFILE%\.nuget\packages\Newtonsoft.Json\9.0.1\lib\net45\Newtonsoft.Json.dll">%asmvercheckpath%\assemblies.fsx
- echo "%~dp0artifacts\bin\fsi\%BUILD_CONFIG%\net46\fsi.exe" "%asmvercheckpath%\AssemblyVersionCheck.fsx" -- "%~dp0build\config\AssemblySignToolData.json" "%~dp0artifacts"
- "%~dp0artifacts\bin\fsi\%BUILD_CONFIG%\net46\fsi.exe" "%asmvercheckpath%\AssemblyVersionCheck.fsx" -- "%~dp0build\config\AssemblySignToolData.json" "%~dp0artifacts"
- if ERRORLEVEL 1 echo Error verifying assembly versions and commit hashes. && goto :failure
-)
-
-echo ---------------- Done with assembly version checks, starting assembly signing ---------------
-
-if not "%SIGN_TYPE%" == "" (
- echo %_msbuildexe% build\projects\Signing.proj /t:Restore
- %_msbuildexe% build\projects\Signing.proj /t:Restore
-
- echo %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:BinaryBasePath=%~dp0artifacts /p:ConfigFile=%~dp0build\config\AssemblySignToolData.json
- %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:BinaryBasePath=%~dp0artifacts /p:ConfigFile=%~dp0build\config\AssemblySignToolData.json
-
- if ERRORLEVEL 1 echo Error running sign tool && goto :failure
-)
-
-if not "%SIGN_TYPE%" == "" (
- echo %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:BinaryBasepath=%~dp0artifacts\packages\%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\PackageSignToolData.json
- %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:BinaryBasepath=%~dp0artifacts\packages\%BUILD_CONFIG% /p:ConfigFile=%~dp0build\config\PackageSignToolData.json
- if ERRORLEVEL 1 echo Error running sign tool && goto :failure
-)
-
-if "%BUILD_SETUP%" == "1" (
- echo %_msbuildexe% %msbuildflags% setup\build-insertion.proj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\msbuild.build-insertion.build.%BUILD_CONFIG%.binlog
- %_msbuildexe% %msbuildflags% setup\build-insertion.proj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\msbuild.build-insertion.build.%BUILD_CONFIG%.binlog
- if ERRORLEVEL 1 echo Error building insertion packages && goto :failure
-)
-
-if not "%SIGN_TYPE%" == "" (
- echo %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:BinaryBasepath=%~dp0artifacts\VSSetup\%BUILD_CONFIG%\Insertion /p:ConfigFile=%~dp0build\config\InsertionSignToolData.json
- %_msbuildexe% build\projects\Signing.proj /t:DoSigning /p:SignType=%SIGN_TYPE% /p:Configuration=%BUILD_CONFIG% /p:BinaryBasePath=%~dp0artifacts\VSSetup\%BUILD_CONFIG%\Insertion /p:ConfigFile=%~dp0build\config\InsertionSignToolData.json
- if ERRORLEVEL 1 echo Error running sign tool && goto :failure
-)
-
-echo ---------------- Done with signing, building insertion files ---------------
-
-if "%BUILD_SETUP%" == "1" (
- echo %_msbuildexe% %msbuildflags% setup\Swix\Microsoft.FSharp.vsmanproj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\msbuild.setup-swix.build.%BUILD_CONFIG%.binlog
- %_msbuildexe% %msbuildflags% setup\Swix\Microsoft.FSharp.vsmanproj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\msbuild.setup-swix.build.%BUILD_CONFIG%.binlog
- if ERRORLEVEL 1 echo Error building .vsmanproj && goto :failure
-)
-
-echo ---------------- Done building insertion files, starting pack/update/prepare ---------------
-
-set X86_PROGRAMFILES=%ProgramFiles%
-if "%OSARCH%"=="AMD64" set X86_PROGRAMFILES=%ProgramFiles(x86)%
-
-set SYSWOW64=.
-if "%OSARCH%"=="AMD64" set SYSWOW64=SysWoW64
-
-if not "%OSARCH%"=="x86" set REGEXE32BIT=%WINDIR%\syswow64\reg.exe
-
-echo SDK environment vars from Registry
-echo ==================================
-
-for /d %%i in (%WINDIR%\Microsoft.NET\Framework\v4.0.?????) do set CORDIR=%%i
-set PATH=%PATH%;%CORDIR%
-
-set REGEXE32BIT=reg.exe
-
-IF NOT DEFINED SNEXE32 IF EXIST "%WINSDKNETFXTOOLS%\sn.exe" set SNEXE32=%WINSDKNETFXTOOLS%sn.exe
-IF NOT DEFINED SNEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\sn.exe" set SNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
-
-echo.
-echo SDK environment vars
-echo =======================
-echo WINSDKNETFXTOOLS: %WINSDKNETFXTOOLS%
-echo SNEXE32: %SNEXE32%
-echo SNEXE64: %SNEXE64%
-echo
-
-if "%TEST_NET40_COMPILERUNIT_SUITE%" == "0" if "%TEST_FCS%" == "0" if "%TEST_NET40_COREUNIT_SUITE%" == "0" if "TEST_CORECLR_FSHARP_SUITE" == "0" if "%TEST_CORECLR_COREUNIT_SUITE%" == "0" if "%TEST_VS_IDEUNIT_SUITE%" == "0" if "%TEST_NET40_FSHARP_SUITE%" == "0" if "%TEST_NET40_FSHARPQA_SUITE%" == "0" goto :success
-
-if "%no_test%" == "1" goto :success
-
-echo ---------------- Done with update, starting tests -----------------------
-
-if NOT "%INCLUDE_TEST_TAGS%" == "" (
- set TTAGS_ARG_RUNALL=-ttags:%INCLUDE_TEST_TAGS%
-)
-
-set link_exe=%~dp0tests\fsharpqa\testenv\bin\link\link.exe
-if not exist "%link_exe%" (
- echo Error: failed to find "%link_exe%" use nuget to restore the VisualCppTools package
- goto :failure
-)
-
-if /I not "%single_threaded%" == "true" (set PARALLEL_ARG=-procs:%NUMBER_OF_PROCESSORS%) else set PARALLEL_ARG=-procs:0
-
-set FSCBINPATH=%~dp0artifacts\bin\fsc\%BUILD_CONFIG%\net46
-set FSIANYCPUBINPATH=%~dp0artifacts\bin\fsiAnyCpu\%BUILD_CONFIG%\net46
-set FSIBINPATH=%~dp0artifacts\bin\fsi\%BUILD_CONFIG%\net46
-
-ECHO FSCBINPATH=%FSCBINPATH%
-ECHO FSIANYCPUBINPATH=%FSIANYCPUBINPATH%
-ECHO FSIBINPATH=%FSIBINPATH%
-ECHO link_exe=%link_exe%
-
-REM ---------------- test-net40-fsharp -----------------------
-
-set TESTLOGDIR=%~dp0artifacts\TestResults\%BUILD_CONFIG%
-if "%TEST_NET40_FSHARP_SUITE%" == "1" (
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Tests.FSharpSuite_net46.trx
- echo "%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo --------------------------------------------------------------
- echo Error: Running tests net40-fsharp failed, see file `!LOGFILE!`
- echo --------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- test-fcs -----------------------
-
-if "%TEST_FCS%" == "1" (
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Compiler.Service.Tests_net46.trx
- echo "%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" -s "%~dp0fcs\FSharp.Compiler.Service.Tests\app.runsettings" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" -s "%~dp0fcs\FSharp.Compiler.Service.Tests\app.runsettings" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo --------------------------------------------------------------
- echo Error: Running net40 fcs tests, see file `!LOGFILE!`
- echo --------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Compiler.Service.Tests_netcoreapp2.0.trx
- echo "%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" -s "%~dp0fcs\FSharp.Compiler.Service.Tests\app.runsettings" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0fcs\FSharp.Compiler.Service.Tests\FSharp.Compiler.Service.Tests.fsproj" -s "%~dp0fcs\FSharp.Compiler.Service.Tests\app.runsettings" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo --------------------------------------------------------------
- echo Error: Running coreclr fcs tests, see file `!LOGFILE!`
- echo --------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- end2end -----------------------
-if "%TEST_END_2_END%" == "1" (
-
- pushd %~dp0tests\EndToEndBuildTests
-
- echo Execute end to end compiler tests
- echo call EndToEndBuildTests.cmd
- call EndToEndBuildTests.cmd
- if errorlevel 1 (
- popd
- Echo end to end tests failed.
- goto :failure
- )
-)
-
-REM ---------------- net40-fsharpqa -----------------------
-
-set OSARCH=%PROCESSOR_ARCHITECTURE%
-
-rem Set this to 1 in order to use an external compiler host process
-rem This only has an effect when running the FSHARPQA tests, but can
-rem greatly speed up execution since fsc.exe does not need to be spawned thousands of times
-set HOSTED_COMPILER=1
-
-if "%TEST_NET40_FSHARPQA_SUITE%" == "1" (
-
- set CSC_PIPE=%USERPROFILE%\.nuget\packages\Microsoft.Net.Compilers\2.7.0\tools\csc.exe
- set FSC=!FSCBINPATH!\fsc.exe
- set FSI=!FSIBINPATH!\fsi.exe
- set FSIANYCPU=!FSIANYCPUBINPATH!\fsi.exe
- set FSCOREDLLPATH=!FSCBinPath!\FSharp.Core.dll
- set PATH=!FSCBINPATH!;!FSIBINPATH!;!FSIANYCPUBINPATH!;!PATH!
- set perlexe=%USERPROFILE%\.nuget\packages\StrawberryPerl64\5.22.2.1\Tools\perl\bin\perl.exe
- if not exist !perlexe! (echo Error: perl was not downloaded from check the packages directory: !perlexe! && goto :failure )
-
- set RESULTSDIR=%~dp0artifacts\TestResults\%BUILD_CONFIG%
- set OUTPUTFILE=test-net40-fsharpqa-results.log
- set ERRORFILE=test-net40-fsharpqa-errors.log
- set FAILENV=test-net40-fsharpqa-errors
-
- pushd %~dp0tests\fsharpqa\source
- echo !perlexe! %~dp0tests\fsharpqa\testenv\bin\runall.pl -resultsroot !RESULTSDIR! -results !OUTPUTFILE! -log !ERRORFILE! -fail !FAILENV! -cleanup:no !TTAGS_ARG_RUNALL! !PARALLEL_ARG!
- !perlexe! %~dp0tests\fsharpqa\testenv\bin\runall.pl -resultsroot !RESULTSDIR! -results !OUTPUTFILE! -log !ERRORFILE! -fail !FAILENV! -cleanup:no !TTAGS_ARG_RUNALL! !PARALLEL_ARG!
-
- popd
- if ERRORLEVEL 1 (
- echo -----------------------------------------------------------------
- type "!RESULTSDIR!\!OUTPUTFILE!"
- echo -----------------------------------------------------------------
- type "!RESULTSDIR!\!ERRORFILE!"
- echo -----------------------------------------------------------------
- echo Error: Running tests net40-fsharpqa failed, see logs above -- FAILED
- echo -----------------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- net40-compilerunit -----------------------
-
-if "%TEST_NET40_COMPILERUNIT_SUITE%" == "1" (
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Compiler.UnitTests_net46.trx
- echo "%_dotnetexe%" test "%~dp0tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo -----------------------------------------------------------------
- echo Error: Running tests net40-compilerunit failed, see file `!LOGFILE!`
- echo -----------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Build.UnitTests_net46.trx
- echo "%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo -----------------------------------------------------------------
- echo Error: Running tests net40-compilernit failed, see file `!LOGFILE!`
- echo -----------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- net40-coreunit -----------------------
-
-if "%TEST_NET40_COREUNIT_SUITE%" == "1" (
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Core.UnitTests_net46.trx
- echo "%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo -----------------------------------------------------------------
- echo Error: Running tests net40-coreunit failed, see file `!LOGFILE!`
- echo -----------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- coreclr-coreunit -----------------------
-
-if "%TEST_CORECLR_COREUNIT_SUITE%" == "1" (
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Build.UnitTests_netcoreapp2.0.trx
- echo "%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo -----------------------------------------------------------------
- echo Error: Running tests coreclr-compilernit failed, see file `!LOGFILE!`
- echo -----------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-
- set LOGFILE=%TESTLOGDIR%\FSharp.Core.UnitTests_netcoreapp2.0.trx
- echo "%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo ------------------------------------------------------------------
- echo Error: Running tests coreclr-coreunit failed, see file `!LOGFILE!`
- echo ------------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- coreclr-fsharp -----------------------
-
-if "%TEST_CORECLR_FSHARP_SUITE%" == "1" (
- set LOGFILE=%TESTLOGDIR%\FSharp.Tests.FSharpSuite_netcoreapp2.0.trx
- echo "%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0tests\fsharp\FSharp.Tests.FSharpSuite.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f netcoreapp2.0 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo ----------------------------------------------------------------
- echo Error: Running tests coreclr-fsharp failed, see file `!LOGFILE!`
- echo ----------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-REM ---------------- vs-ideunit -----------------------
-
-if "%TEST_VS_IDEUNIT_SUITE%" == "1" (
- set LOGFILE=%TESTLOGDIR%\GetTypesVSUnitTests_net46.trx
- echo "%_dotnetexe%" test "%~dp0vsintegration\tests\GetTypesVSUnitTests\GetTypesVSUnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0vsintegration\tests\GetTypesVSUnitTests\GetTypesVSUnitTests.fsproj" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
-
- if errorlevel 1 (
- echo ---------------------------------------------------------------------------
- echo Error: Running tests net40-gettypesvsunittests failed, see file `!LOGFILE!`
- echo ---------------------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-
- set LOGFILE=%TESTLOGDIR%\VisualFSharp.UnitTests_net46.trx
- echo "%_dotnetexe%" test "%~dp0vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" -s "%~dp0vsintegration\tests\UnitTests\app.runsettings" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- "%_dotnetexe%" test "%~dp0vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" -s "%~dp0vsintegration\tests\UnitTests\app.runsettings" --no-restore --no-build -c %BUILD_CONFIG% -f net46 -l "trx;LogFileName=!LOGFILE!"
- if errorlevel 1 (
- echo ------------------------------------------------------------
- echo Error: Running tests vs-ideunit failed, see file `!LOGFILE!`
- echo ------------------------------------------------------------
- goto :failure
- )
-
- if not exist "!LOGFILE!" (
- echo --------------------------------------------------------
- echo Test results file !LOGFILE! not found, ensure tests ran.
- echo --------------------------------------------------------
- goto :failure
- )
-)
-
-goto :success
-REM ------ exit -------------------------------------
-:failure
-endlocal
-@echo
-exit /b 1
-
-:success
-endlocal
-exit /b 0
diff --git a/build.sh b/build.sh
index 4e78c56091cc8eda8602da9c30e6f3f364ddfb0d..ed167ab24acebfc59ea69087490fe58b405a23de 100755
--- a/build.sh
+++ b/build.sh
@@ -1,3 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env bash
-make Configuration=release
+source="${BASH_SOURCE[0]}"
+
+# resolve $SOURCE until the file is no longer a symlink
+while [[ -h $source ]]; do
+ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+ source="$(readlink "$source")"
+
+ # if $source was a relative symlink, we need to resolve it relative to the path where the
+ # symlink file was located
+ [[ $source != /* ]] && source="$scriptroot/$source"
+done
+
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+"$scriptroot/eng/build.sh" --build $@
diff --git a/build/config/AssemblySignToolData.json b/build/config/AssemblySignToolData.json
deleted file mode 100644
index 8e8aebed7d629a4fbc196384b7be28f353b00751..0000000000000000000000000000000000000000
--- a/build/config/AssemblySignToolData.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "sign": [
- {
- "certificate": "Microsoft",
- "strongName": "StrongName",
- "values": [
- "bin\\FSharp.Core\\*\\*\\FSharp.Core.dll",
- "bin\\FSharp.Core\\*\\*\\*\\FSharp.Core.resources.dll",
- "bin\\FSharp.Build\\*\\*\\FSharp.Build.dll",
- "bin\\FSharp.Build\\*\\*\\*\\FSharp.Build.resources.dll",
- "bin\\FSharp.Compiler.Private\\*\\*\\FSharp.Compiler.Private.dll",
- "bin\\FSharp.Compiler.Private\\*\\*\\*\\FSharp.Compiler.Private.resources.dll",
- "bin\\FSharp.Compiler.Server.Shared\\*\\*\\FSharp.Compiler.Server.Shared.dll",
- "bin\\FSharp.Compiler.Interactive.Settings\\*\\*\\FSharp.Compiler.Interactive.Settings.dll",
- "bin\\FSharp.Compiler.Interactive.Settings\\*\\*\\*\\FSharp.Compiler.Interactive.Settings.resources.dll",
- "bin\\fsc\\*\\*\\fsc.exe",
- "bin\\fsi\\*\\*\\fsi.exe",
- "bin\\fsiAnyCpu\\*\\*\\fsiAnyCpu.exe",
- "bin\\FSharp.VS.FSI\\*\\*\\FSharp.VS.FSI.dll",
- "bin\\FSharp.VS.FSI\\*\\*\\*\\FSharp.VS.FSI.resources.dll",
- "bin\\FSharp.LanguageService.Base\\*\\*\\FSharp.LanguageService.Base.dll",
- "bin\\FSharp.LanguageService.Base\\*\\*\\*\\FSharp.LanguageService.Base.resources.dll",
- "bin\\FSharp.LanguageService\\*\\*\\FSharp.LanguageService.dll",
- "bin\\FSharp.LanguageService\\*\\*\\*\\FSharp.LanguageService.resources.dll",
- "bin\\FSharp.UIResources\\*\\*\\FSharp.UIResources.dll",
- "bin\\FSharp.UIResources\\*\\*\\*\\FSharp.UIResources.resources.dll",
- "bin\\FSharp.Editor\\*\\*\\FSharp.Editor.dll",
- "bin\\FSharp.Editor\\*\\*\\*\\FSharp.Editor.resources.dll",
- "bin\\FSharp.PatternMatcher\\*\\*\\FSharp.PatternMatcher.dll",
- "bin\\FSharp.PropertiesPages\\*\\*\\FSharp.ProjectSystem.PropertyPages.dll",
- "bin\\FSharp.PropertiesPages\\*\\*\\*\\FSharp.ProjectSystem.PropertyPages.resources.dll",
- "bin\\ProjectSystem\\*\\*\\FSharp.ProjectSystem.FSharp.dll",
- "bin\\ProjectSystem\\*\\*\\*\\FSharp.ProjectSystem.FSharp.resources.dll",
- "bin\\ProjectSystem.Base\\*\\*\\FSharp.ProjectSystem.Base.dll",
- "bin\\ProjectSystem.Base\\*\\*\\*\\FSharp.ProjectSystem.Base.resources.dll"
- ]
- },
- {
- "certificate": "VsixSHA2",
- "strongName": null,
- "values": [
- "bin\\VisualFSharpFull\\*\\*\\VisualFSharpFull.vsix",
- "bin\\VisualFSharpTemplates\\*\\*\\VisualFSharpTemplate.vsix",
- "VSSetup\\*\\Insertion\\Microsoft.FSharp.Dependencies.vsix",
- "VSSetup\\*\\Insertion\\Microsoft.FSharp.VSIX.Full.Resources.*.vsix"
- ]
- },
- {
- "certificate": "NuGet",
- "strongName": null,
- "values": [
- "packages\\*\\*.nupkg"
- ]
- }
- ],
- "exclude": [
- "e_sqlite3.dll",
- "FSharp.Core.UnitTests.dll",
- "FSharp.Data.TypeProviders.dll",
- "Microsoft.Build.dll",
- "Microsoft.Build.Framework.dll",
- "Microsoft.Build.Tasks.Core.dll",
- "Microsoft.Build.Utilities.Core.dll",
- "Newtonsoft.Json.dll",
- "System.Collections.Immutable.dll",
- "System.Reflection.Metadata.dll",
- "System.ValueTuple.4.4.0.nupkg",
- "System.ValueTuple.dll"
- ]
-}
diff --git a/build/config/InsertionSignToolData.json b/build/config/InsertionSignToolData.json
deleted file mode 100644
index d81579b12c9627e39d61ef83ca69f0eaa6ae35f7..0000000000000000000000000000000000000000
--- a/build/config/InsertionSignToolData.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "sign": [
- {
- "certificate": "VsixSHA2",
- "strongName": null,
- "values": [
- "Microsoft.FSharp.Compiler.vsix",
- "Microsoft.FSharp.Compiler.Resources.*.vsix",
- "Microsoft.FSharp.Dependencies.vsix",
- "Microsoft.FSharp.IDE.vsix",
- "Microsoft.FSharp.SDK.vsix"
- ]
- }
- ],
- "exclude": [
- "fsc.exe",
- "FSharp.Build.dll",
- "FSharp.Build.resources.dll",
- "FSharp.Core.dll",
- "FSharp.Core.resources.dll",
- "FSharp.Compiler.Private.dll",
- "FSharp.Compiler.Private.resources.dll",
- "FSharp.Compiler.Server.Shared.dll",
- "FSharp.Compiler.Interactive.Settings.dll",
- "FSharp.Compiler.Interactive.Settings.resources.dll",
- "fsi.exe",
- "fsiAnyCpu.exe",
- "FSharp.Data.TypeProviders.dll",
- "Microsoft.Build.dll",
- "Microsoft.Build.Framework.dll",
- "Microsoft.Build.Tasks.Core.dll",
- "Microsoft.Build.Utilities.Core.dll",
- "System.Collections.Immutable.dll",
- "System.Reflection.Metadata.dll",
- "System.ValueTuple.dll"
- ]
-}
diff --git a/build/config/PackageSignToolData.json b/build/config/PackageSignToolData.json
deleted file mode 100644
index bee55c6df1c9fdefbf73f919dfdd609b548b6976..0000000000000000000000000000000000000000
--- a/build/config/PackageSignToolData.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "sign": [
- {
- "certificate": "NuGet",
- "strongName": null,
- "values": [
- "*.nupkg"
- ]
- }
- ],
- "exclude": [
- "FSharp.Build.resources.dll",
- "FSharp.Compiler.Interactive.Settings.resources.dll",
- "FSharp.Compiler.Private.resources.dll",
- "FSharp.Core.resources.dll",
- "fsc.exe",
- "FSharp.Build.dll",
- "FSharp.Compiler.Interactive.Settings.dll",
- "FSharp.Compiler.Private.dll",
- "FSharp.Core.dll",
- "FSharp.Core.UnitTests.dll",
- "fsi.exe"
- ]
-}
\ No newline at end of file
diff --git a/build/projects/Directory.Build.props b/build/projects/Directory.Build.props
deleted file mode 100644
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..0000000000000000000000000000000000000000
--- a/build/projects/Directory.Build.props
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/build/projects/Directory.Build.targets b/build/projects/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/build/projects/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/build/projects/Signing.proj b/build/projects/Signing.proj
deleted file mode 100644
index 9e981e135ec9aa9004f17a8fa4586321c65ae363..0000000000000000000000000000000000000000
--- a/build/projects/Signing.proj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- net46
- $(NuGetPackageRoot)RoslynTools.SignTool\$(RoslynToolsSignToolPackageVersion)\tools\SignTool.exe
- -msbuildPath "$(MSBuildBinPath)\msbuild.exe" -nugetPackagesPath "$(NuGetPackageRoot.TrimEnd('\'))" -config "$(ConfigFile)"
- -testSign $(SignToolArgs)
- -test $(SignToolArgs)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/targets/AssemblyVersions.props b/build/targets/AssemblyVersions.props
deleted file mode 100644
index d76ea06ec5fbcde5ae1ca99a0ae3751934597215..0000000000000000000000000000000000000000
--- a/build/targets/AssemblyVersions.props
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
- $([System.DateTime]::Now.ToString(yyyyMMdd.0))
-
- $(BUILD_BUILDNUMBER.Replace(".DRAFT", ""))
-
-
- <_Build_Year>$(BUILD_BUILDNUMBER.Substring(0, 4))
- <_Build_Month>$(BUILD_BUILDNUMBER.Substring(4, 2))
- <_Build_Day>$(BUILD_BUILDNUMBER.Substring(6, 2))
- <_Build_Number>$(BUILD_BUILDNUMBER.Substring(9))
- $(_Build_Year).$(_Build_Month).$(_Build_Day).$(_Build_Number)
-
- 4.5
- $(FSLanguageVersion)
- $(FSCoreMajorVersion).4
- $(FSCoreMajorVersion).0.0
- $(FSCorePackageVersion).0
-
- 10.2
- $(FSPackageMajorVersion).3
- $(FSPackageVersion).0
-
- 15
- 9
- $(VSMajorVersion).0
- $(VSMajorVersion).$(VSMinorVersion).0.0
-
-
- $(BUILD_BUILDNUMBER.Split('.')[0].Substring(2))
- $(BUILD_BUILDNUMBER.Split('.')[1].PadLeft(2, '0'))
- $(BuildTimeStamp_Date)$(BuildTimeStamp_Number)
- $(VSAssemblyVersion.Split('.')[0]).$(VSAssemblyVersion.Split('.')[1]).$(BUILD_BUILDNUMBER)
- 42.42.42.42
- $(BuildTimeStamp_Date)-$(BuildTimeStamp_Number)
-
-
-
-
-
-
diff --git a/build/targets/CommonPackages.targets b/build/targets/CommonPackages.targets
deleted file mode 100644
index dc21381a3a8ba3c395821baed9f0f40c79fde70c..0000000000000000000000000000000000000000
--- a/build/targets/CommonPackages.targets
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/build/targets/ConvertPortablePdbs.targets b/build/targets/ConvertPortablePdbs.targets
deleted file mode 100644
index 9d65dab2dc41ef1725ef502bb43869ec7e78eba8..0000000000000000000000000000000000000000
--- a/build/targets/ConvertPortablePdbs.targets
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
- $(SymStoreDirectory)\$(TargetFramework)
- $(NuGetPackageRoot)Pdb2Pdb\$(Pdb2PdbPackageVersion)\tools\Pdb2Pdb.exe
- "$(TargetPath)" /out "$(ConvertedPdbsDirectory)\$(TargetName).pdb" /srcsvrvar SRC_INDEX=public
-
-
-
-
-
-
-
-
- $(TargetDir)\$(TargetName).pdb
-
-
-
-
-
-
-
diff --git a/build/targets/GenerateAssemblyAttributes.targets b/build/targets/GenerateAssemblyAttributes.targets
deleted file mode 100644
index 7b747c9dd92c02369c47dfe1670ae482d3de7250..0000000000000000000000000000000000000000
--- a/build/targets/GenerateAssemblyAttributes.targets
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
- false
-
-
-
-
- $(IntermediateOutputPath)$(MSBuildProjectName).AssemblyLevelAttributes$(DefaultLanguageSourceExtension)
-
-
- $(NoWarn);2003
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(FSCoreVersion)
-
-
- $(FSProductVersion)
-
-
- $(VSAssemblyVersion)
-
- $(IntermediateOutputPath)$(MSBuildProjectName).AssemblyVersion$(DefaultLanguageSourceExtension)
-
-
-
- <_UseWriteCodeFragmentHack Condition="'$(OS)' == 'Unix' and '$(Language)' == 'F#'">true
-
-
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyCompanyAttribute">
- <_Parameter1>Microsoft Corporation
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyCopyrightAttribute">
- <_Parameter1>© Microsoft Corporation. All Rights Reserved.
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyDescriptionAttribute">
- <_Parameter1>$(AssemblyName)
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyFileVersionAttribute">
- <_Parameter1>$(Build_FileVersion)
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyInformationalVersionAttribute">
- <_Parameter1>$(MicroBuildAssemblyVersion). Commit Hash: $(GitHeadSha).
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyProductAttribute">
- <_Parameter1>Microsoft® F#
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyTitleAttribute">
- <_Parameter1>$(AssemblyName)
-
- <_AssemblyVersionAttributes Include="System.Reflection.AssemblyVersionAttribute">
- <_Parameter1>$(MicroBuildAssemblyVersion)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_LinesToWrite Include="// <auto-generated>" />
- <_LinesToWrite Include="namespace FSharp" />
- <_LinesToWrite Include="open System" />
- <_LinesToWrite Include="open System.Reflection" />
- <_LinesToWrite Include="[<assembly: %(_AssemblyVersionAttributes.Identity)("%(_AssemblyVersionAttributes._Parameter1)")>]" />
- <_LinesToWrite Include="do()" />
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/targets/GenerateInternalsVisibleTo.targets b/build/targets/GenerateInternalsVisibleTo.targets
deleted file mode 100644
index 4950837d36af63210f71fa86bf03ba77f73a4001..0000000000000000000000000000000000000000
--- a/build/targets/GenerateInternalsVisibleTo.targets
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
- $(IntermediateOutputPath)$(MSBuildProjectName).InternalsVisibleTo$(DefaultLanguageSourceExtension)
-
-
-
-
- false
-
-
-
-
-
- <_PublicKey>002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293
-
-
- <_PublicKey>002400000480000094000000060200000024000052534131000400000100010077d32e043d184cf8cebf177201ec6fad091581a3a639a0534f1c4ebb3ab847a6b6636990224a04cf4bd1aec51ecec44cf0c8922eb5bb2ee65ec3fb9baa87e141042c96ce414f98af33508c7e24dab5b068aa802f6693881537ee0efcb5d3f1c9aaf8215ac42e92ba9a5a02574d6890d07464cb2f338b043b1c4ffe98efe069ee
-
-
- <_InternalsVisibleToAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
- <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' != ''">%(InternalsVisibleTo.Identity), PublicKey=%(InternalsVisibleTo.Key)
- <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == ''">%(InternalsVisibleTo.Identity), PublicKey=$(_PublicKey)
-
-
-
-
-
-
-
-
- <_UseWriteCodeFragmentHack Condition="'$(OS)' == 'Unix' and '$(Language)' == 'F#'">true
-
-
-
-
-
-
-
-
-
-
-
-
- <_LinesToWrite Include="// <auto-generated>" />
- <_LinesToWrite Include="namespace FSharp" />
- <_LinesToWrite Include="open System" />
- <_LinesToWrite Include="open System.Reflection" />
- <_LinesToWrite Include="[<assembly: %(_InternalsVisibleToAttribute.Identity)("%(_InternalsVisibleToAttribute._Parameter1)")>]" />
- <_LinesToWrite Include="do()" />
-
-
-
-
-
-
-
-
-
diff --git a/build/targets/GitHash.props b/build/targets/GitHash.props
deleted file mode 100644
index 30f2d03b9153af37631e380abf9384be7fb2759c..0000000000000000000000000000000000000000
--- a/build/targets/GitHash.props
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
- $(MSBuildThisFileDirectory)..\..\
-
-
-
-
-
- $(BUILD_SOURCEVERSION)
-
-
-
-
-
- $(GIT_COMMIT)
-
-
-
-
-
- <developer build>
-
-
-
-
-
-
- <_DotGitDir>$(RepoRoot).git
- <_HeadFileContent Condition="Exists('$(_DotGitDir)/HEAD')">$([System.IO.File]::ReadAllText('$(_DotGitDir)/HEAD').Trim())
- <_RefPath Condition="$(_HeadFileContent.StartsWith('ref: '))">$(_DotGitDir)/$(_HeadFileContent.Substring(5))
- $([System.IO.File]::ReadAllText('$(_RefPath)').Trim())
- $(_HeadFileContent)
-
-
-
-
-
diff --git a/build/targets/NGenOrCrossGen.targets b/build/targets/NGenOrCrossGen.targets
deleted file mode 100644
index 3dba4fc5b2d0f7e492c93c9699c561c9da79ab6d..0000000000000000000000000000000000000000
--- a/build/targets/NGenOrCrossGen.targets
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
- $(windir)\Microsoft.NET\Framework64\v4.0.30319\ngen.exe
- $(windir)\Microsoft.NET\Framework\v4.0.30319\ngen.exe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
- false
-
-
-
-
diff --git a/eng/Build.ps1 b/eng/Build.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..ffa7b6d788aad33150cff8b131a3c20da9d6c818
--- /dev/null
+++ b/eng/Build.ps1
@@ -0,0 +1,286 @@
+#
+# This script controls the F# build process. This encompasess everything from build, testing to
+# publishing of NuGet packages. The intent is to structure it to allow for a simple flow of logic
+# between the following phases:
+#
+# - restore
+# - build
+# - sign
+# - pack
+# - test
+# - publish
+#
+# Each of these phases has a separate command which can be executed independently. For instance
+# it's fine to call `build.ps1 -build -testDesktop` followed by repeated calls to
+# `.\build.ps1 -testDesktop`.
+
+[CmdletBinding(PositionalBinding=$false)]
+param (
+ [string][Alias('c')]$configuration = "Debug",
+ [string][Alias('v')]$verbosity = "m",
+ [string]$msbuildEngine = "vs",
+
+ # Actions
+ [switch][Alias('r')]$restore,
+ [switch][Alias('b')]$build,
+ [switch]$rebuild,
+ [switch]$sign,
+ [switch]$pack,
+ [switch]$publish,
+ [switch]$launch,
+ [switch]$help,
+
+ # Options
+ [switch][Alias('proto')]$bootstrap,
+ [string]$bootstrapConfiguration = "Proto",
+ [string]$bootstrapTfm = "net46",
+ [switch][Alias('bl')]$binaryLog,
+ [switch]$ci,
+ [switch]$official,
+ [switch]$procdump,
+ [switch]$deployExtensions,
+ [switch]$prepareMachine,
+ [switch]$useGlobalNuGetCache = $true,
+ [switch]$warnAsError = $true,
+ [switch][Alias('test')]$testDesktop,
+ [switch]$testCoreClr,
+ [switch]$testFSharpQA,
+ [switch]$testVs,
+ [switch]$testAll,
+
+ [parameter(ValueFromRemainingArguments=$true)][string[]]$properties)
+
+Set-StrictMode -version 2.0
+$ErrorActionPreference = "Stop"
+
+function Print-Usage() {
+ Write-Host "Common settings:"
+ Write-Host " -configuration Build configuration: 'Debug' or 'Release' (short: -c)"
+ Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]"
+ Write-Host " -deployExtensions Deploy built vsixes"
+ Write-Host " -binaryLog Create MSBuild binary log (short: -bl)"
+ Write-Host ""
+ Write-Host "Actions:"
+ Write-Host " -restore Restore packages (short: -r)"
+ Write-Host " -build Build main solution (short: -b)"
+ Write-Host " -rebuild Rebuild main solution"
+ Write-Host " -pack Build NuGet packages, VS insertion manifests and installer"
+ Write-Host " -sign Sign our binaries"
+ Write-Host " -publish Publish build artifacts (e.g. symbols)"
+ Write-Host " -launch Launch Visual Studio in developer hive"
+ Write-Host " -help Print help and exit"
+ Write-Host ""
+ Write-Host "Test actions"
+ Write-Host " -testAll Run all tests"
+ Write-Host " -testDesktop Run tests against full .NET Framework"
+ Write-Host " -testCoreClr Run tests against CoreCLR"
+ Write-Host " -testFSharpQA Run F# Cambridge tests"
+ Write-Host " -testVs Run F# editor unit tests"
+ Write-Host ""
+ Write-Host "Advanced settings:"
+ Write-Host " -ci Set when running on CI server"
+ Write-Host " -official Set when building an official build"
+ Write-Host " -bootstrap Build using a bootstrap compiler"
+ Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
+ Write-Host " -procdump Monitor test runs with procdump"
+ Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
+ Write-Host " -useGlobalNuGetCache Use global NuGet cache."
+ Write-Host ""
+ Write-Host "Command line arguments starting with '/p:' are passed through to MSBuild."
+}
+
+# Process the command line arguments and establish defaults for the values which are not
+# specified.
+function Process-Arguments() {
+ if ($help -or (($properties -ne $null) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
+ Print-Usage
+ exit 0
+ }
+
+ if ($testAll) {
+ $script:testDesktop = $True
+ $script:testCoreClr = $True
+ $script:testFSharpQA = $True
+ $script:testVs = $True
+ }
+
+ foreach ($property in $properties) {
+ if (!$property.StartsWith("/p:", "InvariantCultureIgnoreCase")) {
+ Write-Host "Invalid argument: $property"
+ Print-Usage
+ exit 1
+ }
+ }
+}
+
+function Update-Arguments() {
+ if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc.exe")) {
+ $script:bootstrap = $True
+ }
+}
+
+function BuildSolution() {
+ # VisualFSharp.sln can't be built with dotnet due to WPF, WinForms and VSIX build task dependencies
+ $solution = "VisualFSharp.sln"
+
+ Write-Host "$($solution):"
+
+ $bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
+ $projects = Join-Path $RepoRoot $solution
+ $officialBuildId = if ($official) { $env:BUILD_BUILDNUMBER } else { "" }
+ $toolsetBuildProj = InitializeToolset
+ $quietRestore = !$ci
+ $testTargetFrameworks = if ($testCoreClr) { "netcoreapp2.1" } else { "" }
+
+ # Do not set the property to true explicitly, since that would override value projects might set.
+ $suppressExtensionDeployment = if (!$deployExtensions) { "/p:DeployExtension=false" } else { "" }
+
+ MSBuild $toolsetBuildProj `
+ $bl `
+ /p:Configuration=$configuration `
+ /p:Projects=$projects `
+ /p:RepoRoot=$RepoRoot `
+ /p:Restore=$restore `
+ /p:Build=$build `
+ /p:Rebuild=$rebuild `
+ /p:Pack=$pack `
+ /p:Sign=$sign `
+ /p:Publish=$publish `
+ /p:ContinuousIntegrationBuild=$ci `
+ /p:OfficialBuildId=$officialBuildId `
+ /p:BootstrapBuildPath=$bootstrapDir `
+ /p:QuietRestore=$quietRestore `
+ /p:QuietRestoreBinaryLog=$binaryLog `
+ /p:TestTargetFrameworks=$testTargetFrameworks `
+ $suppressExtensionDeployment `
+ @properties
+}
+
+function TestAndAddToPath([string] $testPath) {
+ if (Test-Path $testPath) {
+ $env:PATH = "$testPath;$env:PATH"
+ Write-Host "Added [$testPath] to the path."
+ }
+}
+
+function UpdatePath() {
+ # add highest framework dir
+ $subdir = ""
+ foreach ($child in Get-ChildItem "$env:WINDIR\Microsoft.NET\Framework\v4.0.?????") {
+ $subdir = $child
+ }
+ TestAndAddToPath $subdir
+
+ # add windows SDK dir for ildasm.exe
+ foreach ($child in Get-ChildItem "${env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.?.? Tools") {
+ $subdir = $child
+ }
+ TestAndAddToPath $subdir
+
+ TestAndAddToPath "$ArtifactsDir\bin\fsc\$configuration\net46"
+ TestAndAddToPath "$ArtifactsDir\bin\fsiAnyCpu\$configuration\net46"
+}
+
+function VerifyAssemblyVersions() {
+ $fsiPath = Join-Path $ArtifactsDir "bin\fsi\$configuration\net46\fsi.exe"
+
+ # desktop fsi isn't always built
+ if (Test-Path $fsiPath) {
+ $asmVerCheckPath = "$RepoRoot\scripts"
+ Exec-Console $fsiPath """$asmVerCheckPath\AssemblyVersionCheck.fsx"" -- ""$ArtifactsDir"""
+ }
+}
+
+function TestUsingNUnit([string] $testProject, [string] $targetFramework) {
+ $dotnetPath = InitializeDotNetCli
+ $dotnetExe = Join-Path $dotnetPath "dotnet.exe"
+ $projectName = [System.IO.Path]::GetFileNameWithoutExtension($testProject)
+ $testLogPath = "$ArtifactsDir\TestResults\$configuration\${projectName}_$targetFramework.xml"
+ $testBinLogPath = "$LogDir\${projectName}_$targetFramework.binlog"
+ $args = "test $testProject --no-restore --no-build -c $configuration -f $targetFramework -v n --test-adapter-path . --logger ""nunit;LogFilePath=$testLogPath"" /bl:$testBinLogPath"
+ Exec-Console $dotnetExe $args
+}
+
+function Prepare-TempDir() {
+ Copy-Item (Join-Path $RepoRoot "tests\Resources\Directory.Build.props") $TempDir
+ Copy-Item (Join-Path $RepoRoot "tests\Resources\Directory.Build.targets") $TempDir
+}
+
+try {
+ Process-Arguments
+
+ . (Join-Path $PSScriptRoot "build-utils.ps1")
+
+ Update-Arguments
+
+ Push-Location $RepoRoot
+
+ if ($ci) {
+ Prepare-TempDir
+ }
+
+ if ($bootstrap) {
+ $bootstrapDir = Make-BootstrapBuild
+ }
+
+ if ($restore -or $build -or $rebuild -or $pack -or $sign -or $publish) {
+ BuildSolution
+ }
+
+ if ($build) {
+ VerifyAssemblyVersions
+ }
+
+ $desktopTargetFramework = "net46"
+ $coreclrTargetFramework = "netcoreapp2.0"
+
+ if ($testDesktop) {
+ TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" -targetFramework $desktopTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" -targetFramework $desktopTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" -targetFramework $desktopTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $desktopTargetFramework
+ }
+
+ if ($testCoreClr) {
+ TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Compiler.UnitTests\FSharp.Compiler.UnitTests.fsproj" -targetFramework $coreclrTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj" -targetFramework $coreclrTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\tests\FSharp.Core.UnitTests\FSharp.Core.UnitTests.fsproj" -targetFramework $coreclrTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $coreclrTargetFramework
+ }
+
+ if ($testFSharpQA) {
+ Push-Location "$RepoRoot\tests\fsharpqa\source"
+ $resultsRoot = "$ArtifactsDir\TestResults\$configuration"
+ $resultsLog = "test-net40-fsharpqa-results.log"
+ $errorLog = "test-net40-fsharpqa-errors.log"
+ $failLog = "test-net40-fsharpqa-errors"
+ $perlExe = "$env:USERPROFILE\.nuget\packages\StrawberryPerl64\5.22.2.1\Tools\perl\bin\perl.exe"
+ Create-Directory $resultsRoot
+ UpdatePath
+ $env:HOSTED_COMPILER = 1
+ $env:CSC_PIPE = "$env:USERPROFILE\.nuget\packages\Microsoft.Net.Compilers\2.7.0\tools\csc.exe"
+ $env:FSCOREDLLPATH = "$ArtifactsDir\bin\fsc\$configuration\net46\FSharp.Core.dll"
+ $env:LINK_EXE = "$RepoRoot\tests\fsharpqa\testenv\bin\link\link.exe"
+ $env:OSARCH = $env:PROCESSOR_ARCHITECTURE
+ Exec-Console $perlExe """$RepoRoot\tests\fsharpqa\testenv\bin\runall.pl"" -resultsroot ""$resultsRoot"" -results $resultsLog -log $errorLog -fail $failLog -cleanup:no -procs:$env:NUMBER_OF_PROCESSORS"
+ Pop-Location
+ }
+
+ if ($testVs) {
+ Write-Host "Environment Variables"
+ Get-Childitem Env:
+ TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\GetTypesVS.UnitTests\GetTypesVS.UnitTests.fsproj" -targetFramework $desktopTargetFramework
+ TestUsingNUnit -testProject "$RepoRoot\vsintegration\tests\UnitTests\VisualFSharp.UnitTests.fsproj" -targetFramework $desktopTargetFramework
+ }
+
+ ExitWithExitCode 0
+}
+catch {
+ Write-Host $_
+ Write-Host $_.Exception
+ Write-Host $_.ScriptStackTrace
+ ExitWithExitCode 1
+}
+finally {
+ Pop-Location
+}
diff --git a/eng/CIBuild.cmd b/eng/CIBuild.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..84640d7efc52837186c50f78efece88cdce896b3
--- /dev/null
+++ b/eng/CIBuild.cmd
@@ -0,0 +1,2 @@
+@echo off
+powershell -noprofile -executionPolicy RemoteSigned -file "%~dp0\Build.ps1" -ci -restore -build -bootstrap -pack -sign -publish -binaryLog %*
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b3e52da9c93e65064cb3ba2162a2e457412d695
--- /dev/null
+++ b/eng/Version.Details.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ https://github.com/dotnet/arcade
+ 9ba7a4ced36358fc130b762d25a83fa370c296c9
+
+
+
diff --git a/build/targets/PackageVersions.props b/eng/Versions.props
similarity index 71%
rename from build/targets/PackageVersions.props
rename to eng/Versions.props
index 498a9d7fd6879aee69a5fe4ff3d6b00c3000a067..1e029d23606f8479b721c9fdd6e358c20e96af8e 100644
--- a/build/targets/PackageVersions.props
+++ b/eng/Versions.props
@@ -1,5 +1,48 @@
+
+
+ false
+
+
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+ beta
+
+ 4.5
+ $(FSCoreMajorVersion).5
+ $(FSCoreMajorVersion).0
+ $(FSCoreVersion).0
+
+ 10.2
+ $(FSPackageMajorVersion).3
+ $(FSPackageVersion)
+ $(FSProductVersion).0
+
+ 15
+ 9
+ $(VSMajorVersion).0
+ $(VSMajorVersion).$(VSMinorVersion).0
+ $(VSAssemblyVersion).0
+
+
+
+
+ $(FSCoreVersion)
+ $(FSProductVersion)
+ $(VSAssemblyVersion)
+ $(VSMajorVersion).$(VSMinorVersion).0
+
+ $(VersionPrefix)
+
+
@@ -13,14 +56,14 @@
https://api.nuget.org/v3/index.json;
https://dotnet.myget.org/F/roslyn/api/v3/index.json;
https://dotnet.myget.org/F/symreader-converter/api/v3/index.json;
+ https://myget.org/F/vs-devcore/api/v3/index.json;
+ https://myget.org/F/vs-editor/api/v3/index.json;
+ https://vside.myget.org/F/vssdk/api/v3/index.json;
+ https://vside.myget.org/F/vs-impl/api/v3/index.json;
-
- $(PB_RestoreSource);$(RestoreSources)
- $(MSBuildThisFileDirectory)..\..\artifacts\dependencyUptake\PackageVersions.props
-
- $([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\..\RoslynPackageVersion.txt').Trim())
+ $([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\RoslynPackageVersion.txt').Trim())
1.5.0
@@ -66,14 +109,14 @@
8.0.1
14.0.25420
- 15.6.27740
+ 15.8.525
15.0.26201-alpha
1.1.4322
- 15.0.26201
+ 15.8.525
15.0.26201
- 15.6.27740
- 15.6.27740
- 15.6.27740
+ 15.8.525
+ 15.8.525
+ 15.8.525
8.0.50727
7.10.6071
15.0.26201
@@ -82,7 +125,7 @@
14.3.25407
15.0.26201
15.0.26201
- 15.0.26201
+ 15.9.28307
10.0.30319
11.0.50727
15.0.25123-Dev15Preview
@@ -92,18 +135,18 @@
10.0.30319
11.0.61030
12.0.30110
- 15.6.27740
+ 15.8.525
7.10.6071
8.0.50727
10.0.30319
12.0.30112
- 15.6.27740
- 15.6.27740
- 15.3.23
+ 15.8.525
+ 15.8.525
+ 15.8.209
15.0.26201
15.3.15
9.0.30729
- 15.6.170
+ 15.7.109
12.0.4
7.0.4
8.0.4
@@ -114,13 +157,10 @@
0.2.0
1.0.0
1.0.147
- 10.1.0
- 1.0.0
3.0.0-alpha4
1.0.30
- 1.1.0-beta1-63314-01
8.0.0-alpha
2.7.0
2.0.3
@@ -128,16 +168,13 @@
1.0.0
4.3.0
9.0.1
- 3.10.1
- 3.10.0
- 3.10.1
+ 3.11.0
+ 3.11.2
+ 3.11.0
+ 2.1.36
1.0.0-beta2-dev3
5.22.2.1
- 0.2.0-beta-000081
-
-
-
diff --git a/eng/build-utils.ps1 b/eng/build-utils.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..845169db12a2e2b9a655aa5e21e8528f4fd98d4b
--- /dev/null
+++ b/eng/build-utils.ps1
@@ -0,0 +1,257 @@
+# Collection of powershell build utility functions that we use across our scripts.
+
+Set-StrictMode -version 2.0
+$ErrorActionPreference="Stop"
+
+# Import Arcade functions
+. (Join-Path $PSScriptRoot "common\tools.ps1")
+
+$VSSetupDir = Join-Path $ArtifactsDir "VSSetup\$configuration"
+$PackagesDir = Join-Path $ArtifactsDir "packages\$configuration"
+
+$binaryLog = if (Test-Path variable:binaryLog) { $binaryLog } else { $false }
+$nodeReuse = if (Test-Path variable:nodeReuse) { $nodeReuse } else { $false }
+$bootstrapDir = if (Test-Path variable:bootstrapDir) { $bootstrapDir } else { "" }
+$bootstrapConfiguration = if (Test-Path variable:bootstrapConfiguration) { $bootstrapConfiguration } else { "Proto" }
+$bootstrapTrm = if (Test-Path variable:bootstrapTfm) { $bootstrapConfiguration } else { "net46" }
+$properties = if (Test-Path variable:properties) { $properties } else { @() }
+
+function GetProjectOutputBinary([string]$fileName, [string]$projectName = "", [string]$configuration = $script:configuration, [string]$tfm = "net46", [string]$rid = "", [bool]$published = $false) {
+ $projectName = if ($projectName -ne "") { $projectName } else { [System.IO.Path]::GetFileNameWithoutExtension($fileName) }
+ $publishDir = if ($published) { "publish\" } else { "" }
+ $ridDir = if ($rid -ne "") { "$rid\" } else { "" }
+ return Join-Path $ArtifactsDir "bin\$projectName\$configuration\$tfm\$ridDir$publishDir$fileName"
+}
+
+# Handy function for executing a command in powershell and throwing if it
+# fails.
+#
+# Use this when the full command is known at script authoring time and
+# doesn't require any dynamic argument build up. Example:
+#
+# Exec-Block { & $msbuild Test.proj }
+#
+# Original sample came from: http://jameskovacs.com/2010/02/25/the-exec-problem/
+function Exec-Block([scriptblock]$cmd) {
+ & $cmd
+
+ # Need to check both of these cases for errors as they represent different items
+ # - $?: did the powershell script block throw an error
+ # - $lastexitcode: did a windows command executed by the script block end in error
+ if ((-not $?) -or ($lastexitcode -ne 0)) {
+ throw "Command failed to execute: $cmd"
+ }
+}
+
+function Exec-CommandCore([string]$command, [string]$commandArgs, [switch]$useConsole = $true) {
+ if ($useConsole) {
+ $exitCode = Exec-Process $command $commandArgs
+ if ($exitCode -ne 0) {
+ throw "Command failed to execute with exit code $($exitCode): $command $commandArgs"
+ }
+ return
+ }
+
+ $startInfo = New-Object System.Diagnostics.ProcessStartInfo
+ $startInfo.FileName = $command
+ $startInfo.Arguments = $commandArgs
+
+ $startInfo.UseShellExecute = $false
+ $startInfo.WorkingDirectory = Get-Location
+ $startInfo.RedirectStandardOutput = $true
+ $startInfo.CreateNoWindow = $true
+
+ $process = New-Object System.Diagnostics.Process
+ $process.StartInfo = $startInfo
+ $process.Start() | Out-Null
+
+ $finished = $false
+ try {
+ # The OutputDataReceived event doesn't fire as events are sent by the
+ # process in powershell. Possibly due to subtlties of how Powershell
+ # manages the thread pool that I'm not aware of. Using blocking
+ # reading here as an alternative which is fine since this blocks
+ # on completion already.
+ $out = $process.StandardOutput
+ while (-not $out.EndOfStream) {
+ $line = $out.ReadLine()
+ Write-Output $line
+ }
+
+ while (-not $process.WaitForExit(100)) {
+ # Non-blocking loop done to allow ctr-c interrupts
+ }
+
+ $finished = $true
+ if ($process.ExitCode -ne 0) {
+ throw "Command failed to execute with exit code $($process.ExitCode): $command $commandArgs"
+ }
+ }
+ finally {
+ # If we didn't finish then an error occured or the user hit ctrl-c. Either
+ # way kill the process
+ if (-not $finished) {
+ $process.Kill()
+ }
+ }
+}
+
+# Handy function for executing a windows command which needs to go through
+# windows command line parsing.
+#
+# Use this when the command arguments are stored in a variable. Particularly
+# when the variable needs reparsing by the windows command line. Example:
+#
+# $args = "/p:ManualBuild=true Test.proj"
+# Exec-Command $msbuild $args
+#
+function Exec-Command([string]$command, [string]$commandArgs) {
+ Exec-CommandCore -command $command -commandArgs $commandargs -useConsole:$false
+}
+
+# Functions exactly like Exec-Command but lets the process re-use the current
+# console. This means items like colored output will function correctly.
+#
+# In general this command should be used in place of
+# Exec-Command $msbuild $args | Out-Host
+#
+function Exec-Console([string]$command, [string]$commandArgs) {
+ Exec-CommandCore -command $command -commandArgs $commandargs -useConsole:$true
+}
+
+# Handy function for executing a powershell script in a clean environment with
+# arguments. Prefer this over & sourcing a script as it will both use a clean
+# environment and do proper error checking
+function Exec-Script([string]$script, [string]$scriptArgs = "") {
+ Exec-Command "powershell" "-noprofile -executionPolicy RemoteSigned -file `"$script`" $scriptArgs"
+}
+
+# Ensure the proper .NET Core SDK is available. Returns the location to the dotnet.exe.
+function Ensure-DotnetSdk() {
+ return Join-Path (InitializeDotNetCli -install:$true) "dotnet.exe"
+}
+
+function Get-VersionCore([string]$name, [string]$versionFile) {
+ $name = $name.Replace(".", "")
+ $name = $name.Replace("-", "")
+ $nodeName = "$($name)Version"
+ $x = [xml](Get-Content -raw $versionFile)
+ $node = $x.SelectSingleNode("//Project/PropertyGroup/$nodeName")
+ if ($node -ne $null) {
+ return $node.InnerText
+ }
+
+ throw "Cannot find package $name in $versionFile"
+
+}
+
+# Return the version of the NuGet package as used in this repo
+function Get-PackageVersion([string]$name) {
+ return Get-VersionCore $name (Join-Path $EngRoot "Versions.props")
+}
+
+# Locate the directory where our NuGet packages will be deployed. Needs to be kept in sync
+# with the logic in Version.props
+function Get-PackagesDir() {
+ $d = $null
+ if ($env:NUGET_PACKAGES -ne $null) {
+ $d = $env:NUGET_PACKAGES
+ }
+ else {
+ $d = Join-Path $env:UserProfile ".nuget\packages\"
+ }
+
+ Create-Directory $d
+ return $d
+}
+
+# Locate the directory of a specific NuGet package which is restored via our main
+# toolset values.
+function Get-PackageDir([string]$name, [string]$version = "") {
+ if ($version -eq "") {
+ $version = Get-PackageVersion $name
+ }
+
+ $p = Get-PackagesDir
+ $p = Join-Path $p $name.ToLowerInvariant()
+ $p = Join-Path $p $version
+ return $p
+}
+
+function Run-MSBuild([string]$projectFilePath, [string]$buildArgs = "", [string]$logFileName = "", [switch]$parallel = $true, [switch]$summary = $true, [switch]$warnAsError = $true, [string]$configuration = $script:configuration) {
+ # Because we override the C#/VB toolset to build against our LKG package, it is important
+ # that we do not reuse MSBuild nodes from other jobs/builds on the machine. Otherwise,
+ # we'll run into issues such as https://github.com/dotnet/roslyn/issues/6211.
+ # MSBuildAdditionalCommandLineArgs=
+ $args = "/p:TreatWarningsAsErrors=true /nologo /nodeReuse:false /p:Configuration=$configuration ";
+
+ if ($warnAsError) {
+ $args += " /warnaserror"
+ }
+
+ if ($summary) {
+ $args += " /consoleloggerparameters:Verbosity=minimal;summary"
+ } else {
+ $args += " /consoleloggerparameters:Verbosity=minimal"
+ }
+
+ if ($parallel) {
+ $args += " /m"
+ }
+
+ if ($binaryLog) {
+ if ($logFileName -eq "") {
+ $logFileName = [IO.Path]::GetFileNameWithoutExtension($projectFilePath)
+ }
+ $logFileName = [IO.Path]::ChangeExtension($logFileName, ".binlog")
+ $logFilePath = Join-Path $LogDir $logFileName
+ $args += " /bl:$logFilePath"
+ }
+
+ if ($official) {
+ $args += " /p:OfficialBuildId=" + $env:BUILD_BUILDNUMBER
+ }
+
+ if ($ci) {
+ $args += " /p:ContinuousIntegrationBuild=true"
+ }
+
+ if ($bootstrapDir -ne "") {
+ $args += " /p:BootstrapBuildPath=$bootstrapDir"
+ }
+
+ $args += " $buildArgs"
+ $args += " $projectFilePath"
+ $args += " $properties"
+
+ $buildTool = InitializeBuildTool
+ Exec-Console $buildTool.Path "$($buildTool.Command) $args"
+}
+
+# Create a bootstrap build of the compiler. Returns the directory where the bootstrap build
+# is located.
+#
+# Important to not set $script:bootstrapDir here yet as we're actually in the process of
+# building the bootstrap.
+function Make-BootstrapBuild() {
+ Write-Host "Building bootstrap compiler"
+
+ $dir = Join-Path $ArtifactsDir "Bootstrap"
+ Remove-Item -re $dir -ErrorAction SilentlyContinue
+ Create-Directory $dir
+
+ # prepare FsLex and Fsyacc
+ Run-MSBuild "$RepoRoot\src\buildtools\buildtools.proj" "/restore /t:Build" -logFileName "BuildTools" -configuration $bootstrapConfiguration
+ Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\netcoreapp2.0\*" -Destination $dir
+ Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\netcoreapp2.0\*" -Destination $dir
+
+ # prepare compiler
+ $projectPath = "$RepoRoot\proto.proj"
+ Run-MSBuild $projectPath "/restore /t:Build" -logFileName "Bootstrap" -configuration $bootstrapConfiguration
+ Copy-Item "$ArtifactsDir\bin\fsc\$bootstrapConfiguration\$bootstrapTfm\*" -Destination $dir
+
+ Write-Host "Cleaning Bootstrap compiler artifacts"
+ Run-MSBuild $projectPath "/t:Clean" -logFileName "BootstrapClean" -configuration $bootstrapConfiguration
+
+ return $dir
+}
diff --git a/eng/build.sh b/eng/build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c2d362c267fb9529925c0be3cbbf015b6f62677a
--- /dev/null
+++ b/eng/build.sh
@@ -0,0 +1,245 @@
+#!/usr/bin/env bash
+# Copyright (c) .NET Foundation and contributors. All rights reserved.
+# Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+# Stop script if unbound variable found (use ${var:-} if intentional)
+set -u
+
+usage()
+{
+ echo "Common settings:"
+ echo " --configuration Build configuration: 'Debug' or 'Release' (short: -c)"
+ echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
+ echo " --binaryLog Create MSBuild binary log (short: -bl)"
+ echo ""
+ echo "Actions:"
+ echo " --restore Restore projects required to build (short: -r)"
+ echo " --build Build all projects (short: -b)"
+ echo " --rebuild Rebuild all projects"
+ echo " --pack Build nuget packages"
+ echo " --publish Publish build artifacts"
+ echo " --help Print help and exit"
+ echo ""
+ echo "Test actions:"
+ echo " --testcoreclr Run unit tests on .NET Core (short: --test, -t)"
+ echo ""
+ echo "Advanced settings:"
+ echo " --ci Building in CI"
+ echo " --docker Run in a docker container if applicable"
+ echo " --skipAnalyzers Do not run analyzers during build operations"
+ echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
+ echo ""
+ echo "Command line arguments starting with '/p:' are passed through to MSBuild."
+}
+
+source="${BASH_SOURCE[0]}"
+
+# resolve $source until the file is no longer a symlink
+while [[ -h "$source" ]]; do
+ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+ source="$(readlink "$source")"
+ # if $source was a relative symlink, we need to resolve it relative to the path where the
+ # symlink file was located
+ [[ $source != /* ]] && source="$scriptroot/$source"
+done
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+
+restore=false
+build=false
+rebuild=false
+pack=false
+publish=false
+test_core_clr=false
+
+configuration="Debug"
+verbosity='minimal'
+binary_log=false
+ci=false
+skip_analyzers=false
+prepare_machine=false
+properties=""
+
+docker=false
+args=""
+
+if [[ $# = 0 ]]
+then
+ usage
+ exit 1
+fi
+
+while [[ $# > 0 ]]; do
+ opt="$(echo "$1" | awk '{print tolower($0)}')"
+ case "$opt" in
+ --help|-h)
+ usage
+ exit 0
+ ;;
+ --configuration|-c)
+ configuration=$2
+ args="$args $1"
+ shift
+ ;;
+ --verbosity|-v)
+ verbosity=$2
+ args="$args $1"
+ shift
+ ;;
+ --binarylog|-bl)
+ binary_log=true
+ ;;
+ --restore|-r)
+ restore=true
+ ;;
+ --build|-b)
+ build=true
+ ;;
+ --rebuild)
+ rebuild=true
+ ;;
+ --pack)
+ pack=true
+ ;;
+ --publish)
+ publish=true
+ ;;
+ --testcoreclr|--test|-t)
+ test_core_clr=true
+ ;;
+ --ci)
+ ci=true
+ ;;
+ --skipanalyzers)
+ skip_analyzers=true
+ ;;
+ --preparemachine)
+ prepare_machine=true
+ ;;
+ --docker)
+ docker=true
+ shift
+ continue
+ ;;
+ /p:*)
+ properties="$properties $1"
+ ;;
+ *)
+ echo "Invalid argument: $1"
+ usage
+ exit 1
+ ;;
+ esac
+ args="$args $1"
+ shift
+done
+
+# Import Arcade functions
+. "$scriptroot/common/tools.sh"
+
+function TestUsingNUnit() {
+ testproject=""
+ targetframework=""
+ while [[ $# > 0 ]]; do
+ opt="$(echo "$1" | awk '{print tolower($0)}')"
+ case "$opt" in
+ --testproject)
+ testproject=$2
+ shift
+ ;;
+ --targetframework)
+ targetframework=$2
+ shift
+ ;;
+ *)
+ echo "Invalid argument: $1"
+ exit 1
+ ;;
+ esac
+ shift
+ done
+
+ if [[ "$testproject" == "" || "$targetframework" == "" ]]; then
+ echo "--testproject and --targetframework must be specified"
+ exit 1
+ fi
+
+ projectname=$(basename -- "$testproject")
+ projectname="${projectname%.*}"
+ testlogpath="$artifacts_dir/TestResults/$configuration/${projectname}_$targetframework.xml"
+ args="test \"$testproject\" --no-restore --no-build -c $configuration -f $targetframework --test-adapter-path . --logger \"nunit;LogFilePath=$testlogpath\""
+ "$DOTNET_INSTALL_DIR/dotnet" $args
+}
+
+function BuildSolution {
+ local solution="FSharp.sln"
+ echo "$solution:"
+
+ InitializeToolset
+ local toolset_build_proj=$_InitializeToolset
+
+ local bl=""
+ if [[ "$binary_log" = true ]]; then
+ bl="/bl:\"$log_dir/Build.binlog\""
+ fi
+
+ local projects="$repo_root/$solution"
+
+ # https://github.com/dotnet/roslyn/issues/23736
+ local enable_analyzers=!$skip_analyzers
+ UNAME="$(uname)"
+ if [[ "$UNAME" == "Darwin" ]]; then
+ enable_analyzers=false
+ fi
+
+ # NuGet often exceeds the limit of open files on Mac and Linux
+ # https://github.com/NuGet/Home/issues/2163
+ if [[ "$UNAME" == "Darwin" || "$UNAME" == "Linux" ]]; then
+ ulimit -n 6500
+ fi
+
+ local quiet_restore=""
+ if [[ "$ci" != true ]]; then
+ quiet_restore=true
+ fi
+
+ # build bootstrap tools
+ bootstrap_config=Proto
+ MSBuild "$repo_root/src/buildtools/buildtools.proj" \
+ /restore \
+ /p:Configuration=$bootstrap_config \
+ /t:Build
+
+ bootstrap_dir=$artifacts_dir/Bootstrap
+ mkdir -p "$bootstrap_dir"
+ cp $artifacts_dir/bin/fslex/$bootstrap_config/netcoreapp2.0/* $bootstrap_dir
+ cp $artifacts_dir/bin/fsyacc/$bootstrap_config/netcoreapp2.0/* $bootstrap_dir
+
+ # do real build
+ MSBuild $toolset_build_proj \
+ $bl \
+ /p:Configuration=$configuration \
+ /p:Projects="$projects" \
+ /p:RepoRoot="$repo_root" \
+ /p:Restore=$restore \
+ /p:Build=$build \
+ /p:Rebuild=$rebuild \
+ /p:Pack=$pack \
+ /p:Publish=$publish \
+ /p:UseRoslynAnalyzers=$enable_analyzers \
+ /p:ContinuousIntegrationBuild=$ci \
+ /p:QuietRestore=$quiet_restore \
+ /p:QuietRestoreBinaryLog="$binary_log" \
+ $properties
+}
+
+InitializeDotNetCli $restore
+
+BuildSolution
+
+if [[ "$test_core_clr" == true ]]; then
+ TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj" --targetframework netcoreapp2.0
+ TestUsingNUnit --testproject "$repo_root/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj" --targetframework netcoreapp2.0
+ TestUsingNUnit --testproject "$repo_root/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj" --targetframework netcoreapp2.0
+fi
+
+ExitWithExitCode 0
diff --git a/eng/cibuild.sh b/eng/cibuild.sh
new file mode 100755
index 0000000000000000000000000000000000000000..290f7ebaa583a891956ac3b813564ccb945ea780
--- /dev/null
+++ b/eng/cibuild.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+source="${BASH_SOURCE[0]}"
+
+# resolve $SOURCE until the file is no longer a symlink
+while [[ -h $source ]]; do
+ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+ source="$(readlink "$source")"
+
+ # if $source was a relative symlink, we need to resolve it relative to the path where
+ # the symlink file was located
+ [[ $source != /* ]] && source="$scriptroot/$source"
+done
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd)"
+
+echo "Building this commit:"
+git show --no-patch --pretty=raw HEAD
+
+. "$scriptroot/build.sh" --ci --restore --build --pack --publish --binaryLog "$@"
diff --git a/eng/common/PublishBuildAssets.cmd b/eng/common/PublishBuildAssets.cmd
deleted file mode 100644
index 3c6e4ff829d57b395b706e75b381d7dc68255bd9..0000000000000000000000000000000000000000
--- a/eng/common/PublishBuildAssets.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0sdk-task.ps1""" -msbuildEngine dotnet -restore -projects PublishBuildAssets.proj -ci %*"
-exit /b %ErrorLevel%
diff --git a/eng/common/PublishToPackageFeed.proj b/eng/common/PublishToPackageFeed.proj
index 7dc478d981f694d7777e540b332a9e533cf0fff3..25362ff060c11b97a4085f4621ab1a13268aeb23 100644
--- a/eng/common/PublishToPackageFeed.proj
+++ b/eng/common/PublishToPackageFeed.proj
@@ -10,25 +10,57 @@
netcoreapp2.1
-
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
+ https://dotnetfeed.blob.core.windows.net/arcade-validation/index.json
+
+
+
+
+ AssetManifestPath="%(ManifestFiles.Identity)"
+ BlobAssetsBasePath="$(BlobBasePath)"
+ PackageAssetsBasePath="$(PackageBasePath)" />
diff --git a/eng/common/build.ps1 b/eng/common/build.ps1
index 8279dc713391bedb20b6ec8e68d071aa4bca6649..d0147db4bd52a5a31ad7844d0200185ddd448214 100644
--- a/eng/common/build.ps1
+++ b/eng/common/build.ps1
@@ -11,7 +11,7 @@ Param(
[switch][Alias('b')]$build,
[switch] $rebuild,
[switch] $deploy,
- [switch] $test,
+ [switch][Alias('t')]$test,
[switch] $integrationTest,
[switch] $performanceTest,
[switch] $sign,
@@ -40,10 +40,10 @@ function Print-Usage() {
Write-Host " -rebuild Rebuild solution"
Write-Host " -deploy Deploy built VSIXes"
Write-Host " -deployDeps Deploy dependencies (e.g. VSIXes for integration tests)"
- Write-Host " -test Run all unit tests in the solution"
- Write-Host " -pack Package build outputs into NuGet packages and Willow components"
+ Write-Host " -test Run all unit tests in the solution (short: -t)"
Write-Host " -integrationTest Run all integration tests in the solution"
Write-Host " -performanceTest Run all performance tests in the solution"
+ Write-Host " -pack Package build outputs into NuGet packages and Willow components"
Write-Host " -sign Sign build outputs"
Write-Host " -publish Publish artifacts (e.g. symbols)"
Write-Host ""
@@ -51,9 +51,11 @@ function Print-Usage() {
Write-Host "Advanced settings:"
Write-Host " -projects Semi-colon delimited list of sln/proj's to build. Globbing is supported (*.sln)"
Write-Host " -ci Set when running on CI server"
- Write-Host " -prepareMachine Prepare machine for CI run"
+ Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
+ Write-Host " -warnAsError Sets warnaserror msbuild parameter ('true' or 'false')"
Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
Write-Host ""
+
Write-Host "Command line arguments not listed above are passed thru to msbuild."
Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
}
@@ -99,12 +101,11 @@ function Build {
/p:PerformanceTest=$performanceTest `
/p:Sign=$sign `
/p:Publish=$publish `
- /p:ContinuousIntegrationBuild=$ci `
@properties
}
try {
- if ($help -or (($properties -ne $null) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
+ if ($help -or (($null -ne $properties) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
Print-Usage
exit 0
}
diff --git a/eng/common/build.sh b/eng/common/build.sh
old mode 100755
new mode 100644
index 4fe8b41ed706fee501774aed98918b9eb64ec5eb..40b1e8ec73e397178e200038d7815ac453695014
--- a/eng/common/build.sh
+++ b/eng/common/build.sh
@@ -10,20 +10,24 @@ set -e
usage()
{
echo "Common settings:"
- echo " --configuration Build configuration: 'Debug' or 'Release' (short: --c)"
+ echo " --configuration Build configuration: 'Debug' or 'Release' (short: -c)"
echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
echo " --binaryLog Create MSBuild binary log (short: -bl)"
+ echo " --help Print help and exit (short: -h)"
echo ""
+
echo "Actions:"
echo " --restore Restore dependencies (short: -r)"
- echo " --build Build all projects (short: -b)"
- echo " --rebuild Rebuild all projects"
- echo " --test Run all unit tests (short: -t)"
+ echo " --build Build solution (short: -b)"
+ echo " --rebuild Rebuild solution"
+ echo " --test Run all unit tests in the solution (short: -t)"
+ echo " --integrationTest Run all integration tests in the solution"
+ echo " --performanceTest Run all performance tests in the solution"
+ echo " --pack Package build outputs into NuGet packages and Willow components"
echo " --sign Sign build outputs"
echo " --publish Publish artifacts (e.g. symbols)"
- echo " --pack Package build outputs into NuGet packages and Willow components"
- echo " --help Print help and exit (short: -h)"
echo ""
+
echo "Advanced settings:"
echo " --projects Project or solution file(s) to build"
echo " --ci Set when running on CI server"
@@ -32,6 +36,7 @@ usage()
echo " --warnAsError Sets warnaserror msbuild parameter ('true' or 'false')"
echo ""
echo "Command line arguments starting with '/p:' are passed through to MSBuild."
+ echo "Arguments can also be passed in with a single hyphen."
}
source="${BASH_SOURCE[0]}"
@@ -50,10 +55,10 @@ restore=false
build=false
rebuild=false
test=false
-pack=false
-publish=false
integration_test=false
performance_test=false
+pack=false
+publish=false
sign=false
public=false
ci=false
@@ -66,78 +71,82 @@ projects=''
configuration='Debug'
prepare_machine=false
verbosity='minimal'
+
properties=''
while [[ $# > 0 ]]; do
- opt="$(echo "$1" | awk '{print tolower($0)}')"
+ opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')"
case "$opt" in
- --help|-h)
+ -help|-h)
usage
exit 0
;;
- --configuration|-c)
+ -configuration|-c)
configuration=$2
shift
;;
- --verbosity|-v)
+ -verbosity|-v)
verbosity=$2
shift
;;
- --binarylog|-bl)
+ -binarylog|-bl)
binary_log=true
;;
- --restore|-r)
+ -restore|-r)
restore=true
;;
- --build|-b)
+ -build|-b)
build=true
;;
- --rebuild)
+ -rebuild)
rebuild=true
;;
- --pack)
+ -pack)
pack=true
;;
- --test|-t)
+ -test|-t)
test=true
;;
- --integrationtest)
+ -integrationtest)
integration_test=true
;;
- --performancetest)
+ -performancetest)
performance_test=true
;;
- --sign)
+ -sign)
sign=true
;;
- --publish)
+ -publish)
publish=true
;;
- --preparemachine)
+ -preparemachine)
prepare_machine=true
;;
- --projects)
+ -projects)
projects=$2
shift
;;
- --ci)
+ -ci)
ci=true
;;
- --warnaserror)
+ -warnaserror)
warn_as_error=$2
shift
;;
- --nodereuse)
+ -nodereuse)
node_reuse=$2
shift
;;
- /p:*)
+ -p:*|/p:*)
+ properties="$properties $1"
+ ;;
+ -m:*|/m:*)
properties="$properties $1"
;;
- /m:*)
+ -bl:*|/bl:*)
properties="$properties $1"
;;
- /bl:*)
+ -dl:*|/dl:*)
properties="$properties $1"
;;
*)
@@ -191,7 +200,6 @@ function Build {
/p:PerformanceTest=$performance_test \
/p:Sign=$sign \
/p:Publish=$publish \
- /p:ContinuousIntegrationBuild=$ci \
$properties
ExitWithExitCode 0
diff --git a/eng/common/cibuild.sh b/eng/common/cibuild.sh
old mode 100755
new mode 100644
diff --git a/eng/common/cross/armel/tizen-build-rootfs.sh b/eng/common/cross/armel/tizen-build-rootfs.sh
old mode 100755
new mode 100644
diff --git a/eng/common/cross/armel/tizen-fetch.sh b/eng/common/cross/armel/tizen-fetch.sh
old mode 100755
new mode 100644
diff --git a/eng/common/cross/build-android-rootfs.sh b/eng/common/cross/build-android-rootfs.sh
old mode 100755
new mode 100644
diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh
old mode 100755
new mode 100644
diff --git a/eng/common/darc-init.ps1 b/eng/common/darc-init.ps1
index 96cad844ba3b07791eef59f90c734bac13f49ea5..2467ebdd4225a7cdcaa1aa864d192e1ab373fcfe 100644
--- a/eng/common/darc-init.ps1
+++ b/eng/common/darc-init.ps1
@@ -19,7 +19,7 @@ function InstallDarcCli ($darcVersion) {
# Until we can anonymously query the BAR API for the latest arcade-services
# build applied to the PROD channel, this is hardcoded.
if (-not $darcVersion) {
- $darcVersion = '1.1.0-beta.19057.9'
+ $darcVersion = '1.1.0-beta.19151.3'
}
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json'
diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh
old mode 100755
new mode 100644
index bad07c3ae618855db19f7e400033b80e6b9c750b..8d63dd711b2a828b5710ba8e1e3fb70623ad4bf3
--- a/eng/common/darc-init.sh
+++ b/eng/common/darc-init.sh
@@ -1,6 +1,24 @@
#!/usr/bin/env bash
source="${BASH_SOURCE[0]}"
+darcVersion="1.1.0-beta.19151.3"
+
+while [[ $# > 0 ]]; do
+ opt="$(echo "$1" | awk '{print tolower($0)}')"
+ case "$opt" in
+ --darcversion)
+ darcVersion=$2
+ shift
+ ;;
+ *)
+ echo "Invalid argument: $1"
+ usage
+ exit 1
+ ;;
+ esac
+
+ shift
+done
# resolve $source until the file is no longer a symlink
while [[ -h "$source" ]]; do
@@ -27,12 +45,11 @@ function InstallDarcCli {
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
fi
- ReadGlobalVersion "Microsoft.DotNet.Arcade.Sdk"
- local toolset_version=$_ReadGlobalVersion
+ local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-arcade/index.json"
echo "Installing Darc CLI version $toolset_version..."
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
- echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $toolset_version -v $verbosity -g)
+ echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
}
InstallDarcCli
diff --git a/eng/common/generate-graph-files.ps1 b/eng/common/generate-graph-files.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..76f57076a3232af844e492c1a229390a22d66889
--- /dev/null
+++ b/eng/common/generate-graph-files.ps1
@@ -0,0 +1,87 @@
+Param(
+ [Parameter(Mandatory=$true)][string] $barToken, # Token generated at https://maestro-prod.westus2.cloudapp.azure.com/Account/Tokens
+ [Parameter(Mandatory=$true)][string] $gitHubPat, # GitHub personal access token from https://github.com/settings/tokens (no auth scopes needed)
+ [Parameter(Mandatory=$true)][string] $azdoPat, # Azure Dev Ops tokens from https://dev.azure.com/dnceng/_details/security/tokens (code read scope needed)
+ [Parameter(Mandatory=$true)][string] $outputFolder, # Where the graphviz.txt file will be created
+ [string] $darcVersion = '1.1.0-beta.19169.5', # darc's version
+ [string] $graphvizVersion = '2.38', # GraphViz version
+ [switch] $includeToolset # Whether the graph should include toolset dependencies or not. i.e. arcade, optimization. For more about
+ # toolset dependencies see https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#toolset-vs-product-dependencies
+)
+
+$ErrorActionPreference = "Stop"
+. $PSScriptRoot\tools.ps1
+
+Import-Module -Name (Join-Path $PSScriptRoot "native\CommonLibrary.psm1")
+
+function CheckExitCode ([string]$stage)
+{
+ $exitCode = $LASTEXITCODE
+ if ($exitCode -ne 0) {
+ Write-Host "Something failed in stage: '$stage'. Check for errors above. Exiting now..."
+ ExitWithExitCode $exitCode
+ }
+}
+
+try {
+ Push-Location $PSScriptRoot
+
+ Write-Host "Installing darc..."
+ . .\darc-init.ps1 -darcVersion $darcVersion
+ CheckExitCode "Running darc-init"
+
+ $engCommonBaseDir = Join-Path $PSScriptRoot "native\"
+ $graphvizInstallDir = CommonLibrary\Get-NativeInstallDirectory
+ $nativeToolBaseUri = "https://netcorenativeassets.blob.core.windows.net/resource-packages/external"
+ $installBin = Join-Path $graphvizInstallDir "bin"
+
+ Write-Host "Installing dot..."
+ .\native\install-tool.ps1 -ToolName graphviz -InstallPath $installBin -BaseUri $nativeToolBaseUri -CommonLibraryDirectory $engCommonBaseDir -Version $graphvizVersion -Verbose
+
+ $darcExe = "$env:USERPROFILE\.dotnet\tools"
+ $darcExe = Resolve-Path "$darcExe\darc.exe"
+
+ Create-Directory $outputFolder
+
+ # Generate 3 graph descriptions:
+ # 1. Flat with coherency information
+ # 2. Graphviz (dot) file
+ # 3. Standard dependency graph
+ $graphVizFilePath = "$outputFolder\graphviz.txt"
+ $graphVizImageFilePath = "$outputFolder\graph.png"
+ $normalGraphFilePath = "$outputFolder\graph-full.txt"
+ $flatGraphFilePath = "$outputFolder\graph-flat.txt"
+ $baseOptions = "get-dependency-graph --github-pat $gitHubPat --azdev-pat $azdoPat --password $barToken"
+
+ if ($includeToolset) {
+ Write-Host "Toolsets will be included in the graph..."
+ $baseOptions += " --include-toolset"
+ }
+
+ Write-Host "Generating standard dependency graph..."
+ Invoke-Expression "& `"$darcExe`" $baseOptions --output-file $normalGraphFilePath"
+ CheckExitCode "Generating normal dependency graph"
+
+ Write-Host "Generating flat dependency graph and graphviz file..."
+ Invoke-Expression "& `"$darcExe`" $baseOptions --flat --coherency --graphviz $graphVizFilePath --output-file $flatGraphFilePath"
+ CheckExitCode "Generating flat and graphviz dependency graph"
+
+ Write-Host "Generating graph image $graphVizFilePath"
+ $dotFilePath = Join-Path $installBin "graphviz\$graphvizVersion\release\bin\dot.exe"
+ Invoke-Expression "& `"$dotFilePath`" -Tpng -o'$graphVizImageFilePath' `"$graphVizFilePath`""
+ CheckExitCode "Generating graphviz image"
+
+ Write-Host "'$graphVizFilePath', '$flatGraphFilePath', '$normalGraphFilePath' and '$graphVizImageFilePath' created!"
+}
+catch {
+ if (!$includeToolset) {
+ Write-Host "This might be a toolset repo which includes only toolset dependencies. " -NoNewline -ForegroundColor Yellow
+ Write-Host "Since -includeToolset is not set there is no graph to create. Include -includeToolset and try again..." -ForegroundColor Yellow
+ }
+ Write-Host $_
+ Write-Host $_.Exception
+ Write-Host $_.ScriptStackTrace
+ ExitWithExitCode 1
+} finally {
+ Pop-Location
+}
\ No newline at end of file
diff --git a/eng/common/init-tools-native.ps1 b/eng/common/init-tools-native.ps1
index e25c60fed423bd513e8e8dbd907e5ac6a068d061..495a563a758391689ab4153ae9fa788f409cdde0 100644
--- a/eng/common/init-tools-native.ps1
+++ b/eng/common/init-tools-native.ps1
@@ -98,10 +98,20 @@ try {
Write-Verbose "Executing '$LocalInstallerCommand'"
Invoke-Expression "$LocalInstallerCommand"
if ($LASTEXITCODE -Ne "0") {
- Write-Error "Execution failed"
- exit 1
+ $errMsg = "$ToolName installation failed"
+ if ((Get-Variable 'DoNotAbortNativeToolsInstallationOnFailure' -ErrorAction 'SilentlyContinue') -and $DoNotAbortNativeToolsInstallationOnFailure) {
+ Write-Warning $errMsg
+ $toolInstallationFailure = $true
+ } else {
+ Write-Error $errMsg
+ exit 1
+ }
}
}
+
+ if ((Get-Variable 'toolInstallationFailure' -ErrorAction 'SilentlyContinue') -and $toolInstallationFailure) {
+ exit 1
+ }
}
else {
Write-Host "No native tools defined in global.json"
diff --git a/eng/common/init-tools-native.sh b/eng/common/init-tools-native.sh
old mode 100755
new mode 100644
diff --git a/eng/common/internal/Directory.Build.props b/eng/common/internal/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..e33179ef37344a904d608daf48f2165513b6d9a4
--- /dev/null
+++ b/eng/common/internal/Directory.Build.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/eng/common/internal/Tools.csproj b/eng/common/internal/Tools.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..1a81ff906f6ee880cd23981b38b1614ad076cfac
--- /dev/null
+++ b/eng/common/internal/Tools.csproj
@@ -0,0 +1,23 @@
+
+
+
+
+ net472
+ false
+
+
+
+
+
+
+
+
+
+ https://devdiv.pkgs.visualstudio.com/_packaging/8f470c7e-ac49-4afe-a6ee-cf784e438b93/nuget/v3/index.json;
+ https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json;
+
+
+
+
+
+
diff --git a/eng/common/msbuild.sh b/eng/common/msbuild.sh
old mode 100755
new mode 100644
diff --git a/eng/common/native/common-library.sh b/eng/common/native/common-library.sh
old mode 100755
new mode 100644
diff --git a/eng/common/native/install-cmake.sh b/eng/common/native/install-cmake.sh
old mode 100755
new mode 100644
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index 9ba7530122f6961d38a6f2adb02c14eef94214af..d0eec5163efe21259aa8a5ce20ab7f5ec6cb090a 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -1,48 +1,47 @@
[CmdletBinding(PositionalBinding=$false)]
Param(
- [string] $projects = "",
- [string][Alias('v')]$verbosity = "minimal",
+ [string] $configuration = "Debug",
+ [string] $task,
+ [string] $verbosity = "minimal",
[string] $msbuildEngine = $null,
- [bool] $warnAsError = $true,
- [switch][Alias('bl')]$binaryLog,
- [switch][Alias('r')]$restore,
- [switch] $ci,
+ [switch] $restore,
[switch] $prepareMachine,
[switch] $help,
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
)
+$ci = $true
+$binaryLog = $true
+$warnAsError = $true
+
. $PSScriptRoot\tools.ps1
function Print-Usage() {
- Write-Host "Common settings:"
- Write-Host " -v[erbosity] Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]"
- Write-Host " -[bl|binaryLog] Output binary log (short: -bl)"
- Write-Host " -help Print help and exit"
- Write-Host ""
+ Write-Host "Common settings:"
+ Write-Host " -task Name of Arcade task (name of a project in SdkTasks directory of the Arcade SDK package)"
+ Write-Host " -restore Restore dependencies"
+ Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]"
+ Write-Host " -help Print help and exit"
+ Write-Host ""
- Write-Host "Advanced settings:"
- Write-Host " -restore Restore dependencies (short: -r)"
- Write-Host " -projects Semi-colon delimited list of sln/proj's from the Arcade sdk to build. Globbing is supported (*.sln)"
- Write-Host " -ci Set when running on CI server"
- Write-Host " -prepareMachine Prepare machine for CI run"
- Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
- Write-Host ""
- Write-Host "Command line arguments not listed above are passed thru to msbuild."
- Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
+ Write-Host "Advanced settings:"
+ Write-Host " -prepareMachine Prepare machine for CI run"
+ Write-Host " -msbuildEngine Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
+ Write-Host ""
+ Write-Host "Command line arguments not listed above are passed thru to msbuild."
}
-function Build {
- $toolsetBuildProj = InitializeToolset
+function Build([string]$target) {
+ $logSuffix = if ($target -eq "Execute") { "" } else { ".$target" }
+ $log = Join-Path $LogDir "$task$logSuffix.binlog"
+ $outputPath = Join-Path $ToolsetDir "$task\\"
- $toolsetBuildProj = Join-Path (Split-Path $toolsetBuildProj -Parent) "SdkTasks\SdkTask.proj"
- $bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "SdkTask.binlog") } else { "" }
- MSBuild $toolsetBuildProj `
- $bl `
- /p:Projects=$projects `
- /p:Restore=$restore `
+ MSBuild $taskProject `
+ /bl:$log `
+ /t:$target `
+ /p:Configuration=$configuration `
/p:RepoRoot=$RepoRoot `
- /p:ContinuousIntegrationBuild=$ci `
+ /p:BaseIntermediateOutputPath=$outputPath `
@properties
}
@@ -52,17 +51,23 @@ try {
exit 0
}
- if ($projects -eq "") {
- Write-Error "Missing required parameter '-projects '"
+ if ($task -eq "") {
+ Write-Host "Missing required parameter '-task '" -ForegroundColor Red
Print-Usage
ExitWithExitCode 1
}
- if ($ci) {
- $binaryLog = $true
+ $taskProject = GetSdkTaskProject $task
+ if (!(Test-Path $taskProject)) {
+ Write-Host "Unknown task: $task" -ForegroundColor Red
+ ExitWithExitCode 1
+ }
+
+ if ($restore) {
+ Build "Restore"
}
- Build
+ Build "Execute"
}
catch {
Write-Host $_
diff --git a/eng/common/templates/job/generate-graph-files.yml b/eng/common/templates/job/generate-graph-files.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e54ce956f9088e28bd87ec6a90774e3a1b2e9b47
--- /dev/null
+++ b/eng/common/templates/job/generate-graph-files.yml
@@ -0,0 +1,48 @@
+parameters:
+ # Optional: dependencies of the job
+ dependsOn: ''
+
+ # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
+ pool: {}
+
+ # Optional: Include toolset dependencies in the generated graph files
+ includeToolset: false
+
+jobs:
+- job: Generate_Graph_Files
+
+ dependsOn: ${{ parameters.dependsOn }}
+
+ displayName: Generate Graph Files
+
+ pool: ${{ parameters.pool }}
+
+ variables:
+ # Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
+ # DotNet-AllOrgs-Darc-Pats provides: dn-bot-devdiv-dnceng-rw-code-pat
+ - group: Publish-Build-Assets
+ - group: DotNet-AllOrgs-Darc-Pats
+ - name: _GraphArguments
+ value: -gitHubPat $(BotAccount-dotnet-maestro-bot-PAT)
+ -azdoPat $(dn-bot-devdiv-dnceng-rw-code-pat)
+ -barToken $(MaestroAccessToken)
+ -outputFolder '$(Build.StagingDirectory)/GraphFiles/'
+ - ${{ if ne(parameters.includeToolset, 'false') }}:
+ - name: _GraphArguments
+ value: ${{ variables._GraphArguments }} -includeToolset
+
+ steps:
+ - task: PowerShell@2
+ displayName: Generate Graph Files
+ inputs:
+ filePath: eng\common\generate-graph-files.ps1
+ arguments: $(_GraphArguments)
+ continueOnError: true
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Graph to Artifacts
+ inputs:
+ PathtoPublish: '$(Build.StagingDirectory)/GraphFiles'
+ PublishLocation: Container
+ ArtifactName: GraphFiles
+ continueOnError: true
+ condition: always()
diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml
index 5e293db35d7efac7e08122defc489e8a16568b26..74dd81fdc0a356d50a913d7c1220cb1a832f96fc 100644
--- a/eng/common/templates/job/job.yml
+++ b/eng/common/templates/job/job.yml
@@ -41,18 +41,11 @@ parameters:
enablePublishTestResults: false
# Optional: enable sending telemetry
- # if 'true', these "variables" must be specified in the variables object or as part of the queue matrix
- # _HelixBuildConfig - differentiate between Debug, Release, other
- # _HelixType - Example: build/product/
- # _HelixSource - Example: official/dotnet/arcade/$(Build.SourceBranch)
enableTelemetry: false
- # Optional: If specified, then automatically derive "_HelixSource" variable for telemetry
+ # Optional: define the helix repo for telemeetry (example: 'dotnet/arcade')
helixRepo: ''
- # Optional: Define the type for helix telemetry (must end in '/')
- helixType: build/product/
-
# Required: name of the job
name: ''
@@ -115,29 +108,24 @@ jobs:
- name: ${{ pair.key }}
value: ${{ pair.value }}
- # Add additional variables
- - ${{ if and(ne(parameters.helixRepo, ''), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- - name: _HelixSource
- value: official/${{ parameters.helixRepo }}/$(Build.SourceBranch)
- - ${{ if and(ne(parameters.helixRepo, ''), or(ne(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest'))) }}:
- - name: _HelixSource
- value: pr/${{ parameters.helixRepo }}/$(Build.SourceBranch)
- - name: _HelixType
- value: ${{ parameters.helixType }}
- - name: _HelixBuildConfig
- value: $(_BuildConfig)
+ # DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds
+ - ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - group: DotNet-HelixApi-Access
${{ if ne(parameters.workspace, '') }}:
workspace: ${{ parameters.workspace }}
steps:
- ${{ if eq(parameters.enableTelemetry, 'true') }}:
- - template: /eng/common/templates/steps/telemetry-start.yml
- parameters:
- buildConfig: $(_HelixBuildConfig)
- helixSource: $(_HelixSource)
- helixType: $(_HelixType)
+ # Telemetry tasks are built from https://github.com/dotnet/arcade-extensions
+ - task: sendStartTelemetry@0
+ displayName: 'Send Helix Start Telemetry'
+ inputs:
+ helixRepo: ${{ parameters.helixRepo }}
+ buildConfig: $(_BuildConfig)
runAsPublic: ${{ parameters.runAsPublic }}
+ continueOnError: ${{ parameters.continueOnError }}
+ condition: always()
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
@@ -165,11 +153,15 @@ jobs:
TeamName: $(_TeamName)
- ${{ if eq(parameters.enableTelemetry, 'true') }}:
- - template: /eng/common/templates/steps/telemetry-end.yml
+ # Telemetry tasks are built from https://github.com/dotnet/arcade-extensions
+ - task: sendEndTelemetry@0
+ displayName: 'Send Helix End Telemetry'
+ continueOnError: ${{ parameters.continueOnError }}
+ condition: always()
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
- task: PublishBuildArtifacts@1
- displayName: Publish Logs to VSTS
+ displayName: Publish Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)'
PublishLocation: Container
@@ -187,7 +179,7 @@ jobs:
continueOnError: true
condition: always()
- - ${{ if and(eq(parameters.enablePublishBuildAssets, true), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(variables['_PublishUsingPipelines'], 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: CopyFiles@2
displayName: Gather Asset Manifests
inputs:
@@ -202,4 +194,4 @@ jobs:
PublishLocation: Container
ArtifactName: AssetManifests
continueOnError: ${{ parameters.continueOnError }}
- condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
\ No newline at end of file
+ condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml
index c094658fefc73d88fe793d47a88e16c6c40af206..620bd3c62e78a395585b15e04c2b232a5845fe05 100644
--- a/eng/common/templates/job/publish-build-assets.yml
+++ b/eng/common/templates/job/publish-build-assets.yml
@@ -20,6 +20,9 @@ parameters:
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
runAsPublic: false
+ # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
+ publishUsingPipelines: false
+
jobs:
- job: Asset_Registry_Publish
@@ -44,12 +47,16 @@ jobs:
downloadPath: '$(Build.StagingDirectory)/Download'
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- - script: eng\common\publishbuildassets.cmd
- /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
- /p:BuildAssetRegistryToken=$(MaestroAccessToken)
- /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
- /p:Configuration=$(_BuildConfig)
+ - task: PowerShell@2
displayName: Publish Build Assets
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
+ /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
+ /p:BuildAssetRegistryToken=$(MaestroAccessToken)
+ /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
+ /p:Configuration=$(_BuildConfig)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml
index c7226b12ed28516df17e61a0b18dccdec5668b60..6a2f98c036f61541af4ed2b7dd96c5211fa4c6e9 100644
--- a/eng/common/templates/jobs/jobs.yml
+++ b/eng/common/templates/jobs/jobs.yml
@@ -14,25 +14,28 @@ parameters:
# Optional: Enable publishing to the build asset registry
enablePublishBuildAssets: false
+ # Optional: Enable publishing using release pipelines
+ enablePublishUsingPipelines: false
+
+ graphFileGeneration:
+ # Optional: Enable generating the graph files at the end of the build
+ enabled: false
+ # Optional: Include toolset dependencies in the generated graph files
+ includeToolset: false
+
# Optional: Include PublishTestResults task
enablePublishTestResults: false
# Optional: enable sending telemetry
- # if 'true', these "variables" must be specified in the variables object or as part of the queue matrix
- # _HelixBuildConfig - differentiate between Debug, Release, other
- # _HelixType - Example: build/product/
- # _HelixSource - Example: official/dotnet/arcade/$(Build.SourceBranch)
+ # if enabled then the 'helixRepo' parameter should also be specified
enableTelemetry: false
# Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
jobs: []
- # Optional: If specified, then automatically derive "_HelixSource" variable for telemetry
+ # Optional: define the helix repo for telemetry (example: 'dotnet/arcade')
helixRepo: ''
- # Optional: Define the type for helix telemetry (must end in '/')
- helixType: build/product/
-
# Optional: Override automatically derived dependsOn value for "publish build assets" job
publishBuildAssetsDependsOn: ''
@@ -73,5 +76,15 @@ jobs:
pool:
vmImage: vs2017-win2016
runAsPublic: ${{ parameters.runAsPublic }}
+ publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
-
+
+- ${{ if and(eq(parameters.graphFileGeneration.enabled, true), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - template: ../job/generate-graph-files.yml
+ parameters:
+ continueOnError: ${{ parameters.continueOnError }}
+ includeToolset: ${{ parameters.graphFileGeneration.includeToolset }}
+ dependsOn:
+ - Asset_Registry_Publish
+ pool:
+ vmImage: vs2017-win2016
diff --git a/eng/common/templates/phases/publish-build-assets.yml b/eng/common/templates/phases/publish-build-assets.yml
index 0df6203b506fa06c291ae492f5325ae8fb32914a..211967debab51613e905a0f3f673e93ad1b7d359 100644
--- a/eng/common/templates/phases/publish-build-assets.yml
+++ b/eng/common/templates/phases/publish-build-assets.yml
@@ -28,12 +28,15 @@ phases:
SecretsFilter: 'MaestroAccessToken'
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- - script: eng\common\publishbuildassets.cmd
- -configuration $(_BuildConfig)
- /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
- /p:BuildAssetRegistryToken=$(MaestroAccessToken)
- /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ - task: PowerShell@2
displayName: Publish Build Assets
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
+ /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
+ /p:BuildAssetRegistryToken=$(MaestroAccessToken)
+ /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:Configuration=$(_BuildConfig)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- task: PublishBuildArtifacts@1
diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml
index a5835c0f4738026646352195be5e32d244f5a80f..0187597681e3e4d7eed85365a598f108a2168bda 100644
--- a/eng/common/templates/steps/send-to-helix.yml
+++ b/eng/common/templates/steps/send-to-helix.yml
@@ -1,32 +1,34 @@
parameters:
- HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/
- HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
- HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
- HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/api/2018-03-14/info/queues for a list of queues
- HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
- HelixPreCommands: '' # optional -- commands to run before Helix work item execution
- HelixPostCommands: '' # optional -- commands to run after Helix work item execution
- WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
- WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects
- WorkItemTimeout: '' # optional -- a timeout in seconds for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
- CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload
- XUnitProjects: '' # optional -- semicolon delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
- XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects
- XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner
- XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects
- IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion
- DotNetCliPackageType: '' # optional -- either 'sdk' or 'runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json
- DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json
- EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control
- WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
- IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
- Creator: '' # optional -- if the build is external, use this to specify who is sending the job
- condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
- continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false
+ HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/
+ HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
+ HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
+ HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
+ HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
+ HelixPreCommands: '' # optional -- commands to run before Helix work item execution
+ HelixPostCommands: '' # optional -- commands to run after Helix work item execution
+ WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
+ WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects
+ WorkItemTimeout: '' # optional -- a timeout in seconds for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
+ CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload
+ XUnitProjects: '' # optional -- semicolon delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
+ XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects
+ XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects
+ XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner
+ XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects
+ IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion
+ DotNetCliPackageType: '' # optional -- either 'sdk' or 'runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json
+ DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json
+ EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control
+ WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
+ IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
+ Creator: '' # optional -- if the build is external, use this to specify who is sending the job
+ DisplayNamePrefix: 'Send job to Helix' # optional -- rename the beginning of the displayName of the steps in AzDO
+ condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
+ continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false
steps:
- - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
- displayName: Send job to Helix (Windows)
+ - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
+ displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
env:
BuildConfig: $(_BuildConfig)
HelixSource: ${{ parameters.HelixSource }}
@@ -41,6 +43,7 @@ steps:
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
XUnitProjects: ${{ parameters.XUnitProjects }}
+ XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
@@ -50,10 +53,11 @@ steps:
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
Creator: ${{ parameters.Creator }}
+ SYSTEM_ACCESSTOKEN: $(System.AccessToken)
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
- - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
- displayName: Send job to Helix (Unix)
+ - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
+ displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
env:
BuildConfig: $(_BuildConfig)
HelixSource: ${{ parameters.HelixSource }}
@@ -68,6 +72,7 @@ steps:
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
XUnitProjects: ${{ parameters.XUnitProjects }}
+ XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
@@ -77,5 +82,6 @@ steps:
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
Creator: ${{ parameters.Creator }}
+ SYSTEM_ACCESSTOKEN: $(System.AccessToken)
condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
- continueOnError: ${{ parameters.continueOnError }}
+ continueOnError: ${{ parameters.continueOnError }}
\ No newline at end of file
diff --git a/eng/common/templates/steps/telemetry-end.yml b/eng/common/templates/steps/telemetry-end.yml
index 9b61481e7e194b3ca068f867c7477fe8de3858f7..fadc04ca1b9a3e7126c13d8ed252d8834fbe862f 100644
--- a/eng/common/templates/steps/telemetry-end.yml
+++ b/eng/common/templates/steps/telemetry-end.yml
@@ -1,3 +1,7 @@
+parameters:
+ maxRetries: 5
+ retryDelay: 10 # in seconds
+
steps:
- bash: |
if [ "$AGENT_JOBSTATUS" = "Succeeded" ] || [ "$AGENT_JOBSTATUS" = "PartiallySucceeded" ]; then
@@ -7,27 +11,41 @@ steps:
fi
warningCount=0
- # create a temporary file for curl output
- res=`mktemp`
-
- curlResult=`
- curl --verbose --output $res --write-out "%{http_code}"\
- -H 'Content-Type: application/json' \
- -H "X-Helix-Job-Token: $Helix_JobToken" \
- -H 'Content-Length: 0' \
- -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$Helix_WorkItemId/finish" \
- --data-urlencode "errorCount=$errorCount" \
- --data-urlencode "warningCount=$warningCount"`
- curlStatus=$?
-
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
+ curlStatus=1
+ retryCount=0
+ # retry loop to harden against spotty telemetry connections
+ # we don't retry successes and 4xx client errors
+ until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
+ do
+ if [ $retryCount -gt 0 ]; then
+ echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
+ sleep $RetryDelay
fi
- fi
+
+ # create a temporary file for curl output
+ res=`mktemp`
+
+ curlResult=`
+ curl --verbose --output $res --write-out "%{http_code}"\
+ -H 'Content-Type: application/json' \
+ -H "X-Helix-Job-Token: $Helix_JobToken" \
+ -H 'Content-Length: 0' \
+ -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$Helix_WorkItemId/finish" \
+ --data-urlencode "errorCount=$errorCount" \
+ --data-urlencode "warningCount=$warningCount"`
+ curlStatus=$?
+
+ if [ $curlStatus -eq 0 ]; then
+ if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
+ curlStatus=$curlResult
+ fi
+ fi
+
+ let retryCount++
+ done
if [ $curlStatus -ne 0 ]; then
- echo "Failed to Send Build Finish information"
+ echo "Failed to Send Build Finish information after $retryCount retries"
vstsLogOutput="vso[task.logissue type=error;sourcepath=templates/steps/telemetry-end.yml;code=1;]Failed to Send Build Finish information: $curlStatus"
echo "##$vstsLogOutput"
exit 1
@@ -37,6 +55,8 @@ steps:
# defined via VSTS variables in start-job.sh
Helix_JobToken: $(Helix_JobToken)
Helix_WorkItemId: $(Helix_WorkItemId)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
- powershell: |
if (($env:Agent_JobStatus -eq 'Succeeded') -or ($env:Agent_JobStatus -eq 'PartiallySucceeded')) {
@@ -46,13 +66,30 @@ steps:
}
$WarningCount = 0
- try {
- Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$env:Helix_WorkItemId/finish?errorCount=$ErrorCount&warningCount=$WarningCount" -Method Post -ContentType "application/json" -Body "" `
- -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
+ # Basic retry loop to harden against server flakiness
+ $retryCount = 0
+ while ($retryCount -lt $env:MaxRetries) {
+ try {
+ Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build/$env:Helix_WorkItemId/finish?errorCount=$ErrorCount&warningCount=$WarningCount" -Method Post -ContentType "application/json" -Body "" `
+ -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
+ break
+ }
+ catch {
+ $statusCode = $_.Exception.Response.StatusCode.value__
+ if ($statusCode -ge 400 -and $statusCode -le 499) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
+ Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
+ exit 1
+ }
+ Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
+ $retryCount++
+ sleep $env:RetryDelay
+ continue
+ }
}
- catch {
- Write-Error $_
- Write-Error $_.Exception
+
+ if ($retryCount -ge $env:MaxRetries) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
exit 1
}
displayName: Send Windows Build End Telemetry
@@ -60,4 +97,6 @@ steps:
# defined via VSTS variables in start-job.ps1
Helix_JobToken: $(Helix_JobToken)
Helix_WorkItemId: $(Helix_WorkItemId)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(),eq(variables['Agent.Os'], 'Windows_NT'))
diff --git a/eng/common/templates/steps/telemetry-start.yml b/eng/common/templates/steps/telemetry-start.yml
index 79c128c5de8709fec7b8490d33945e4ecc5ce9ab..32c01ef0b553b44f545db2740aaef0ab2f67350c 100644
--- a/eng/common/templates/steps/telemetry-start.yml
+++ b/eng/common/templates/steps/telemetry-start.yml
@@ -3,6 +3,8 @@ parameters:
helixType: 'undefined_defaulted_in_telemetry.yml'
buildConfig: ''
runAsPublic: false
+ maxRetries: 5
+ retryDelay: 10 # in seconds
steps:
- ${{ if and(eq(parameters.runAsPublic, 'false'), not(eq(variables['System.TeamProject'], 'public'))) }}:
@@ -30,7 +32,7 @@ steps:
}
}
JobListStuff
-
+
cat $jobInfo
# create a temporary file for curl output
@@ -38,30 +40,44 @@ steps:
accessTokenParameter="?access_token=$HelixApiAccessToken"
- curlResult=`
- cat $jobInfo |\
- curl --trace - --verbose --output $res --write-out "%{http_code}" \
- -H 'Content-Type: application/json' \
- -X POST "https://helix.dot.net/api/2018-03-14/telemetry/job$accessTokenParameter" -d @-`
- curlStatus=$?
+ curlStatus=1
+ retryCount=0
+ # retry loop to harden against spotty telemetry connections
+ # we don't retry successes and 4xx client errors
+ until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
+ do
+ if [ $retryCount -gt 0 ]; then
+ echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
+ sleep $RetryDelay
+ fi
+
+ curlResult=`
+ cat $jobInfo |\
+ curl --trace - --verbose --output $res --write-out "%{http_code}" \
+ -H 'Content-Type: application/json' \
+ -X POST "https://helix.dot.net/api/2018-03-14/telemetry/job$accessTokenParameter" -d @-`
+ curlStatus=$?
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
+ if [ $curlStatus -eq 0 ]; then
+ if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
+ curlStatus=$curlResult
+ fi
fi
- fi
+
+ let retryCount++
+ done
curlResult=`cat $res`
-
+
# validate status of curl command
if [ $curlStatus -ne 0 ]; then
- echo "Failed To Send Job Start information"
+ echo "Failed To Send Job Start information after $retryCount retries"
# We have to append the ## vso prefix or vso will pick up the command when it dumps the inline script into the shell
vstsLogOutput="vso[task.logissue type=error;sourcepath=telemetry/start-job.sh;code=1;]Failed to Send Job Start information: $curlStatus"
echo "##$vstsLogOutput"
exit 1
fi
-
+
# Set the Helix_JobToken variable
export Helix_JobToken=`echo $curlResult | xargs echo` # Strip Quotes
echo "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$Helix_JobToken"
@@ -75,29 +91,44 @@ steps:
Attempt: 1
OperatingSystem: $(Agent.Os)
Configuration: ${{ parameters.buildConfig }}
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
- bash: |
- res=`mktemp`
- curlResult=`
- curl --verbose --output $res --write-out "%{http_code}"\
- -H 'Content-Type: application/json' \
- -H "X-Helix-Job-Token: $Helix_JobToken" \
- -H 'Content-Length: 0' \
- -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build" \
- --data-urlencode "buildUri=$BuildUri"`
- curlStatus=$?
-
- if [ $curlStatus -eq 0 ]; then
- if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
- curlStatus=$curlResult
+ curlStatus=1
+ retryCount=0
+ # retry loop to harden against spotty telemetry connections
+ # we don't retry successes and 4xx client errors
+ until [[ $curlStatus -eq 0 || ( $curlStatus -ge 400 && $curlStatus -le 499 ) || $retryCount -ge $MaxRetries ]]
+ do
+ if [ $retryCount -gt 0 ]; then
+ echo "Failed to send telemetry to Helix; waiting $RetryDelay seconds before retrying..."
+ sleep $RetryDelay
fi
- fi
- curlResult=`cat $res`
+ res=`mktemp`
+ curlResult=`
+ curl --verbose --output $res --write-out "%{http_code}"\
+ -H 'Content-Type: application/json' \
+ -H "X-Helix-Job-Token: $Helix_JobToken" \
+ -H 'Content-Length: 0' \
+ -X POST -G "https://helix.dot.net/api/2018-03-14/telemetry/job/build" \
+ --data-urlencode "buildUri=$BuildUri"`
+ curlStatus=$?
+
+ if [ $curlStatus -eq 0 ]; then
+ if [ $curlResult -gt 299 ] || [ $curlResult -lt 200 ]; then
+ curlStatus=$curlResult
+ fi
+ fi
+
+ curlResult=`cat $res`
+ let retryCount++
+ done
# validate status of curl command
if [ $curlStatus -ne 0 ]; then
- echo "Failed to Send Build Start information"
+ echo "Failed to Send Build Start information after $retryCount retries"
vstsLogOutput="vso[task.logissue type=error;sourcepath=telemetry/build/start.sh;code=1;]Failed to Send Build Start information: $curlStatus"
echo "##$vstsLogOutput"
exit 1
@@ -109,8 +140,10 @@ steps:
env:
BuildUri: $(System.TaskDefinitionsUri)$(System.TeamProject)/_build/index?buildId=$(Build.BuildId)&_a=summary
Helix_JobToken: $(Helix_JobToken)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), ne(variables['Agent.Os'], 'Windows_NT'))
-
+
- powershell: |
$jobInfo = [pscustomobject]@{
QueueId=$env:QueueId;
@@ -120,17 +153,42 @@ steps:
Attempt=$env:Attempt;
Properties=[pscustomobject]@{ operatingSystem=$env:OperatingSystem; configuration=$env:Configuration };
}
-
+
$jobInfoJson = $jobInfo | ConvertTo-Json
if ($env:HelixApiAccessToken) {
$accessTokenParameter="?access_token=$($env:HelixApiAccessToken)"
}
Write-Host "Job Info: $jobInfoJson"
- $jobToken = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job$($accessTokenParameter)" -Method Post -ContentType "application/json" -Body $jobInfoJson
+
+ # Basic retry loop to harden against server flakiness
+ $retryCount = 0
+ while ($retryCount -lt $env:MaxRetries) {
+ try {
+ $jobToken = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job$($accessTokenParameter)" -Method Post -ContentType "application/json" -Body $jobInfoJson
+ break
+ }
+ catch {
+ $statusCode = $_.Exception.Response.StatusCode.value__
+ if ($statusCode -ge 400 -and $statusCode -le 499) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
+ Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
+ exit 1
+ }
+ Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
+ $retryCount++
+ sleep $env:RetryDelay
+ continue
+ }
+ }
+
+ if ($retryCount -ge $env:MaxRetries) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
+ exit 1
+ }
+
$env:Helix_JobToken = $jobToken
Write-Host "##vso[task.setvariable variable=Helix_JobToken;issecret=true;]$env:Helix_JobToken"
- displayName: Send Windows Job Start Telemetry
env:
HelixApiAccessToken: $(HelixApiAccessToken)
Source: ${{ parameters.helixSource }}
@@ -140,15 +198,44 @@ steps:
Attempt: 1
OperatingSystem: $(Agent.Os)
Configuration: ${{ parameters.buildConfig }}
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), eq(variables['Agent.Os'], 'Windows_NT'))
+ displayName: Send Windows Job Start Telemetry
- powershell: |
- $workItemId = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build?buildUri=$([Net.WebUtility]::UrlEncode($env:BuildUri))" -Method Post -ContentType "application/json" -Body "" `
- -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
-
+ # Basic retry loop to harden against server flakiness
+ $retryCount = 0
+ while ($retryCount -lt $env:MaxRetries) {
+ try {
+ $workItemId = Invoke-RestMethod -Uri "https://helix.dot.net/api/2018-03-14/telemetry/job/build?buildUri=$([Net.WebUtility]::UrlEncode($env:BuildUri))" -Method Post -ContentType "application/json" -Body "" `
+ -Headers @{ 'X-Helix-Job-Token'=$env:Helix_JobToken }
+ break
+ }
+ catch {
+ $statusCode = $_.Exception.Response.StatusCode.value__
+ if ($statusCode -ge 400 -and $statusCode -le 499) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix (status code $statusCode); not retrying (4xx client error)"
+ Write-Host "##vso[task.logissue]error ", $_.Exception.GetType().FullName, $_.Exception.Message
+ exit 1
+ }
+ Write-Host "Failed to send telemetry to Helix (status code $statusCode); waiting $env:RetryDelay seconds before retrying..."
+ $retryCount++
+ sleep $env:RetryDelay
+ continue
+ }
+ }
+
+ if ($retryCount -ge $env:MaxRetries) {
+ Write-Host "##vso[task.logissue]error Failed to send telemetry to Helix after $retryCount retries."
+ exit 1
+ }
+
$env:Helix_WorkItemId = $workItemId
Write-Host "##vso[task.setvariable variable=Helix_WorkItemId]$env:Helix_WorkItemId"
displayName: Send Windows Build Start Telemetry
env:
BuildUri: $(System.TaskDefinitionsUri)$(System.TeamProject)/_build/index?buildId=$(Build.BuildId)&_a=summary
Helix_JobToken: $(Helix_JobToken)
+ MaxRetries: ${{ parameters.maxRetries }}
+ RetryDelay: ${{ parameters.retryDelay }}
condition: and(always(), eq(variables['Agent.Os'], 'Windows_NT'))
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 4204dc14f892c01a599d4ea131176bfc0a00532e..de7523cae5815b59686f8d64318ba521a36c309a 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -161,9 +161,10 @@ function GetDotNetInstallScript([string] $dotnetRoot) {
return $installScript
}
-function InstallDotNetSdk([string] $dotnetRoot, [string] $version) {
+function InstallDotNetSdk([string] $dotnetRoot, [string] $version, [string] $architecture = "") {
$installScript = GetDotNetInstallScript $dotnetRoot
- & $installScript -Version $version -InstallDir $dotnetRoot
+ $archArg = if ($architecture) { $architecture } else { "" }
+ & $installScript -Version $version -InstallDir $dotnetRoot -Architecture $archArg
if ($lastExitCode -ne 0) {
Write-Host "Failed to install dotnet cli (exit code '$lastExitCode')." -ForegroundColor Red
ExitWithExitCode $lastExitCode
@@ -210,7 +211,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
$vsMajorVersion = $vsInfo.installationVersion.Split('.')[0]
InitializeVisualStudioEnvironmentVariables $vsInstallDir $vsMajorVersion
- } elseif ($install) {
+ } else {
if (Get-Member -InputObject $GlobalJson.tools -Name "xcopy-msbuild") {
$xcopyMSBuildVersion = $GlobalJson.tools.'xcopy-msbuild'
@@ -220,9 +221,10 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
$xcopyMSBuildVersion = "$vsMajorVersion.$($vsMinVersion.Minor).0-alpha"
}
- $vsInstallDir = InstallXCopyMSBuild $xcopyMSBuildVersion
- } else {
- throw "Unable to find Visual Studio that has required version and components installed"
+ $vsInstallDir = InitializeXCopyMSBuild $xcopyMSBuildVersion $install
+ if ($vsInstallDir -eq $null) {
+ throw "Unable to find Visual Studio that has required version and components installed"
+ }
}
$msbuildVersionDir = if ([int]$vsMajorVersion -lt 16) { "$vsMajorVersion.0" } else { "Current" }
@@ -240,12 +242,20 @@ function InitializeVisualStudioEnvironmentVariables([string] $vsInstallDir, [str
}
}
-function InstallXCopyMSBuild([string] $packageVersion) {
+function InstallXCopyMSBuild([string]$packageVersion) {
+ return InitializeXCopyMSBuild $packageVersion -install $true
+}
+
+function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install) {
$packageName = "RoslynTools.MSBuild"
$packageDir = Join-Path $ToolsDir "msbuild\$packageVersion"
$packagePath = Join-Path $packageDir "$packageName.$packageVersion.nupkg"
if (!(Test-Path $packageDir)) {
+ if (!$install) {
+ return $null
+ }
+
Create-Directory $packageDir
Write-Host "Downloading $packageName $packageVersion"
Invoke-WebRequest "https://dotnet.myget.org/F/roslyn-tools/api/v2/package/$packageName/$packageVersion/" -OutFile $packagePath
@@ -376,6 +386,11 @@ function GetNuGetPackageCachePath() {
return $env:NUGET_PACKAGES
}
+# Returns a full path to an Arcade SDK task project file.
+function GetSdkTaskProject([string]$taskName) {
+ return Join-Path (Split-Path (InitializeToolset) -Parent) "SdkTasks\$taskName.proj"
+}
+
function InitializeToolset() {
if (Test-Path variable:global:_ToolsetBuildProj) {
return $global:_ToolsetBuildProj
@@ -394,7 +409,7 @@ function InitializeToolset() {
}
if (-not $restore) {
- Write-Host "Toolset version $toolsetVersion has not been restored."
+ Write-Host "Toolset version $toolsetVersion has not been restored." -ForegroundColor Red
ExitWithExitCode 1
}
@@ -402,15 +417,15 @@ function InitializeToolset() {
$proj = Join-Path $ToolsetDir "restore.proj"
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "ToolsetRestore.binlog") } else { "" }
-
+
'' | Set-Content $proj
- MSBuild $proj $bl /t:__WriteToolsetLocation /noconsolelogger /p:__ToolsetLocationOutputFile=$toolsetLocationFile
-
+ MSBuild $proj $bl /t:__WriteToolsetLocation /clp:ErrorsOnly`;NoSummary /p:__ToolsetLocationOutputFile=$toolsetLocationFile
+
$path = Get-Content $toolsetLocationFile -TotalCount 1
if (!(Test-Path $path)) {
throw "Invalid toolset path: $path"
}
-
+
return $global:_ToolsetBuildProj = $path
}
@@ -446,7 +461,7 @@ function MSBuild() {
$buildTool = InitializeBuildTool
- $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse"
+ $cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci"
if ($warnAsError) {
$cmdArgs += " /warnaserror /p:TreatWarningsAsErrors=true"
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
old mode 100755
new mode 100644
index 8a253bef5131e7352eb8dba9692a43c7d6be377a..ecdece1f8552e18060bb17389784f46d23b534eb
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -153,7 +153,12 @@ function InstallDotNetSdk {
GetDotNetInstallScript "$root"
local install_script=$_GetDotNetInstallScript
- bash "$install_script" --version $version --install-dir "$root" || {
+ local arch_arg=""
+ if [[ $# == 3 ]]; then
+ arch_arg="--architecture $3"
+ fi
+
+ bash "$install_script" --version $version --install-dir "$root" $arch_arg || {
local exit_code=$?
echo "Failed to install dotnet SDK (exit code '$exit_code')." >&2
ExitWithExitCode $exit_code
@@ -233,11 +238,15 @@ function InitializeToolset {
ExitWithExitCode 2
fi
- local toolset_restore_log="$log_dir/ToolsetRestore.binlog"
local proj="$toolset_dir/restore.proj"
+ local bl=""
+ if [[ "$binary_log" == true ]]; then
+ bl="/bl:$log_dir/ToolsetRestore.binlog"
+ fi
+
echo '' > "$proj"
- MSBuild "$proj" /t:__WriteToolsetLocation /noconsolelogger /bl:"$toolset_restore_log" /p:__ToolsetLocationOutputFile="$toolset_location_file"
+ MSBuild "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file"
local toolset_build_proj=`cat "$toolset_location_file"`
@@ -284,7 +293,7 @@ function MSBuild {
warnaserror_switch="/warnaserror"
fi
- "$_InitializeBuildTool" "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error "$@" || {
+ "$_InitializeBuildTool" "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@" || {
local exit_code=$?
echo "Build failed (exit code '$exit_code')." >&2
ExitWithExitCode $exit_code
diff --git a/eng/targets/NuGet.targets b/eng/targets/NuGet.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c2db06b6c1af31cc1a5415af4f11d280a53560ec
--- /dev/null
+++ b/eng/targets/NuGet.targets
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/targets/Settings.props b/eng/targets/Settings.props
new file mode 100644
index 0000000000000000000000000000000000000000..0022b125e42ea0e3cc09edad3ed1245232b0442e
--- /dev/null
+++ b/eng/targets/Settings.props
@@ -0,0 +1,11 @@
+
+
+
+ MIT
+ Microsoft and F# Software Foundation
+ Visual F# Compiler FSharp functional programming
+ $(CopyrightMicrosoft)
+ $(ArtifactsBinDir)
+
+
+
diff --git a/fcs/Directory.Build.props b/fcs/Directory.Build.props
index 3478a48aa9a91e8921dd974103771fdbf52e9a44..3179fe221f960123d4b9b2a0cbb96a94190c98b7 100644
--- a/fcs/Directory.Build.props
+++ b/fcs/Directory.Build.props
@@ -1,4 +1,12 @@
+
+
+
+ $(RestoreSources);
+ https://api.nuget.org/v3/index.json;
+
+
+
$(UserProfile)\.nuget\packages\
$(HOME)/.nuget/packages/
diff --git a/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
index 9c3eb687c20b1b8b7fe3c125878c36f7dccdb365..edb85fcf64855a7d5b1b73a788b1dbf09956a367 100644
--- a/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
+++ b/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
@@ -82,6 +82,7 @@
+
diff --git a/fcs/build.fsx b/fcs/build.fsx
index 5a53371452427efbcb9d76bf25bbd4b3eb16f62e..50735795d881513b21df329384af1c75452b7d61 100644
--- a/fcs/build.fsx
+++ b/fcs/build.fsx
@@ -92,7 +92,9 @@ Target "BuildVersion" (fun _ ->
Target "Build" (fun _ ->
runDotnet __SOURCE_DIRECTORY__ "build ../src/buildtools/buildtools.proj -v n -c Proto"
- runDotnet __SOURCE_DIRECTORY__ "build FSharp.Compiler.Service.sln -v n -c release"
+ let fslexPath = __SOURCE_DIRECTORY__ + "/../artifacts/bin/fslex/Proto/netcoreapp2.0/fslex.dll"
+ let fsyaccPath = __SOURCE_DIRECTORY__ + "/../artifacts/bin/fsyacc/Proto/netcoreapp2.0/fsyacc.dll"
+ runDotnet __SOURCE_DIRECTORY__ (sprintf "build FSharp.Compiler.Service.sln -v n -c Release /p:FsLexPath=%s /p:FsYaccPath=%s" fslexPath fsyaccPath)
)
Target "Test" (fun _ ->
@@ -100,11 +102,12 @@ Target "Test" (fun _ ->
runDotnet __SOURCE_DIRECTORY__ "build ../tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Sample_NETCoreSDK_FSharp_Library_netstandard2_0.fsproj -v n /restore /p:DisableCompilerRedirection=true"
// Now run the tests
- runDotnet __SOURCE_DIRECTORY__ "test FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj --no-restore --no-build -v n -c release"
+ let logFilePath = Path.Combine(__SOURCE_DIRECTORY__, "..", "artifacts", "TestResults", "Release", "FSharp.Compiler.Service.Test.xml")
+ runDotnet __SOURCE_DIRECTORY__ (sprintf "test FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj --no-restore --no-build -v n -c Release --test-adapter-path . --logger \"nunit;LogFilePath=%s\"" logFilePath)
)
Target "NuGet" (fun _ ->
- runDotnet __SOURCE_DIRECTORY__ "pack FSharp.Compiler.Service.sln -v n -c release"
+ runDotnet __SOURCE_DIRECTORY__ "pack FSharp.Compiler.Service.sln -v n -c Release"
)
Target "GenerateDocsEn" (fun _ ->
diff --git a/fsharp.proj b/fsharp.proj
deleted file mode 100644
index a550b60eac02c5d88b28bf8e535daf0ec36aeda8..0000000000000000000000000000000000000000
--- a/fsharp.proj
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
- Debug
- AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
-
-
-
-
- true
- false
- false
- false
- false
-
- false
- false
- false
- false
- false
-
-
-
-
- true
- true
- true
- true
- true
- true
-
- true
- true
- true
- true
- true
- true
- true
- true
-
-
-
-
- true
- true
-
-
-
-
-
-
-
- TargetFramework=netstandard1.6
- TargetFramework=net45
-
-
- TargetFramework=netstandard2.0
- TargetFramework=net46
-
-
- TargetFramework=netstandard2.0
- TargetFramework=net46
-
-
- TargetFramework=net46
-
-
- TargetFramework=netstandard2.0
- TargetFramework=net46
-
-
- TargetFramework=netcoreapp2.1
- TargetFramework=net46
-
-
- TargetFramework=netcoreapp2.1
- TargetFramework=net46
-
-
- TargetFramework=net46
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_RunningRestore>true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/global.json b/global.json
index ac6900880b3320031acd733a6bcbd92f050c0b06..a6d9f0d3ca5c3a0033b3e0354c9ab835eebcfe9b 100644
--- a/global.json
+++ b/global.json
@@ -1,9 +1,16 @@
{
- "tools": {
- "dotnet": "2.1.500"
- },
- "msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19069.2",
- "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19069.2"
+ "tools": {
+ "dotnet": "2.1.504",
+ "vs": {
+ "version": "15.9",
+ "components": [
+ "Microsoft.Net.Core.Component.SDK.2.1",
+ "Microsoft.VisualStudio.Component.FSharp"
+ ]
}
+ },
+ "msbuild-sdks": {
+ "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19170.12",
+ "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19069.2"
+ }
}
diff --git a/packages.config b/packages.config
deleted file mode 100644
index 709d225851df33319e37f745e4b51a726485a00a..0000000000000000000000000000000000000000
--- a/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/proto.proj b/proto.proj
index 0974580af5ad4a27fbcde047872f1f319deab90c..c60f17d8426d0cbf9ffd8ee0f253fbbab76996ff 100644
--- a/proto.proj
+++ b/proto.proj
@@ -6,7 +6,6 @@
-
TargetFramework=net46
TargetFramework=netcoreapp2.1
diff --git a/restore.sh b/restore.sh
new file mode 100755
index 0000000000000000000000000000000000000000..58a2abb50f78d3473a48e54ee6d019e9cbceda66
--- /dev/null
+++ b/restore.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+source="${BASH_SOURCE[0]}"
+
+# resolve $SOURCE until the file is no longer a symlink
+while [[ -h $source ]]; do
+ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+ source="$(readlink "$source")"
+
+ # if $source was a relative symlink, we need to resolve it relative to the path where the
+ # symlink file was located
+ [[ $source != /* ]] && source="$scriptroot/$source"
+done
+
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+"$scriptroot/eng/build.sh" --restore $@
diff --git a/scripts/AssemblyVersionCheck.fsx b/scripts/AssemblyVersionCheck.fsx
new file mode 100644
index 0000000000000000000000000000000000000000..0f3816a2e6c4ec856f139b43d8c219e9e4b91317
--- /dev/null
+++ b/scripts/AssemblyVersionCheck.fsx
@@ -0,0 +1,69 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+open System
+open System.Diagnostics
+open System.IO
+open System.Reflection
+open System.Text.RegularExpressions
+
+module AssemblyVersionCheck =
+
+ let private versionZero = Version(0, 0, 0, 0)
+ let private versionOne = Version(1, 0, 0, 0)
+ let private commitHashPattern = new Regex(@"Commit Hash: ()|([0-9a-fA-F]{40})", RegexOptions.Compiled)
+ let private devVersionPattern = new Regex(@"-(ci|dev)", RegexOptions.Compiled)
+
+ let verifyAssemblyVersions (binariesPath:string) =
+ let excludedAssemblies =
+ [ "FSharp.Data.TypeProviders.dll" ]
+ |> Set.ofList
+ let fsharpAssemblies =
+ [ "FSharp*.dll"
+ "fsc.exe"
+ "fsc.dll"
+ "fsi*.exe"
+ "fsi*.dll" ]
+ |> List.map (fun p -> Directory.EnumerateFiles(binariesPath, p, SearchOption.AllDirectories))
+ |> Seq.concat
+ |> List.ofSeq
+ |> List.filter (fun p -> (Set.contains (Path.GetFileName(p)) excludedAssemblies) |> not)
+
+ // verify that all assemblies have a version number other than 0.0.0.0 or 1.0.0.0
+ let failedVersionCheck =
+ fsharpAssemblies
+ |> List.filter (fun a ->
+ let assemblyVersion = AssemblyName.GetAssemblyName(a).Version
+ assemblyVersion = versionZero || assemblyVersion = versionOne)
+ if failedVersionCheck.Length > 0 then
+ printfn "The following assemblies had a version of %A or %A" versionZero versionOne
+ printfn "%s\r\n" <| String.Join("\r\n", failedVersionCheck)
+ else
+ printfn "All shipping assemblies had an appropriate version number."
+
+ // verify that all assemblies have a commit hash
+ let failedCommitHash =
+ fsharpAssemblies
+ |> List.filter (fun a ->
+ let fileProductVersion = FileVersionInfo.GetVersionInfo(a).ProductVersion
+ not (commitHashPattern.IsMatch(fileProductVersion) || devVersionPattern.IsMatch(fileProductVersion)))
+ if failedCommitHash.Length > 0 then
+ printfn "The following assemblies don't have a commit hash set"
+ printfn "%s\r\n" <| String.Join("\r\n", failedCommitHash)
+ else
+ printfn "All shipping assemblies had an appropriate commit hash."
+
+ // return code is the number of failures
+ failedVersionCheck.Length + failedCommitHash.Length
+
+let main (argv:string array) =
+ if argv.Length <> 1 then
+ printfn "Usage: fsi.exe AssemblyVersionCheck.fsx -- path/to/binaries"
+ 1
+ else
+ AssemblyVersionCheck.verifyAssemblyVersions argv.[0]
+
+Environment.GetCommandLineArgs()
+|> Seq.skipWhile ((<>) "--")
+|> Seq.skip 1
+|> Array.ofSeq
+|> main
diff --git a/src/scripts/VerifyAllTranslations.fsx b/scripts/VerifyAllTranslations.fsx
similarity index 100%
rename from src/scripts/VerifyAllTranslations.fsx
rename to scripts/VerifyAllTranslations.fsx
diff --git a/init-tools.cmd b/scripts/init-tools.cmd
similarity index 91%
rename from init-tools.cmd
rename to scripts/init-tools.cmd
index cbdeb27afef9aa53baed9d5c972266d03f424233..3b17a835b9ef3fb1d141a18f59b7aa62b9944c45 100644
--- a/init-tools.cmd
+++ b/scripts/init-tools.cmd
@@ -1,8 +1,8 @@
@echo off
setlocal enabledelayedexpansion
-set /p DOTNET_TOOLS_VERSION=<"%~dp0DotnetCLIToolsVersion.txt"
-set DOTNET_TOOLS_PATH=%~dp0artifacts\toolset\dotnet
+set /p DOTNET_TOOLS_VERSION=<"%~dp0..\DotnetCLIToolsVersion.txt"
+set DOTNET_TOOLS_PATH=%~dp0..\artifacts\toolset\dotnet
set dotnetexe=%DOTNET_TOOLS_PATH%\dotnet.exe
set sdksentinel=%DOTNET_TOOLS_PATH%\sdk-version.txt
diff --git a/init-tools.sh b/scripts/init-tools.sh
old mode 100755
new mode 100644
similarity index 98%
rename from init-tools.sh
rename to scripts/init-tools.sh
index 9d5a2e2f8c6f8dea66959980f4c520a46c587f7c..67067dd4867aa3e78f5368e5e04d7de751b51bdc
--- a/init-tools.sh
+++ b/scripts/init-tools.sh
@@ -7,10 +7,10 @@ __TOOLRUNTIME_DIR=$__scriptpath/Tools
__DOTNET_PATH=$__TOOLRUNTIME_DIR/dotnetcli
__DOTNET_CMD=$__DOTNET_PATH/dotnet
-__DOTNET_VERSION=$(cat $__scriptpath/DotnetCLIVersion.txt)
+__DOTNET_VERSION=$(cat $__scriptpath/../DotnetCLIVersion.txt)
if [ -z "$__BUILDTOOLS_SOURCE" ]; then __BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json; fi
-__BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/BuildToolsVersion.txt)
+__BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/../BuildToolsVersion.txt)
__BUILD_TOOLS_PATH=$__PACKAGES_DIR/microsoft.dotnet.buildtools/$__BUILD_TOOLS_PACKAGE_VERSION/lib
diff --git a/scripts/verify-translations.cmd b/scripts/verify-translations.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..86094da755ec1cb9b34fe6e20a6e4e9bc290d2f3
--- /dev/null
+++ b/scripts/verify-translations.cmd
@@ -0,0 +1,3 @@
+@echo off
+
+%~dp0..\artifacts\bin\fsi\Release\net46\fsi.exe %~dp0VerifyAllTranslations.fsx -- %~dp0
diff --git a/setup/Directory.Build.props b/setup/Directory.Build.props
index bd233e7578510b16c571c6834d75d222c401b6fc..53933526bc476eb238a0063de1ef203fd17ac9f9 100644
--- a/setup/Directory.Build.props
+++ b/setup/Directory.Build.props
@@ -1,6 +1,6 @@
-
+
@@ -13,9 +13,6 @@
$(ArtifactsDir)\VSSetup.obj\$(Configuration)\$(MSBuildProjectName)
$(SetupRootFolder)..\artifacts\VSSetup\$(Configuration)
$(SetupRootFolder)..\artifacts\VSSetup\$(Configuration)\Insertion
-
-
- $(VSMajorVersion).$(VSMinorVersion).$(BUILD_BUILDNUMBER)
diff --git a/setup/Directory.Build.targets b/setup/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/setup/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/setup/Swix/Directory.Build.props b/setup/Swix/Directory.Build.props
index f64df1d29de52571b7b3d817d38690ad9987ce57..772bd04080ace2ef48119635c8283cf60a2fd0fb 100644
--- a/setup/Swix/Directory.Build.props
+++ b/setup/Swix/Directory.Build.props
@@ -1,9 +1,9 @@
+
-
- Debug
+ Microsoft.FSharp
neutral
false
vsix
diff --git a/setup/Swix/Directory.Build.targets b/setup/Swix/Directory.Build.targets
index 974c6da4f1b1a4761918f86ef30fc451775c59fa..ca0fe04d03aac6ef651309d3e751e073132ab0e7 100644
--- a/setup/Swix/Directory.Build.targets
+++ b/setup/Swix/Directory.Build.targets
@@ -1,10 +1,22 @@
+
+
$(ArtifactsDir)\VSSetup\$(Configuration)\Insertion\$(OutputName).vsix
-
-
+
+
+ false
+
+
+
+
+
+
+
+
+
diff --git a/setup/Swix/Microsoft.FSharp.Compiler.MSBuild/Microsoft.FSharp.Compiler.MSBuild.csproj b/setup/Swix/Microsoft.FSharp.Compiler.MSBuild/Microsoft.FSharp.Compiler.MSBuild.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..27625453ec9484d7f847b8de02097c7df172dcf6
--- /dev/null
+++ b/setup/Swix/Microsoft.FSharp.Compiler.MSBuild/Microsoft.FSharp.Compiler.MSBuild.csproj
@@ -0,0 +1,131 @@
+
+
+
+ net46
+ net462
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Line>
+
+
+
+
+ <_BuiltSwrLines Include="$(_Line)" />
+
+
+
+
+
+ <_SwrFilePath>$(IntermediateOutputPath)Microsoft.FSharp.Compiler.swr
+
+
+
+
+
+
+ <_Lines>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup/Swix/Microsoft.FSharp.Compiler.Resources/Empty.swr b/setup/Swix/Microsoft.FSharp.Compiler.Resources/Empty.swr
deleted file mode 100644
index 32da88c9291ad03690dd67144888c18e548b7d4e..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Compiler.Resources/Empty.swr
+++ /dev/null
@@ -1,5 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.Compiler.Resources
- version=$(FSharpPackageVersion)
- vs.package.language=$(LocaleSpecificCulture)
diff --git a/setup/Swix/Microsoft.FSharp.Compiler.Resources/Files.swr b/setup/Swix/Microsoft.FSharp.Compiler.Resources/Files.swr
deleted file mode 100644
index f3f60d490b963bd0801d2e5e8c2437d0783c7f99..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Compiler.Resources/Files.swr
+++ /dev/null
@@ -1,11 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.Compiler.Resources
- version=$(FSharpPackageVersion)
- vs.package.language=$(LocaleSpecificCulture)
-
-folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharpCompiler\$(LocaleParentCulture)"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.Build.resources.dll"
- file source="$(BinariesFolder)\FSharp.Compiler.Interactive.Settings\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.Compiler.Interactive.Settings.resources.dll"
- file source="$(BinariesFolder)\FSharp.Compiler.Private\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.Compiler.Private.resources.dll"
- file source="$(BinariesFolder)\FSharp.Core\$(Configuration)\net45\$(LocaleParentCulture)\FSharp.Core.resources.dll"
diff --git a/setup/Swix/Microsoft.FSharp.Compiler.Resources/Microsoft.FSharp.Compiler.Resources.swixproj b/setup/Swix/Microsoft.FSharp.Compiler.Resources/Microsoft.FSharp.Compiler.Resources.swixproj
deleted file mode 100644
index ac8e74d48544631596c5884630cdd572cdf5ec63..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Compiler.Resources/Microsoft.FSharp.Compiler.Resources.swixproj
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
- Microsoft.FSharp.Compiler.Resources.$(LocaleCode)
-
-
-
- $(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)
- $(PackagePreprocessorDefinitions);Configuration=$(Configuration)
- $(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)
- $(PackagePreprocessorDefinitions);LocaleParentCulture=$(LocaleParentCulture)
- $(PackagePreprocessorDefinitions);LocaleSpecificCulture=$(LocaleSpecificCulture)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/Swix/Microsoft.FSharp.Compiler/Dependencies.swr b/setup/Swix/Microsoft.FSharp.Compiler/Dependencies.swr
deleted file mode 100644
index c5dcc628603bcadefbc9e56a923d2f0d25469b80..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Compiler/Dependencies.swr
+++ /dev/null
@@ -1,9 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.Compiler
- version=$(FSharpPackageVersion)
-
-vs.dependencies
- vs.dependency id=Microsoft.FSharp.Dependencies
- version=$(FSharpPackageVersion)
- type=Required
diff --git a/setup/Swix/Microsoft.FSharp.Compiler/Files.swr b/setup/Swix/Microsoft.FSharp.Compiler/Files.swr
deleted file mode 100644
index b56667d2465c031f01495b2e3e77b20adc0a0699..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Compiler/Files.swr
+++ /dev/null
@@ -1,39 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.Compiler
- version=$(FSharpPackageVersion)
-
-folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharp"
-
- file source=$(BinariesFolder)\fsc\$(Configuration)\net46\fsc.exe vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2 vs.file.ngenApplication="[installDir]\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe"
- file source="$(BinariesFolder)\fsc\$(Configuration)\net46\fsc.exe.config"
-
- file source=$(BinariesFolder)\fsi\$(Configuration)\net46\fsi.exe vs.file.ngen=yes vs.file.ngenArchitecture=X86 vs.file.ngenPriority=2 vs.file.ngenApplication="[installDir]\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsi.exe"
- file source="$(BinariesFolder)\fsi\$(Configuration)\net46\fsi.exe.config"
-
- file source="$(BinariesFolder)\fsiAnyCpu\$(Configuration)\net46\fsiAnyCpu.exe" vs.file.ngen=yes vs.file.ngenArchitecture=X64 vs.file.ngenPriority=2 vs.file.ngenApplication="[installDir]\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsiAnyCpu.exe"
- file source="$(BinariesFolder)\fsiAnyCpu\$(Configuration)\net46\fsiAnyCpu.exe.config"
-
- file source="$(BinariesFolder)\FSharp.Compiler.Interactive.Settings\$(Configuration)\net46\FSharp.Compiler.Interactive.Settings.dll" vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2
- file source="$(BinariesFolder)\FSharp.Compiler.Private\$(Configuration)\net46\FSharp.Compiler.Private.dll" vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2
- file source="$(BinariesFolder)\FSharp.Compiler.Server.Shared\$(Configuration)\net46\FSharp.Compiler.Server.Shared.dll" vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2
-
- file source="$(BinariesFolder)\FSharp.Core\$(Configuration)\net45\FSharp.Core.dll" vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2
- file source="$(BinariesFolder)\FSharp.Core\$(Configuration)\net45\FSharp.Core.optdata"
- file source="$(BinariesFolder)\FSharp.Core\$(Configuration)\net45\FSharp.Core.sigdata"
-
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\FSharp.Build.dll" vs.file.ngen=yes vs.file.ngenArchitecture=All vs.file.ngenPriority=2
-
- file source="$(PackagesFolder)\Microsoft.VisualFSharp.Type.Providers.Redist\$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)\content\4.3.0.0\FSharp.Data.TypeProviders.dll"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.Build.dll"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.Build.Framework.dll"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.Build.Tasks.Core.dll"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.Build.Utilities.Core.dll"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.Portable.FSharp.Targets"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\System.Collections.Immutable.dll"
- file source="$(BinariesFolder)\FSharp.Compiler.Private\$(Configuration)\net46\System.Reflection.Metadata.dll"
- file source="$(BinariesFolder)\FSharp.Compiler.Private\$(Configuration)\net46\System.ValueTuple.dll"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.FSharp.NetSdk.props"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.FSharp.NetSdk.targets"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.FSharp.Overrides.NetSdk.targets"
- file source="$(BinariesFolder)\FSharp.Build\$(Configuration)\net46\Microsoft.FSharp.Targets"
diff --git a/setup/Swix/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.swixproj b/setup/Swix/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.swixproj
deleted file mode 100644
index f256dd46779d2a48c0259300c880b58d7aaef2ad..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.swixproj
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
- Microsoft.FSharp.Compiler
-
-
-
- $(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)
- $(PackagePreprocessorDefinitions);Configuration=$(Configuration)
- $(PackagePreprocessorDefinitions);PackagesFolder=$(NuGetPackageRoot)
- $(PackagePreprocessorDefinitions);FSharpTreeRoot=$(FSharpTreeRoot)
- $(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)
- $(PackagePreprocessorDefinitions);MicrosoftVisualFSharpTypeProvidersRedistPackageVersion=$(MicrosoftVisualFSharpTypeProvidersRedistPackageVersion)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/Swix/Microsoft.FSharp.Dependencies/Dependencies.swr b/setup/Swix/Microsoft.FSharp.Dependencies/Dependencies.swr
index 97fadaec5829e5ebd429e3bc6a8e9d7eeee99f8a..82f9caaec1f35b42f424b4de5a0bea16386e6d42 100644
--- a/setup/Swix/Microsoft.FSharp.Dependencies/Dependencies.swr
+++ b/setup/Swix/Microsoft.FSharp.Dependencies/Dependencies.swr
@@ -1,9 +1,9 @@
use vs
package name=Microsoft.FSharp.Dependencies
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
vs.dependencies
vs.dependency id=Microsoft.FSharp.SDK
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
type=Required
diff --git a/setup/Swix/Microsoft.FSharp.Dependencies/Files.swr b/setup/Swix/Microsoft.FSharp.Dependencies/Files.swr
index f927497e1934a299b6a9178072213c0c4a1358f8..9b2836fd19024d64be4537f5918688840537a8b6 100644
--- a/setup/Swix/Microsoft.FSharp.Dependencies/Files.swr
+++ b/setup/Swix/Microsoft.FSharp.Dependencies/Files.swr
@@ -1,7 +1,7 @@
use vs
package name=Microsoft.FSharp.Dependencies
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
folder "InstallDir:MSBuild\Microsoft\VisualStudio\v$(VSGeneralVersion)\FSharp"
file "Microsoft.FSharp.targets" source="$(SetupShimsDir)\Microsoft.FSharp.Shim.targets"
@@ -11,4 +11,4 @@ folder "InstallDir:MSBuild\Microsoft\VisualStudio\v$(VSGeneralVersion)\FSharp"
file "Microsoft.FSharp.NetSdk.props" source="$(SetupShimsDir)\Microsoft.FSharp.NetSdk.Shim.props"
folder "InstallDir:Common7\Tools\VsDevCmd\Ext"
- file source="fsharp.bat"
+ file source="$(ProjectDir)\fsharp.bat"
diff --git a/setup/Swix/Microsoft.FSharp.Dependencies/Microsoft.FSharp.Dependencies.csproj b/setup/Swix/Microsoft.FSharp.Dependencies/Microsoft.FSharp.Dependencies.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..657be2a1f483e4d3137495dafa6ad185fee115be
--- /dev/null
+++ b/setup/Swix/Microsoft.FSharp.Dependencies/Microsoft.FSharp.Dependencies.csproj
@@ -0,0 +1,19 @@
+
+
+
+ net46
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup/Swix/Microsoft.FSharp.Dependencies/Microsoft.FSharp.Dependencies.swixproj b/setup/Swix/Microsoft.FSharp.Dependencies/Microsoft.FSharp.Dependencies.swixproj
deleted file mode 100644
index e30eaaf0fe183ba8ad4502acfd61da53e844f8e4..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Dependencies/Microsoft.FSharp.Dependencies.swixproj
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
- Microsoft.FSharp.Dependencies
-
-
-
- $(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)
- $(PackagePreprocessorDefinitions);Configuration=$(Configuration)
- $(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)
- $(PackagePreprocessorDefinitions);SetupShimsDir=$(MSBuildThisFileDirectory)..\..\shims
- $(PackagePreprocessorDefinitions);TargetFramework=$(TargetFramework)
- $(PackagePreprocessorDefinitions);VSGeneralVersion=$(VSGeneralVersion)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/Swix/Microsoft.FSharp.IDE/Dependencies.swr b/setup/Swix/Microsoft.FSharp.IDE/Dependencies.swr
index 875b8af13f6e55e3c95b9a1af0434b6f973d2403..9ed63a9ff0c77dbce0785cbfb77c62feca30d4c3 100644
--- a/setup/Swix/Microsoft.FSharp.IDE/Dependencies.swr
+++ b/setup/Swix/Microsoft.FSharp.IDE/Dependencies.swr
@@ -1,19 +1,19 @@
use vs
package name=Microsoft.FSharp.IDE
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
vs.dependencies
vs.dependency id=Microsoft.FSharp.Dependencies
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
type=Required
vs.dependency id=Microsoft.FSharp.VSIX.Full.Core
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
type=Required
when=Microsoft.VisualStudio.Product.Enterprise,Microsoft.VisualStudio.Product.Professional,Microsoft.VisualStudio.Product.Community
vs.dependency id=Microsoft.FSharp.VSIX.Full.Resources
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
type=Required
when=Microsoft.VisualStudio.Product.Enterprise,Microsoft.VisualStudio.Product.Professional,Microsoft.VisualStudio.Product.Community
diff --git a/setup/Swix/Microsoft.FSharp.IDE/Files.swr b/setup/Swix/Microsoft.FSharp.IDE/Files.swr
index 2e0ee2bcf3b50151193791fc8edef61519421c4c..79257b1939506b915ca42da60c8416eb047da786 100644
--- a/setup/Swix/Microsoft.FSharp.IDE/Files.swr
+++ b/setup/Swix/Microsoft.FSharp.IDE/Files.swr
@@ -1,7 +1,7 @@
use vs
package name=Microsoft.FSharp.IDE
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
folder "InstallDir:Common7\IDE\NewScriptItems"
file source="$(SetupResourcesDir)\NewFileDialog\Script\NewFSharpScriptItems.vsdir"
diff --git a/setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.csproj b/setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..c86f94ec07a30664c71471d156708811b441d98d
--- /dev/null
+++ b/setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net46
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.swixproj b/setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.swixproj
deleted file mode 100644
index 223a7262fcbde0e459da4c9cdbd4c25351148e5f..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.IDE/Microsoft.FSharp.IDE.swixproj
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
- Microsoft.FSharp.IDE
-
-
-
- $(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)
- $(PackagePreprocessorDefinitions);SetupResourcesDir=$(MSBuildThisFileDirectory)..\..\resources
- $(PackagePreprocessorDefinitions);TargetFramework=$(TargetFramework)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/Swix/Microsoft.FSharp.SDK/Files.swr b/setup/Swix/Microsoft.FSharp.SDK/Files.swr
index cffd90ed3668972801370dffecaf1825ea5043ed..38ac95d4ec8a9e40eba655becbcd390aab8f6d03 100644
--- a/setup/Swix/Microsoft.FSharp.SDK/Files.swr
+++ b/setup/Swix/Microsoft.FSharp.SDK/Files.swr
@@ -1,7 +1,7 @@
use vs
package name=Microsoft.FSharp.SDK
- version=$(FSharpPackageVersion)
+ version=$(VsixVersion)
folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharpSdk"
diff --git a/setup/Swix/Microsoft.FSharp.SDK/Microsoft.FSharp.SDK.csproj b/setup/Swix/Microsoft.FSharp.SDK/Microsoft.FSharp.SDK.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..d736e5c5c5568617a1625737cfbd92ec5c6a2552
--- /dev/null
+++ b/setup/Swix/Microsoft.FSharp.SDK/Microsoft.FSharp.SDK.csproj
@@ -0,0 +1,23 @@
+
+
+
+ net46
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup/Swix/Microsoft.FSharp.SDK/Microsoft.FSharp.SDK.swixproj b/setup/Swix/Microsoft.FSharp.SDK/Microsoft.FSharp.SDK.swixproj
deleted file mode 100644
index aac26eaaa0dae46d1f1f655884cfdcade73b7f47..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.SDK/Microsoft.FSharp.SDK.swixproj
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
- Microsoft.FSharp.SDK
-
-
-
- $(PackagePreprocessorDefinitions);PackagesFolder=$(NuGetPackageRoot)
- $(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Empty.swr b/setup/Swix/Microsoft.FSharp.Vsix.Resources/Empty.swr
deleted file mode 100644
index dd1ca136daceea209021cdf2ce8bdee1ab24115e..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Empty.swr
+++ /dev/null
@@ -1,6 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.VSIX.Full.Resources
- version=$(FSharpPackageVersion)
- vs.package.language=$(LocaleSpecificCulture)
- vs.package.installSize=1
diff --git a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Files.swr b/setup/Swix/Microsoft.FSharp.Vsix.Resources/Files.swr
deleted file mode 100644
index f3b95d49900128a46a6682bbc3e541a7bb728edd..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Files.swr
+++ /dev/null
@@ -1,20 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.VSIX.Full.Resources
- version=$(FSharpPackageVersion)
- vs.package.language=$(LocaleSpecificCulture)
-
-folder "InstallDir:Common7\IDE\PublicAssemblies\$(LocaleParentCulture)"
- file source="$(BinariesFolder)\FSharp.Core\$(Configuration)\net45\$(LocaleParentCulture)\FSharp.Core.resources.dll" vs.file.ngen=yes
-
-folder "InstallDir:Common7\IDE\CommonExtensions\Microsoft\FSharp\$(LocaleParentCulture)"
- file source="$(BinariesFolder)\FSharp.Compiler.Private\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.Compiler.Private.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.Core\$(Configuration)\net45\$(LocaleParentCulture)\FSharp.Core.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.Editor\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.Editor.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.LanguageService.Base\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.LanguageService.Base.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.LanguageService\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.LanguageService.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\ProjectSystem.Base\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.ProjectSystem.Base.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\ProjectSystem\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.ProjectSystem.FSharp.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.PropertiesPages\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.ProjectSystem.PropertyPages.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.UIResources\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.UIResources.resources.dll" vs.file.ngen=yes
- file source="$(BinariesFolder)\FSharp.VS.FSI\$(Configuration)\net46\$(LocaleParentCulture)\FSharp.VS.FSI.resources.dll" vs.file.ngen=yes
diff --git a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Microsoft.FSharp.Vsix.Resources.swixproj b/setup/Swix/Microsoft.FSharp.Vsix.Resources/Microsoft.FSharp.Vsix.Resources.swixproj
deleted file mode 100644
index d8952b40fe719a2519425421ed84be677dad829a..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Microsoft.FSharp.Vsix.Resources.swixproj
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
- Microsoft.FSharp.VSIX.Full.Resources.$(LocaleCode)
-
-
-
- $(PackagePreprocessorDefinitions);Configuration=$(Configuration)
- $(PackagePreprocessorDefinitions);BinariesFolder=$(BinariesFolder)
- $(PackagePreprocessorDefinitions);FSharpPackageVersion=$(FSharpPackageVersion)
- $(PackagePreprocessorDefinitions);LocaleCode=$(LocaleCode)
- $(PackagePreprocessorDefinitions);LocaleId=$(LocaleId)
- $(PackagePreprocessorDefinitions);LocaleParentId=$(LocaleParentId)
- $(PackagePreprocessorDefinitions);LocaleParentCulture=$(LocaleParentCulture)
- $(PackagePreprocessorDefinitions);LocaleSpecificCulture=$(LocaleSpecificCulture)
- $(PackagePreprocessorDefinitions);IsLangPack=$(IsLangPack)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Templates.swr b/setup/Swix/Microsoft.FSharp.Vsix.Resources/Templates.swr
deleted file mode 100644
index 5de89f0cadddc8bfedb1ad8675e3301017a6b823..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.Vsix.Resources/Templates.swr
+++ /dev/null
@@ -1,13 +0,0 @@
-use vs
-
-package name=Microsoft.FSharp.VSIX.Full.Resources
- version=$(FSharpPackageVersion)
- vs.package.language=$(LocaleSpecificCulture)
-
-folder "InstallDir:Common7\IDE\ProjectTemplates\FSharp\$(LocaleId)"
- folder "ConsoleApplication"
- file source="$(BinariesFolder)\ConsoleProject\$(Configuration)\$(LocaleParentId)\ConsoleApplication.zip"
- folder "Library"
- file source="$(BinariesFolder)\LibraryProject\$(Configuration)\$(LocaleParentId)\Library.zip"
- folder "Tutorial"
- file source="$(BinariesFolder)\TutorialProject\$(Configuration)\$(LocaleParentId)\Tutorial.zip"
diff --git a/setup/Swix/Microsoft.FSharp.vsmanproj b/setup/Swix/Microsoft.FSharp.vsmanproj
deleted file mode 100644
index a09ca5442f5c3c862ff62814aa5c59c23f55dfcd..0000000000000000000000000000000000000000
--- a/setup/Swix/Microsoft.FSharp.vsmanproj
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
- true
- true
- $(ArtifactsDir)\VSSetup\$(Configuration)\Insertion
- $(OutputPath)
- $(FSharpPackageVersion)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/build-insertion.proj b/setup/build-insertion.proj
deleted file mode 100644
index b132d3edfeaded3d520b4dfc2dc070ac4e711d63..0000000000000000000000000000000000000000
--- a/setup/build-insertion.proj
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
- .
- Debug
-
-
-
-
-
- Swix\Microsoft.FSharp.SDK\Microsoft.FSharp.SDK.swixproj
-
-
- Swix\Microsoft.FSharp.Compiler\Microsoft.FSharp.Compiler.swixproj
-
-
-
-
-
-
-
-
-
-
- AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/setup/fsharp-setup-build.csproj b/setup/fsharp-setup-build.csproj
deleted file mode 100644
index 074879dc20efc8f6ed7b5aa10ae03b8abe551747..0000000000000000000000000000000000000000
--- a/setup/fsharp-setup-build.csproj
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
- net46
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Swix\Microsoft.FSharp.Dependencies\Microsoft.FSharp.Dependencies.swixproj
-
-
- Swix\Microsoft.FSharp.IDE\Microsoft.FSharp.IDE.swixproj
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
-
-
-
-
-
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
deleted file mode 100644
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..0000000000000000000000000000000000000000
--- a/src/Directory.Build.props
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/src/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/buildtools/buildtools.targets b/src/buildtools/buildtools.targets
index 9b00e18cf72d17843a9b2483d839c1b853e6fc96..303ab00825dd544355ae676a983eabb517438d24 100644
--- a/src/buildtools/buildtools.targets
+++ b/src/buildtools/buildtools.targets
@@ -1,10 +1,15 @@
- dotnet
- dotnet.exe
-
+
+ dotnet
+ dotnet.exe
+
+ $(DOTNET_HOST_PATH)
$(DotNetExe)
+
+
+ $(DotNetExePath)
@@ -15,14 +20,14 @@
BeforeTargets="CoreCompile">
- $(ArtifactsBinDir)\fslex\Proto\netcoreapp2.0\fslex.dll
+ $(ArtifactsDir)\Bootstrap\fslex.dll
-
+
@@ -38,14 +43,14 @@
BeforeTargets="CoreCompile">
- $(ArtifactsBinDir)\fsyacc\Proto\netcoreapp2.0\fsyacc.dll
+ $(ArtifactsDir)\Bootstrap\fsyacc.dll
-
+
diff --git a/src/fsharp/Directory.Nuget.props b/src/fsharp/Directory.Nuget.props
deleted file mode 100644
index 6521936cfe343adcea8b38222011fd58b342e3a0..0000000000000000000000000000000000000000
--- a/src/fsharp/Directory.Nuget.props
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- https://github.com/Microsoft/visualfsharp/blob/master/License.txt
- https://github.com/Microsoft/visualfsharp
- Microsoft and F# Software Foundation
- Microsoft and F# Software Foundation
- Visual F# Compiler FSharp functional programming
- (C) Microsoft Corporation. All rights reserved.
-
- $(GitHeadSha)
- [developer build]
-
-
- licenseUrl=$(PackageLicenceUrl);
- authors=$(PackageAuthors);
- owners=$(PackageOwners);
- projectUrl=$(PackageProjectUrl);
- copyright=$(PackageCopyright);
- tags=$(PackageTags);
- githeadsha=$(NormalizedGitHeadSha);
- configuration=$(Configuration);
- artifactsbindir=$(ArtifactsBinDir);
-
-
-
-
diff --git a/src/fsharp/Directory.Nuget.targets b/src/fsharp/Directory.Nuget.targets
deleted file mode 100644
index e30b155faadb20ab46bf1edbf3108c2453354365..0000000000000000000000000000000000000000
--- a/src/fsharp/Directory.Nuget.targets
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- $(NuspecProperties);
- packageId=$(PackageId);
- version=$(PackageVersion);
-
-
-
-
diff --git a/src/fsharp/FSharp.Build/Directory.Build.props b/src/fsharp/FSharp.Build/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/FSharp.Build/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Build/FSharp.Build.fsproj b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
index 162c6bf3d312c7dca587b57af113e73afcc48407..4bf0eb97289b4bb74f60fa19d35dd99147307f8a 100644
--- a/src/fsharp/FSharp.Build/FSharp.Build.fsproj
+++ b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
@@ -5,11 +5,11 @@
Library
net46;netstandard2.0
+ netstandard2.0
FSharp.Build
$(NoWarn);45;55;62;75;1204
true
$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1
- true
diff --git a/src/fsharp/FSharp.Compiler.Interactive.Settings/Directory.Build.props b/src/fsharp/FSharp.Compiler.Interactive.Settings/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index 06a4c43055f2dd3baef1210774b20698cbc0c866..3569093c47faab6959efc8b5489ee97f630bba7c 100644
--- a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@ -5,11 +5,11 @@
Library
net46;netstandard2.0
+ netstandard2.0
FSharp.Compiler.Interactive.Settings
$(NoWarn);45;55;62;75;1182;1204
true
$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1
- true
diff --git a/src/fsharp/FSharp.Compiler.Private/Directory.Build.props b/src/fsharp/FSharp.Compiler.Private/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/FSharp.Compiler.Private/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
index 7f4546da3a6ada0225de2e72dfc171fb722b8de7..ce3e578f7ae8af075b58d8e631e29fc1e8b00162 100644
--- a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
+++ b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
@@ -5,21 +5,27 @@
Library
net46;netstandard2.0
+ netstandard2.0
FSharp.Compiler.Private
$(NoWarn);45;55;62;75;1204
true
$(DefineConstants);COMPILER
$(DefineConstants);MSBUILD_AT_LEAST_15
$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1
- true
true
true
true
-
+
full
+ false
+
+
+
+
+ false
diff --git a/src/fsharp/FSharp.Compiler.Server.Shared/Directory.Build.props b/src/fsharp/FSharp.Compiler.Server.Shared/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/FSharp.Compiler.Server.Shared/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj b/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
index 4feaf0da4e1005dcd52284af4defdd24a05e9dce..2940172c7e6d42fd9fd48e6faa4c132786f0d2e7 100644
--- a/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
+++ b/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
@@ -4,8 +4,6 @@
net46
- FSharp.Compiler.Server.Shared
- true
diff --git a/src/fsharp/FSharp.Compiler.nuget/Directory.Build.props b/src/fsharp/FSharp.Compiler.nuget/Directory.Build.props
index 8093275dba0b30f2754aa5fd0a422f327281a310..7cd41381b5df865bd221aeb3799e59b35946c720 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Directory.Build.props
+++ b/src/fsharp/FSharp.Compiler.nuget/Directory.Build.props
@@ -1,11 +1,9 @@
-
-
-
-
+
- netcoreapp2.1
- Microsoft.FSharp.Compiler.nuspec
+ true
+
+
diff --git a/src/fsharp/FSharp.Compiler.nuget/Directory.Build.targets b/src/fsharp/FSharp.Compiler.nuget/Directory.Build.targets
deleted file mode 100644
index 2721c93a9067f3290ef3376b4049269d9636e959..0000000000000000000000000000000000000000
--- a/src/fsharp/FSharp.Compiler.nuget/Directory.Build.targets
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- -rtm-$(NuGetPackageVersionSuffix)
- $(FSPackageVersion)$(PreReleaseSuffix)
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.Prerelease.csproj b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.Prerelease.csproj
deleted file mode 100644
index 692e5aba1b2c0baa053b0f817c81ca21931f55dc..0000000000000000000000000000000000000000
--- a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.Prerelease.csproj
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Microsoft.FSharp.Compiler
- true
-
-
-
diff --git a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.csproj b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.csproj
index 692e5aba1b2c0baa053b0f817c81ca21931f55dc..d6306806993d8df5ecfccc3c0cb6629398e00dc8 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.csproj
+++ b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.csproj
@@ -1,8 +1,28 @@
-
+
- Microsoft.FSharp.Compiler
true
+ netcoreapp2.1
+ Microsoft.FSharp.Compiler.nuspec
+ true
+ .NET Core compatible version of the F# compiler fsc.exe.
+
+
+ TargetFramework=netcoreapp2.1
+
+
+ TargetFramework=netcoreapp2.1
+
+
+ TargetFramework=netstandard2.0
+
+
+ TargetFramework=netstandard2.0
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
index 1082f9b47b387c67a1cfd80bac914260693002bf..e73c9e2452b257d4deec02a83933a7ccf22eb571 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
+++ b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
@@ -1,19 +1,8 @@
- $packageId$
-
- .NET Core compatible version of the F# compiler fsc.exe.
- Supported Platforms: - .NET Core (.netstandard2.0).
- Commit hash: $githeadsha$.
-
+ $CommonMetadataElements$
en-US
- true
- $version$
- $authors$
- $licenseUrl$
- $projectUrl$
- $tags$
@@ -54,35 +43,35 @@
this approach gives a very small deployment. Which is kind of necessary.
-->
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
-
-
+
diff --git a/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.csproj b/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.csproj
deleted file mode 100644
index aaee9c7394244fca39b36b7f6f7051a086cec576..0000000000000000000000000000000000000000
--- a/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.csproj
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Testing.FSharp.Compiler
- true
-
-
-
diff --git a/src/fsharp/FSharp.Compiler.nuget/_._ b/src/fsharp/FSharp.Compiler.nuget/_._
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/fsharp/FSharp.Core/Directory.Build.props b/src/fsharp/FSharp.Core/Directory.Build.props
deleted file mode 100644
index cee6fa763d9f22f46d2844405a72951d9db8d96f..0000000000000000000000000000000000000000
--- a/src/fsharp/FSharp.Core/Directory.Build.props
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
- $(NuspecProperties);
- fsCoreMajorVersion=$(FSCoreMajorVersion);
- fsPackageMajorVersion=$(FSPackageMajorVersion);
-
-
-
-
diff --git a/src/fsharp/FSharp.Core/Directory.Build.targets b/src/fsharp/FSharp.Core/Directory.Build.targets
deleted file mode 100644
index 8bf68e8bc7bc911af5eb1c8c07670a8b1828a1c6..0000000000000000000000000000000000000000
--- a/src/fsharp/FSharp.Core/Directory.Build.targets
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/src/fsharp/FSharp.Core/FSharp.Core.fsproj b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
index 6ddda3f2e7e7c5cbc76603602b768b21fbd839d8..de0fca82aa60561f4a85d7957a25dc75612c57a5 100644
--- a/src/fsharp/FSharp.Core/FSharp.Core.fsproj
+++ b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
@@ -5,9 +5,9 @@
Library
net45;netstandard1.6
- FSharp.Core
- FSharp.Core
- $(FSCorePackageVersion)
+ netstandard1.6
+ true
+ FSharp.Core redistributables from Visual F# Tools version $(FSPackageMajorVersion) For F# $(FSCoreMajorVersion)
FSharp.Core.nuspec
$(NoWarn);45;55;62;75;1204
true
diff --git a/src/fsharp/FSharp.Core/FSharp.Core.nuspec b/src/fsharp/FSharp.Core/FSharp.Core.nuspec
index 0fa30ba781fd07dfd0ef8b9a1234f44cc15c268d..b11df35fca0807cef4151aaefaaeb95a0ffa053c 100644
--- a/src/fsharp/FSharp.Core/FSharp.Core.nuspec
+++ b/src/fsharp/FSharp.Core/FSharp.Core.nuspec
@@ -1,27 +1,8 @@
- FSharp.Core
- FSharp.Core for F# $fsCoreMajorVersion$
- FSharp.Core for F# $fsCoreMajorVersion$
-
- FSharp.Core redistributables from Visual F# Tools version $fsPackageMajorVersion$ For F# $fsCoreMajorVersion$
- Supported Platforms:
- .NET Framework 4.5+ (net45)
- netstandard1.6 (netstandard1.6)
- netstandard2.0 (netstandard2.0)
-
- Commit hash: $githeadsha$
-
- $owners$
- $version$
- $authors$
- $copyright$
- $licenseUrl$
- $projectUrl$
+ $CommonMetadataElements$
http://fsharp.org/img/logo.png
- $tags$
- true
en-US
@@ -56,18 +37,18 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
diff --git a/src/fsharp/fsc/Directory.Build.props b/src/fsharp/fsc/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/fsc/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/fsc/fsc.fsproj b/src/fsharp/fsc/fsc.fsproj
index a2e5127b61a941e245a2883a230dbe1bdce45130..581b4a11797a40d771420023ceb01396b1605e98 100644
--- a/src/fsharp/fsc/fsc.fsproj
+++ b/src/fsharp/fsc/fsc.fsproj
@@ -5,12 +5,11 @@
Exe
net46;netcoreapp2.1
+ netcoreapp2.1
.exe
- fsc
$(NoWarn);45;55;62;75;1204
true
$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1
- true
true
true
diff --git a/src/fsharp/fsi/Directory.Build.props b/src/fsharp/fsi/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/fsi/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/fsi/fsi.fsproj b/src/fsharp/fsi/fsi.fsproj
index b8b6a9a020fcfe1738832cc521f821ffaa7c96dc..77a9274a1e655f89a6f9978551e1805d1c652283 100644
--- a/src/fsharp/fsi/fsi.fsproj
+++ b/src/fsharp/fsi/fsi.fsproj
@@ -5,13 +5,12 @@
Exe
net46;netcoreapp2.1
+ netcoreapp2.1
.exe
- fsi
$(NoWarn);45;55;62;75;1204
true
$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1
fsi.res
- true
true
true
diff --git a/src/fsharp/fsiAnyCpu/Directory.Build.props b/src/fsharp/fsiAnyCpu/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..7cd41381b5df865bd221aeb3799e59b35946c720
--- /dev/null
+++ b/src/fsharp/fsiAnyCpu/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ true
+
+
+
+
+
diff --git a/src/fsharp/fsiAnyCpu/fsiAnyCpu.fsproj b/src/fsharp/fsiAnyCpu/fsiAnyCpu.fsproj
index 200bd6d40a3a92f45778f2725075dc9cbd518279..868b379f23435c4d0f9a2581b4332c412694f81d 100644
--- a/src/fsharp/fsiAnyCpu/fsiAnyCpu.fsproj
+++ b/src/fsharp/fsiAnyCpu/fsiAnyCpu.fsproj
@@ -7,12 +7,10 @@
net46
AnyCPU
.exe
- fsiAnyCpu
$(NoWarn);45;55;62;75;1204
true
$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1
..\fsi\fsi.res
- true
true
diff --git a/test.sh b/test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ea8631bd2301f3c0bcce37060abfb384d0979f96
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+source="${BASH_SOURCE[0]}"
+
+# resolve $SOURCE until the file is no longer a symlink
+while [[ -h $source ]]; do
+ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+ source="$(readlink "$source")"
+
+ # if $source was a relative symlink, we need to resolve it relative to the path where the
+ # symlink file was located
+ [[ $source != /* ]] && source="$scriptroot/$source"
+done
+
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+"$scriptroot/eng/build.sh" --test $@
diff --git a/tests/Directory.Build.targets b/tests/Directory.Build.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4bf59eb4aa6171b3aa68a31dd8af5aef76deaff0
--- /dev/null
+++ b/tests/Directory.Build.targets
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/FSharp.Build.UnitTests/Directory.Build.props b/tests/FSharp.Build.UnitTests/Directory.Build.props
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..7cd41381b5df865bd221aeb3799e59b35946c720 100644
--- a/tests/FSharp.Build.UnitTests/Directory.Build.props
+++ b/tests/FSharp.Build.UnitTests/Directory.Build.props
@@ -1,3 +1,9 @@
-
+
+
+ true
+
+
+
+
diff --git a/tests/FSharp.Build.UnitTests/Directory.Build.targets b/tests/FSharp.Build.UnitTests/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/tests/FSharp.Build.UnitTests/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
index 9e04e6e5845fd292a49391c7c572ef1872b6feb3..fa9b74422c48eaa72aad97dfb60d403a0f4c2374 100644
--- a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
+++ b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
@@ -4,6 +4,7 @@
net46;netcoreapp2.0
+ netcoreapp2.0
Library
true
nunit
diff --git a/tests/FSharp.Compiler.UnitTests/Directory.Build.props b/tests/FSharp.Compiler.UnitTests/Directory.Build.props
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..7cd41381b5df865bd221aeb3799e59b35946c720 100644
--- a/tests/FSharp.Compiler.UnitTests/Directory.Build.props
+++ b/tests/FSharp.Compiler.UnitTests/Directory.Build.props
@@ -1,3 +1,9 @@
-
+
+
+ true
+
+
+
+
diff --git a/tests/FSharp.Compiler.UnitTests/Directory.Build.targets b/tests/FSharp.Compiler.UnitTests/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/tests/FSharp.Compiler.UnitTests/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
index 4b9f4d21a308101958f497c99f56173b68210eec..a1acb6f9fdada002b918df6cfbc6343c16f8cd78 100644
--- a/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
+++ b/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj
@@ -4,6 +4,7 @@
net46;netcoreapp2.0
+ netcoreapp2.0
Library
true
nunit
diff --git a/tests/FSharp.Compiler.UnitTests/Language/StringConcat.fs b/tests/FSharp.Compiler.UnitTests/Language/StringConcat.fs
index fa18e7bb4279cfbb56a89342d3340190654b87ee..4069052a033e19c747ce793870c99c64f49bc625 100644
--- a/tests/FSharp.Compiler.UnitTests/Language/StringConcat.fs
+++ b/tests/FSharp.Compiler.UnitTests/Language/StringConcat.fs
@@ -8,7 +8,10 @@ open NUnit.Framework
[]
module StringConcat =
+// helper methods in this test only run on the full framework
+#if !NETCOREAPP
[]
+#endif
let Optimizations () =
let baseSource = """
module Test
diff --git a/tests/FSharp.Core.UnitTests/Directory.Build.props b/tests/FSharp.Core.UnitTests/Directory.Build.props
deleted file mode 100644
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..0000000000000000000000000000000000000000
--- a/tests/FSharp.Core.UnitTests/Directory.Build.props
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/FSharp.Core.UnitTests/Directory.Build.targets b/tests/FSharp.Core.UnitTests/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/tests/FSharp.Core.UnitTests/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj b/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
index 54b955b2c1e71c0fd587cc1580c62a67fb03501b..31351eca6b29bde07a0b9071da0343dc2ad47615 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
@@ -4,6 +4,7 @@
net46;netcoreapp2.0
+ netcoreapp2.0
Library
FSharp.Core.UnitTests
@@ -12,9 +13,11 @@
true
true
- xunit
+ nunit
true
true
+ MIT
+
false
@@ -93,7 +96,6 @@
-
@@ -101,9 +103,4 @@
-
-
-
-
-
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Control/App.config b/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Control/App.config
deleted file mode 100644
index 47c31e4eac0fdd8a3aa2ba357f788018257c615f..0000000000000000000000000000000000000000
--- a/tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Control/App.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/FSharp.Directory.Build.props b/tests/FSharp.Directory.Build.props
deleted file mode 100644
index f073b7b0858d167d835248a7a4d6a50dc82f710c..0000000000000000000000000000000000000000
--- a/tests/FSharp.Directory.Build.props
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
- $(ArtifactsPackagesDir)\$(Configuration)
-
-
-
- $(DefineConstants);FX_VERIFY_SURFACEAREA
-
-
-
- https://github.com/Microsoft/visualfsharp/blob/master/License.txt
- https://github.com/Microsoft/visualfsharp
- Microsoft and F# Software Foundation
- Microsoft and F# Software Foundation
- Visual F# Compiler FSharp functional programming
- (C) Microsoft Corporation. All rights reserved.
-
- $(GitHeadSha)
- [developer build]
-
-
- licenseUrl=$(PackageLicenceUrl);
- authors=$(PackageAuthors);
- owners=$(PackageOwners);
- projectUrl=$(PackageProjectUrl);
- copyright=$(PackageCopyright);
- tags=$(PackageTags);
- githeadsha=$(NormalizedGitHeadSha);
- configuration=$(Configuration);
- artifactsbindir=$(ArtifactsBinDir);
-
-
-
-
diff --git a/tests/FSharp.Directory.Build.targets b/tests/FSharp.Directory.Build.targets
deleted file mode 100644
index 590214e9b00d3b9deb77c7a3ef5f17aaed522d5c..0000000000000000000000000000000000000000
--- a/tests/FSharp.Directory.Build.targets
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Resources/Directory.Build.props b/tests/Resources/Directory.Build.props
new file mode 100644
index 0000000000000000000000000000000000000000..08b24f2800351d243be5cb4db8545d8e4fd9a21a
--- /dev/null
+++ b/tests/Resources/Directory.Build.props
@@ -0,0 +1,3 @@
+
+
+
diff --git a/tests/Resources/Directory.Build.targets b/tests/Resources/Directory.Build.targets
new file mode 100644
index 0000000000000000000000000000000000000000..08b24f2800351d243be5cb4db8545d8e4fd9a21a
--- /dev/null
+++ b/tests/Resources/Directory.Build.targets
@@ -0,0 +1,3 @@
+
+
+
diff --git a/tests/fsharp/Directory.Build.props b/tests/fsharp/Directory.Build.props
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..7cd41381b5df865bd221aeb3799e59b35946c720 100644
--- a/tests/fsharp/Directory.Build.props
+++ b/tests/fsharp/Directory.Build.props
@@ -1,3 +1,9 @@
-
+
+
+ true
+
+
+
+
diff --git a/tests/fsharp/Directory.Build.targets b/tests/fsharp/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/tests/fsharp/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/fsharp/FSharp.Tests.FSharpSuite.fsproj b/tests/fsharp/FSharpSuite.Tests.fsproj
similarity index 96%
rename from tests/fsharp/FSharp.Tests.FSharpSuite.fsproj
rename to tests/fsharp/FSharpSuite.Tests.fsproj
index 97aa63d88fb0a6104d4ea9c51359c78422501843..057ff6af08f09683be4c31f439227139b9369d96 100644
--- a/tests/fsharp/FSharp.Tests.FSharpSuite.fsproj
+++ b/tests/fsharp/FSharpSuite.Tests.fsproj
@@ -3,6 +3,7 @@
net46;netcoreapp2.0
+ netcoreapp2.0
win-x86;win-x64
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81
true
diff --git a/tests/fsharp/single-test.fs b/tests/fsharp/single-test.fs
index 557ee021ed9df2439796ed42af5e4e3419f477e7..b0a24ccb8e939531f2897237f740d2ffdc8b6996 100644
--- a/tests/fsharp/single-test.fs
+++ b/tests/fsharp/single-test.fs
@@ -68,7 +68,7 @@ let generateProps testCompilerVersion =
Release
$(TESTCOMPILERVERSION)
-
+
"
template
|> replaceTokens "$(PROJECTDIRECTORY)" (Path.GetFullPath(__SOURCE_DIRECTORY__))
@@ -76,7 +76,7 @@ let generateProps testCompilerVersion =
let generateTargets =
let template = @"
-
+
"
template
diff --git a/tests/fsharp/test-framework.fs b/tests/fsharp/test-framework.fs
index 7c535ae549e6c4a9ba5af04318795ab7066e0175..1e40e0bd3ea311bf4c589dd5a5f17887ea9e0c15 100644
--- a/tests/fsharp/test-framework.fs
+++ b/tests/fsharp/test-framework.fs
@@ -184,7 +184,11 @@ let config configurationName envVars =
let FSI_FOR_SCRIPTS = artifactsBinPath ++ "fsi" ++ configurationName ++ fsiArchitecture ++ "fsi.exe"
let FSharpBuild = requireFile (artifactsBinPath ++ "FSharp.Build" ++ configurationName ++ fsharpBuildArchitecture ++ "FSharp.Build.dll")
let FSharpCompilerInteractiveSettings = requireFile (artifactsBinPath ++ "FSharp.Compiler.Interactive.Settings" ++ configurationName ++ fsharpCompilerInteractiveSettingsArchitecture ++ "FSharp.Compiler.Interactive.Settings.dll")
- let dotNetExe = artifactsPath ++ "toolset" ++ "dotnet" ++ "dotnet.exe"
+ let dotNetExe =
+ // first look for {repoRoot}\.dotnet\dotnet.exe, otherwise fallback to %PATH%
+ let repoLocalDotnetPath = repoRoot ++ ".dotnet" ++ "dotnet.exe"
+ if File.Exists(repoLocalDotnetPath) then repoLocalDotnetPath
+ else "dotnet.exe"
// ildasm requires coreclr.dll to run which has already been restored to the packages directory
File.Copy(coreclrdll, Path.GetDirectoryName(ILDASM) ++ "coreclr.dll", overwrite=true)
diff --git a/tests/fsharp/tests.fs b/tests/fsharp/tests.fs
index dbd5dbc0170fb5ce29244ae9a21f93f4cb93a2a7..b109b9a8956715d003438cd0e56c292590774595 100644
--- a/tests/fsharp/tests.fs
+++ b/tests/fsharp/tests.fs
@@ -75,7 +75,7 @@ module CoreTests =
let namespaceAttributes () = singleTestBuildAndRun "core/namespaces" FSC_BASIC
[]
- let unicode2 () = singleTestBuildAndRun "core/unicode" FSC_BASIC
+ let unicode2 () = singleTestBuildAndRun "core/unicode" FSC_BASIC // TODO: fails on coreclr
[]
let ``unicode2-FSI_BASIC`` () = singleTestBuildAndRun "core/unicode" FSI_BASIC
@@ -164,7 +164,7 @@ module CoreTests =
#if !FSHARP_SUITE_DRIVES_CORECLR_TESTS
[]
- let ``quotes-FSC-BASIC`` () = singleTestBuildAndRun "core/quotes" FSC_BASIC
+ let ``quotes-FSC-BASIC`` () = singleTestBuildAndRun "core/quotes" FSC_BASIC // TODO: fails on coreclr
[]
let ``attributes-FSC_BASIC`` () = singleTestBuildAndRun "core/attributes" FSC_BASIC
diff --git a/tests/fsharpqa/Source/CodeGen/StringEncoding/.gitignore b/tests/fsharpqa/Source/CodeGen/StringEncoding/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..2bc99dcf85ef396d7d8bdab06f2b1fb5c3e7949f
--- /dev/null
+++ b/tests/fsharpqa/Source/CodeGen/StringEncoding/.gitignore
@@ -0,0 +1,3 @@
+# generated as part of the test
+oracle.cs
+testcase.fs
diff --git a/tests/fsharpqa/Source/CodeGen/StringEncoding/env.lst b/tests/fsharpqa/Source/CodeGen/StringEncoding/env.lst
index ec112a51d2ef87a19bced400fa129d0261fc01cc..6dba35a3cb9db87621cce2bad714ea3eda363426 100644
--- a/tests/fsharpqa/Source/CodeGen/StringEncoding/env.lst
+++ b/tests/fsharpqa/Source/CodeGen/StringEncoding/env.lst
@@ -1,5 +1,5 @@
- SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormKC.fsx > oracle.cs && csc oracle.cs && oracle.exe>testcase.fs" # FormKC
- SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormKD.fsx > oracle.cs && csc oracle.cs && oracle.exe>testcase.fs" # FormKD
- SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormC.fsx > oracle.cs && csc oracle.cs && oracle.exe>testcase.fs" # FormC
- SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormD.fsx > oracle.cs && csc oracle.cs && oracle.exe>testcase.fs" # FormD
+ SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormKC.fsx > oracle.cs && \$CSC_PIPE oracle.cs && oracle.exe>testcase.fs" # FormKC
+ SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormKD.fsx > oracle.cs && \$CSC_PIPE oracle.cs && oracle.exe>testcase.fs" # FormKD
+ SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormC.fsx > oracle.cs && \$CSC_PIPE oracle.cs && oracle.exe>testcase.fs" # FormC
+ SOURCE="dummy.fs testcase.fs" PRECMD="\$FSI_PIPE --exec NormalizationFormD.fsx > oracle.cs && \$CSC_PIPE oracle.cs && oracle.exe>testcase.fs" # FormD
diff --git a/tests/fsharpqa/Source/CompilerOptions/fsc/gccerrors/.gitignore b/tests/fsharpqa/Source/CompilerOptions/fsc/gccerrors/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..af1ac38976baf4699978a116e53a5f8810f86a78
--- /dev/null
+++ b/tests/fsharpqa/Source/CompilerOptions/fsc/gccerrors/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+gccerrors01.txt
diff --git a/tests/fsharpqa/Source/CompilerOptions/fsc/help/.gitignore b/tests/fsharpqa/Source/CompilerOptions/fsc/help/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..5641b0f57a45149dcfb59f5625bb86a02dd2b28f
--- /dev/null
+++ b/tests/fsharpqa/Source/CompilerOptions/fsc/help/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+help40.txt
diff --git a/tests/fsharpqa/Source/CompilerOptions/fsc/nologo/.gitignore b/tests/fsharpqa/Source/CompilerOptions/fsc/nologo/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..b852d34929d69405c69f77e2fc5c7f6bec70d90e
--- /dev/null
+++ b/tests/fsharpqa/Source/CompilerOptions/fsc/nologo/.gitignore
@@ -0,0 +1,3 @@
+# generated as part of the test
+logo.txt
+nologo.txt
diff --git a/tests/fsharpqa/Source/CompilerOptions/fsi/exename/.gitignore b/tests/fsharpqa/Source/CompilerOptions/fsi/exename/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..5107f2d354bad9cd6aa501727e9e932dead574c3
--- /dev/null
+++ b/tests/fsharpqa/Source/CompilerOptions/fsi/exename/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+help.txt
diff --git a/tests/fsharpqa/Source/CompilerOptions/fsi/help/.gitignore b/tests/fsharpqa/Source/CompilerOptions/fsi/help/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..5107f2d354bad9cd6aa501727e9e932dead574c3
--- /dev/null
+++ b/tests/fsharpqa/Source/CompilerOptions/fsi/help/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+help.txt
diff --git a/tests/fsharpqa/Source/Conformance/LexicalAnalysis/IdentifiersAndKeywords/.gitignore b/tests/fsharpqa/Source/Conformance/LexicalAnalysis/IdentifiersAndKeywords/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..87df167d754effa92bb22b9d203b080a1b834d98
--- /dev/null
+++ b/tests/fsharpqa/Source/Conformance/LexicalAnalysis/IdentifiersAndKeywords/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+test.ok
diff --git a/tests/fsharpqa/Source/Conformance/Signatures/SignatureConformance/.gitignore b/tests/fsharpqa/Source/Conformance/Signatures/SignatureConformance/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ae2245951c1b2b0a50dd9c730742faaea08a0d51
--- /dev/null
+++ b/tests/fsharpqa/Source/Conformance/Signatures/SignatureConformance/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+InternalAccessibility02.fsi
diff --git a/tests/fsharpqa/Source/Conformance/StructFieldEqualityComparison/.gitignore b/tests/fsharpqa/Source/Conformance/StructFieldEqualityComparison/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..d11891080159659497c4ac13125cee1977bfb597
--- /dev/null
+++ b/tests/fsharpqa/Source/Conformance/StructFieldEqualityComparison/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+floatsanddoubles.exe.out
diff --git a/tests/fsharpqa/Source/EntryPoint/.gitignore b/tests/fsharpqa/Source/EntryPoint/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8f0ecc58b196a0a0b90300d77900515731576e94
--- /dev/null
+++ b/tests/fsharpqa/Source/EntryPoint/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+E_CompilingToAModule01.netmodule
diff --git a/tests/fsharpqa/Source/ErrorMessages/ConfusingTypeName/env.lst b/tests/fsharpqa/Source/ErrorMessages/ConfusingTypeName/env.lst
index a78d70a69ec4a2c071478ea636796497d714f027..8189ed0b1f847beb82e00613e1399f01381b4c61 100644
--- a/tests/fsharpqa/Source/ErrorMessages/ConfusingTypeName/env.lst
+++ b/tests/fsharpqa/Source/ErrorMessages/ConfusingTypeName/env.lst
@@ -1,3 +1,3 @@
# see compile.bat for clearer steps, aim is to get message highlighting fix for https://github.com/Microsoft/visualfsharp/issues/2561
- SOURCE="app.fs" SCFLAGS="-r:liba.dll -r:libb.dll -r:libc.dll -r:libd.dll" PRECMD="csc -t:library -out:liba.dll liba-and-b.cs && csc -t:library -out:libb.dll liba-and-b.cs && fsc --target:library -r:liba.dll --out:libc.dll libc.fs && fsc --target:library -r:libb.dll --out:libd.dll libd.fs"
+ SOURCE="app.fs" SCFLAGS="-r:liba.dll -r:libb.dll -r:libc.dll -r:libd.dll" PRECMD="\$CSC_PIPE -t:library -out:liba.dll liba-and-b.cs && \$CSC_PIPE -t:library -out:libb.dll liba-and-b.cs && fsc --target:library -r:liba.dll --out:libc.dll libc.fs && fsc --target:library -r:libb.dll --out:libd.dll libd.fs"
\ No newline at end of file
diff --git a/tests/fsharpqa/Source/InteractiveSession/Misc/.gitignore b/tests/fsharpqa/Source/InteractiveSession/Misc/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f0a93261615afd5b8645baa622caeaaa1557bcbf
--- /dev/null
+++ b/tests/fsharpqa/Source/InteractiveSession/Misc/.gitignore
@@ -0,0 +1,4 @@
+# generated as part of the test
+LoadOrderOfExecution3a.fs
+LoadOrderOfExecution4.fs
+ReferencesFullPath.fsx
diff --git a/tests/fsharpqa/Source/InteractiveSession/Misc/GenericConstraintWoes/issue2411/env.lst b/tests/fsharpqa/Source/InteractiveSession/Misc/GenericConstraintWoes/issue2411/env.lst
index 822c79ae7defd98b4967c556bfaa2d6163dedb7c..6ec14cc9a8fe7ac931ada97928a0963c282f0c5b 100644
--- a/tests/fsharpqa/Source/InteractiveSession/Misc/GenericConstraintWoes/issue2411/env.lst
+++ b/tests/fsharpqa/Source/InteractiveSession/Misc/GenericConstraintWoes/issue2411/env.lst
@@ -1 +1 @@
- SOURCE=app.fsx COMPILE_ONLY=1 FSIMODE=EXEC SCFLAGS="--nologo" PRECMD="csc -t:library lib.cs" # mode exec: used to produce internal error
\ No newline at end of file
+ SOURCE=app.fsx COMPILE_ONLY=1 FSIMODE=EXEC SCFLAGS="--nologo" PRECMD="\$CSC_PIPE -t:library lib.cs" # mode exec: used to produce internal error
\ No newline at end of file
diff --git a/tests/fsharpqa/Source/Stress/.gitignore b/tests/fsharpqa/Source/Stress/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..09214bda72c9d3eb9792154a984018445211480d
--- /dev/null
+++ b/tests/fsharpqa/Source/Stress/.gitignore
@@ -0,0 +1,3 @@
+# generated as part of the test
+2766.fs
+SeqExprCapacity.fs
diff --git a/tests/fsharpqa/Source/XmlDoc/.gitignore b/tests/fsharpqa/Source/XmlDoc/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..abfcd8dcc29b0e97f13d1c51a743464dab89609c
--- /dev/null
+++ b/tests/fsharpqa/Source/XmlDoc/.gitignore
@@ -0,0 +1,2 @@
+# generated as part of the test
+*.xml
diff --git a/tests/fsharpqa/Source/run.pl b/tests/fsharpqa/Source/run.pl
index e9363e6aea68879dcfce8d7cd7d3c58c0b5a0975..751bcdd89350fc498f0efc5c799f055f811c1794 100644
--- a/tests/fsharpqa/Source/run.pl
+++ b/tests/fsharpqa/Source/run.pl
@@ -159,13 +159,13 @@ if (exists($ENV{PRECMD})) {
# SOURCE=foo.fs PRECMD="\$FSC_PIPE bar.fs"
# and it will expanded into $FSC_PIPE before invoking it
$_ = $ENV{PRECMD};
- s/^\$FSC_PIPE/$FSC_PIPE/;
+ s/\$FSC_PIPE/$FSC_PIPE/g;
s/\$FSI_PIPE/$FSI_PIPE/g;
- s/^\$FSI32_PIPE/$FSI32_PIPE/;
- s/\$ISCFLAGS/$ISCFLAGS/;
- s/^\$CSC_PIPE/$CSC_PIPE/;
- s/^\$VBC_PIPE/$VBC_PIPE/;
- RunExit(TEST_FAIL, "Fail to execute the PRECMD" . @CommandOutput . "\n") if RunCommand("PRECMD",$_ ,1);
+ s/\$FSI32_PIPE/$FSI32_PIPE/g;
+ s/\$ISCFLAGS/$ISCFLAGS/g;
+ s/\$CSC_PIPE/$CSC_PIPE/g;
+ s/\$VBC_PIPE/$VBC_PIPE/g;
+ RunExit(TEST_FAIL, "Fail to execute the PRECMD:\n" . join("\n", @CommandOutput) . "\n") if RunCommand("PRECMD",$_ ,1);
}
# Normal testing begins
@@ -265,12 +265,13 @@ if($ENV{REDUCED_RUNTIME} ne "1"){
my $PEVERIFY = $ENV{PEVERIFY};
unless(defined($PEVERIFY)) {
my $scriptPath = dirname(__FILE__);
- $PEVERIFY = "$scriptPath\\..\\..\\..\\artifacts\\bin\\PEVerify\\Release\\net46\\PEVerify.exe";
- if (-e $PEVERIFY) {
- $ENV{PEVERIFY} = $PEVERIFY;
- }
- else {
- $ENV{PEVERIFY} = "$scriptPath\\..\\..\\..\\artifacts\\bin\\PEVerify\\Debug\\net46\\PEVerify.exe";
+ my @configurations = ("Debug", "Release");
+ foreach my $config (@configurations) {
+ $PEVERIFY = "$scriptPath\\..\\..\\..\\artifacts\\bin\\PEVerify\\$config\\net46\\PEVerify.exe";
+ if (-e $PEVERIFY) {
+ $ENV{PEVERIFY} = $PEVERIFY;
+ last;
+ }
}
}
@@ -468,9 +469,10 @@ sub RunCommand {
open(COMMAND,"$cmd 2>&1 |") or RunExit(TEST_FAIL, "Command Process Couldn't Be Created: $! Returned $? \n");
@CommandOutput = ;
close COMMAND;
+ my $result = $?;
# close STDERR; open STDERR, ">&SAVEERR"; #resore stderr
- print @CommandOutput if ($dumpOutput == 1);
+ print(join("\n", @CommandOutput)) if ($dumpOutput == 1);
# Test for an assertion failure
if (-e ASSERT_FILE) {
@@ -482,7 +484,8 @@ sub RunCommand {
close ASSERT;
RunExit(TEST_FAIL, "Command Unexpectedly Failed with ASSERT \n");
}
- return $?;
+
+ return $result;
}
#############################################################
@@ -770,11 +773,11 @@ sub RunExit {
# SOURCE=foo.fs POSTCMD="\$FSC_PIPE bar.fs"
# and it will expanded into $FSC_PIPE before invoking it
$_ = $ENV{POSTCMD};
- s/^\$FSC_PIPE/$FSC_PIPE/;
- s/^\$FSI_PIPE/$FSI_PIPE/;
- s/^\$FSI32_PIPE/$FSI32_PIPE/;
- s/^\$CSC_PIPE/$CSC_PIPE/;
- s/^\$VBC_PIPE/$VBC_PIPE/;
+ s/\$FSC_PIPE/$FSC_PIPE/g;
+ s/\$FSI_PIPE/$FSI_PIPE/g;
+ s/\$FSI32_PIPE/$FSI32_PIPE/g;
+ s/\$CSC_PIPE/$CSC_PIPE/g;
+ s/\$VBC_PIPE/$VBC_PIPE/g;
if (RunCommand("POSTCMD",$_,1)){
$exitVal = TEST_FAIL;
diff --git a/tests/fsharpqa/testenv/src/AssemblyVersionCheck/.gitignore b/tests/fsharpqa/testenv/src/AssemblyVersionCheck/.gitignore
deleted file mode 100644
index c0e717b21def06f65df3b6d4267f75dce60f4921..0000000000000000000000000000000000000000
--- a/tests/fsharpqa/testenv/src/AssemblyVersionCheck/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# this file has to be dynamically written at build time
-assemblies.fsx
diff --git a/tests/fsharpqa/testenv/src/AssemblyVersionCheck/AssemblyVersionCheck.fsx b/tests/fsharpqa/testenv/src/AssemblyVersionCheck/AssemblyVersionCheck.fsx
deleted file mode 100644
index 727916d498655fb3a55eec1f276b8bf644fb7724..0000000000000000000000000000000000000000
--- a/tests/fsharpqa/testenv/src/AssemblyVersionCheck/AssemblyVersionCheck.fsx
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
-
-// this points to assemblies that were restored by packages.config in the root
-#load "assemblies.fsx"
-
-open System
-open System.Diagnostics
-open System.IO
-open System.Reflection
-open System.Text.RegularExpressions
-open Newtonsoft.Json.Linq
-
-module AssemblyVersionCheck =
-
- let private versionZero = Version(0, 0, 0, 0)
- let private commitHashPattern = new Regex(@"Commit Hash: ()|([0-9a-fA-F]{40})", RegexOptions.Compiled)
-
- let verifyAssemblyVersions (signToolData:string) (binariesPath:string) =
- let json = File.ReadAllText(signToolData)
- let jobject = JObject.Parse(json)
-
- // could either contain things like 'net40\bin\FSharp.Core.dll' or patterns like 'net40\bin\*\FSharp.Core.resources.dll'
- let assemblyPatterns =
- (jobject.["sign"] :?> JArray)
- |> Seq.map (fun a -> (a :?> JObject).["values"] :?> JArray)
- |> Seq.map (fun a -> a :> seq)
- |> Seq.collect (fun t -> t)
- |> Seq.map (fun t -> t.ToString())
- |> Seq.filter (fun p -> p.EndsWith(".dll") || p.EndsWith(".exe")) // only check assemblies
-
- // map the assembly patterns to actual files on disk
- let actualAssemblies =
- assemblyPatterns
- |> Seq.map (fun a ->
- if not (a.Contains("*")) then
- [a] // just a raw file name
- else
- let parts = a.Split([|'\\'|])
- let mutable candidatePaths = [binariesPath]
- for p in parts do
- match p with
- | "*" ->
- // expand all candidates into multiples
- let expansions =
- candidatePaths
- |> List.filter Directory.Exists
- |> List.map (Directory.EnumerateDirectories >> Seq.toList)
- |> List.collect (fun x -> x)
- candidatePaths <- expansions
- | _ ->
- // regular path part, just append it to all candidates
- candidatePaths <- List.map (fun d -> Path.Combine(d, p)) candidatePaths
- candidatePaths)
- |> Seq.collect (fun a -> a)
- |> Seq.map (fun a -> Path.Combine(binariesPath, a))
- |> Seq.filter (fun p -> File.Exists(p)) // not all test runs produce all files
- |> Seq.toList
-
- // verify that all assemblies have a version number other than 0.0.0.0
- let failedVersionCheck =
- actualAssemblies
- |> List.filter (fun a ->
- let assemblyVersion = AssemblyName.GetAssemblyName(a).Version
- printfn "Checking version: %s (%A)" a assemblyVersion
- assemblyVersion = versionZero)
- if failedVersionCheck.Length > 0 then
- printfn "The following assemblies had a version of %A" versionZero
- printfn "%s\r\n" <| String.Join("\r\n", failedVersionCheck)
-
- // verify that all assemblies have a commit hash
- let failedCommitHash =
- actualAssemblies
- |> List.filter (fun a ->
- let fileProductVersion = FileVersionInfo.GetVersionInfo(a).ProductVersion
- printfn "Checking commit hash: %s (%s)" a fileProductVersion
- not <| commitHashPattern.IsMatch(fileProductVersion))
- if failedCommitHash.Length > 0 then
- printfn "The following assemblies don't have a commit hash set"
- printfn "%s\r\n" <| String.Join("\r\n", failedCommitHash)
-
- // return code is the number of failures
- failedVersionCheck.Length + failedCommitHash.Length
-
-let main (argv:string array) =
- if argv.Length <> 2 then
- printfn "Usage: fsi.exe AssemblyVersionCheck.fsx -- SignToolData.json path/to/binaries"
- 1
- else
- AssemblyVersionCheck.verifyAssemblyVersions argv.[0] argv.[1]
-
-Environment.GetCommandLineArgs()
-|> Seq.skipWhile ((<>) "--")
-|> Seq.skip 1
-|> Array.ofSeq
-|> main
diff --git a/tests/fsharpqa/testenv/src/Directory.Build.props b/tests/fsharpqa/testenv/src/Directory.Build.props
deleted file mode 100644
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..0000000000000000000000000000000000000000
--- a/tests/fsharpqa/testenv/src/Directory.Build.props
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/fsharpqa/testenv/src/Directory.Build.targets b/tests/fsharpqa/testenv/src/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/tests/fsharpqa/testenv/src/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.props b/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.props
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..aa744e6acad9a3c459ab0e50f34a460981af410b 100644
--- a/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.props
+++ b/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.props
@@ -1,3 +1,4 @@
-
+
+
diff --git a/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.targets b/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.targets
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..4d469fc9359deb6d5eeeab22fd79f92cf612b6de 100644
--- a/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.targets
+++ b/tests/projects/Sample_NETCoreSDK_FSharp_Library_netstandard2_0/Directory.Build.targets
@@ -1,3 +1,4 @@
-
+
+
diff --git a/tests/service/data/Directory.Build.props b/tests/service/data/Directory.Build.props
deleted file mode 100644
index bb8eac309b1ad0dfc3418caf301e1f06803c82ae..0000000000000000000000000000000000000000
--- a/tests/service/data/Directory.Build.props
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/service/data/Directory.Build.targets b/tests/service/data/Directory.Build.targets
deleted file mode 100644
index ccd47cc0a9aa21567cd1adbf7d7054bf309679f1..0000000000000000000000000000000000000000
--- a/tests/service/data/Directory.Build.targets
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/verify-translations.cmd b/verify-translations.cmd
deleted file mode 100644
index 2580890c6fbe7392e3a0865ad6a9379ac16ffa35..0000000000000000000000000000000000000000
--- a/verify-translations.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-
-%~dp0artifacts\bin\fsi\Release\net46\fsi.exe %~dp0src\scripts\VerifyAllTranslations.fsx -- %~dp0
diff --git a/vsintegration/Directory.Build.props b/vsintegration/Directory.Build.props
index 5a7b0782ce169a1e6a9fff5ca0a5d453df71e4c2..45173358d8948d600653e237916494c23ef3f8f5 100644
--- a/vsintegration/Directory.Build.props
+++ b/vsintegration/Directory.Build.props
@@ -1,11 +1,11 @@
-
-
net46
v4.6
true
+
+
diff --git a/vsintegration/Directory.Build.targets b/vsintegration/Directory.Build.targets
index 0a555189d7e5b6ab1291b799a8b010ddacf3c1f4..af547ce3c0cfaa4bfa3eae06b1fc426f22e29775 100644
--- a/vsintegration/Directory.Build.targets
+++ b/vsintegration/Directory.Build.targets
@@ -1,19 +1,11 @@
-
+
true
- $(NuGetPackageRoot)Microsoft.VSSDK.BuildTools\$(MicrosoftVSSDKBuildToolsPackageVersion)
-
-
-
-
-
-
-
diff --git a/vsintegration/DisableVsixManifestTargets.targets b/vsintegration/DisableVsixManifestTargets.targets
deleted file mode 100644
index 86c5ada70cb4826a600d4a9af2398d4ef30146c8..0000000000000000000000000000000000000000
--- a/vsintegration/DisableVsixManifestTargets.targets
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/vsintegration/ItemTemplates/AppConfig/AppConfig.csproj b/vsintegration/ItemTemplates/AppConfig/AppConfig.csproj
index 48500b15a86e7a813bcbca16b3ea99ca538b625f..4fd83ab1811fe1061cb8a5840619b21194432279 100644
--- a/vsintegration/ItemTemplates/AppConfig/AppConfig.csproj
+++ b/vsintegration/ItemTemplates/AppConfig/AppConfig.csproj
@@ -2,10 +2,6 @@
-
- AppConfig
-
-
diff --git a/vsintegration/ItemTemplates/AppConfig/source.extension.vsixmanifest b/vsintegration/ItemTemplates/AppConfig/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..05eedbb1f39733479c55a221a6718936834f09c2
--- /dev/null
+++ b/vsintegration/ItemTemplates/AppConfig/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ItemTemplates/CodeFile/CodeFile.csproj b/vsintegration/ItemTemplates/CodeFile/CodeFile.csproj
index cf6a5e3e4f6784568f251056940da2b96b6e08b7..85c251a657137a1f9f247b412915ee7e215f2857 100644
--- a/vsintegration/ItemTemplates/CodeFile/CodeFile.csproj
+++ b/vsintegration/ItemTemplates/CodeFile/CodeFile.csproj
@@ -2,10 +2,6 @@
-
- CodeFile
-
-
diff --git a/vsintegration/ItemTemplates/CodeFile/source.extension.vsixmanifest b/vsintegration/ItemTemplates/CodeFile/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..77860d0c1cec8834dc739d7efbe32faaa8cc3f19
--- /dev/null
+++ b/vsintegration/ItemTemplates/CodeFile/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ItemTemplates/ResourceFile/ResourceFile.csproj b/vsintegration/ItemTemplates/ResourceFile/ResourceFile.csproj
index 17760a303bf7bc58844856621058c81afc054b70..e3b839ca84e5106b74d7de7ee57aa65b5a5c41f4 100644
--- a/vsintegration/ItemTemplates/ResourceFile/ResourceFile.csproj
+++ b/vsintegration/ItemTemplates/ResourceFile/ResourceFile.csproj
@@ -2,10 +2,6 @@
-
- ResourceFile
-
-
diff --git a/vsintegration/ItemTemplates/ResourceFile/source.extension.vsixmanifest b/vsintegration/ItemTemplates/ResourceFile/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..080d4b6e73a1fa5d193859bcc7892eab34ec6fad
--- /dev/null
+++ b/vsintegration/ItemTemplates/ResourceFile/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ItemTemplates/ScriptFile/ScriptFile.csproj b/vsintegration/ItemTemplates/ScriptFile/ScriptFile.csproj
index d8affe836051dfa829e3a6c81b3104126d11f25c..2ebcd32a52aa4675eb797a0218f22a3d2852e740 100644
--- a/vsintegration/ItemTemplates/ScriptFile/ScriptFile.csproj
+++ b/vsintegration/ItemTemplates/ScriptFile/ScriptFile.csproj
@@ -2,10 +2,6 @@
-
- ScriptFile
-
-
diff --git a/vsintegration/ItemTemplates/ScriptFile/source.extension.vsixmanifest b/vsintegration/ItemTemplates/ScriptFile/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..926e18fb0412e94b003848fda47028e9e8da6218
--- /dev/null
+++ b/vsintegration/ItemTemplates/ScriptFile/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ItemTemplates/SignatureFile/SignatureFile.csproj b/vsintegration/ItemTemplates/SignatureFile/SignatureFile.csproj
index 89a34c354b79df71675fe8d22843815c1991df29..8afaaa6536bd7c7717687e0b10a2e2b9b4b0b62c 100644
--- a/vsintegration/ItemTemplates/SignatureFile/SignatureFile.csproj
+++ b/vsintegration/ItemTemplates/SignatureFile/SignatureFile.csproj
@@ -2,10 +2,6 @@
-
- SignatureFile
-
-
diff --git a/vsintegration/ItemTemplates/SignatureFile/source.extension.vsixmanifest b/vsintegration/ItemTemplates/SignatureFile/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..f58462b5bfecc6a0592e46e369ae97327a3eb669
--- /dev/null
+++ b/vsintegration/ItemTemplates/SignatureFile/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ItemTemplates/TextFile/TextFile.csproj b/vsintegration/ItemTemplates/TextFile/TextFile.csproj
index 880085abaaac890168fbdc944c27a80ad3755584..0d4fe964bb4f9608bfbe1f3693ca41f60869dd85 100644
--- a/vsintegration/ItemTemplates/TextFile/TextFile.csproj
+++ b/vsintegration/ItemTemplates/TextFile/TextFile.csproj
@@ -2,10 +2,6 @@
-
- TextFile
-
-
diff --git a/vsintegration/ItemTemplates/TextFile/source.extension.vsixmanifest b/vsintegration/ItemTemplates/TextFile/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..c27fecaff60b26b29eb68bd36a0496c4bed53583
--- /dev/null
+++ b/vsintegration/ItemTemplates/TextFile/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ItemTemplates/XMLFile/XMLFile.csproj b/vsintegration/ItemTemplates/XMLFile/XMLFile.csproj
index bef2612dc20386156c51f09a5210b08fd18fb9ea..2c345a1dfaef861e04d4d5527c2c5d394edab605 100644
--- a/vsintegration/ItemTemplates/XMLFile/XMLFile.csproj
+++ b/vsintegration/ItemTemplates/XMLFile/XMLFile.csproj
@@ -2,10 +2,6 @@
-
- XMLFile
-
-
diff --git a/vsintegration/ItemTemplates/XMLFile/source.extension.vsixmanifest b/vsintegration/ItemTemplates/XMLFile/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..405769509e53e19fef6bfeab60d1af82b928d6da
--- /dev/null
+++ b/vsintegration/ItemTemplates/XMLFile/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ProjectTemplates/ConsoleProject/source.extension.vsixmanifest b/vsintegration/ProjectTemplates/ConsoleProject/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..5f28d2c06edd356faeaf7b9663d9562b54fe66d8
--- /dev/null
+++ b/vsintegration/ProjectTemplates/ConsoleProject/source.extension.vsixmanifest
@@ -0,0 +1,24 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ProjectTemplates/Directory.Build.props b/vsintegration/ProjectTemplates/Directory.Build.props
index a67b0e382ed408517bac2895c62fed5c264fbe83..49fb4e2d1fcba5e9501298fc8d5f9e0a8f39c731 100644
--- a/vsintegration/ProjectTemplates/Directory.Build.props
+++ b/vsintegration/ProjectTemplates/Directory.Build.props
@@ -2,6 +2,7 @@
ProjectTemplates
+ Microsoft.FSharp
diff --git a/vsintegration/ProjectTemplates/LibraryProject/source.extension.vsixmanifest b/vsintegration/ProjectTemplates/LibraryProject/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..f5157eaa6b0fbad950c42107a1bf23aef5076e12
--- /dev/null
+++ b/vsintegration/ProjectTemplates/LibraryProject/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/ProjectTemplates/TutorialProject/source.extension.vsixmanifest b/vsintegration/ProjectTemplates/TutorialProject/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..39bac985bc178582b5edcc78c53582eec938ae99
--- /dev/null
+++ b/vsintegration/ProjectTemplates/TutorialProject/source.extension.vsixmanifest
@@ -0,0 +1,25 @@
+
+
+
+
+ F# .NETCore Project Templates
+ F# project templates for .NETCore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vsintegration/Templates.Directory.Build.props b/vsintegration/Templates.Directory.Build.props
index c6a5cea2009558059cc7f3a6a9e973f4085800e7..df7e87a2cdd302524c4be5ec0ef0b7c65f0661fe 100644
--- a/vsintegration/Templates.Directory.Build.props
+++ b/vsintegration/Templates.Directory.Build.props
@@ -6,18 +6,24 @@
+
+
+ false
+ true
+ true
+ false
+ false
+ false
+ false
net46
v4.6
- true
true
- false
- false
+ false
false
false
- false
false
false
false
diff --git a/vsintegration/Vsix/Directory.Build.props b/vsintegration/Vsix/Directory.Build.props
index 2a730726842b902f09bcf1369454e760345e0039..e2386bf5eff3b9b1b775597c9a4f806fbd314cf4 100644
--- a/vsintegration/Vsix/Directory.Build.props
+++ b/vsintegration/Vsix/Directory.Build.props
@@ -3,20 +3,13 @@
+ Microsoft.FSharp
RoslynDev
- false
- true
$(VSRootSuffix)
true
publish\
true
Disk
- false
- Foreground
- 7
- Days
- true
- false
true
false
false
@@ -31,7 +24,6 @@
CommonExtensions
None
true
- true
diff --git a/vsintegration/Vsix/Directory.Build.targets b/vsintegration/Vsix/Directory.Build.targets
deleted file mode 100644
index 677cf0afc9d96cb0cf4e2b1fbb4f779ec0d51e64..0000000000000000000000000000000000000000
--- a/vsintegration/Vsix/Directory.Build.targets
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
- $(ArtifactsDir)\VSSetup\$(Configuration)
- $(ArtifactsDir)\VSSetup.obj\$(Configuration)\Microsoft.FSharp\
-
-
-
-
- False
- Microsoft .NET Framework 4.6 %28x86 and x64%29
- true
-
-
- False
- .NET Framework 3.5 SP1 Client Profile
- false
-
-
- False
- .NET Framework 3.5 SP1
- false
-
-
-
-
diff --git a/vsintegration/Vsix/VisualFSharpFull/Source.extension.vsixmanifest b/vsintegration/Vsix/VisualFSharpFull/Source.extension.vsixmanifest
index 264367550872969f871399ceae77c401cad3cbea..4d0683266757a335069e06e4e5da7703bf5f2092 100644
--- a/vsintegration/Vsix/VisualFSharpFull/Source.extension.vsixmanifest
+++ b/vsintegration/Vsix/VisualFSharpFull/Source.extension.vsixmanifest
@@ -2,7 +2,7 @@
-
+
Visual F# Tools
Deploy Visual F# Tools Binaries to Visual Studio
Microsoft.FSharp.VSIX.Full.Core
diff --git a/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj b/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj
index 95a623bfa12e1ab2a300c741e658cbedbc9163aa..90baf6d789c08453091c8565c064e9b47811f1eb 100644
--- a/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj
+++ b/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj
@@ -6,6 +6,7 @@
Library
Microsoft\FSharp
netcoreapp1.0
+ true
@@ -66,7 +67,7 @@
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}
FSharp.Compiler.Private
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -77,7 +78,7 @@
{DED3BBD7-53F4-428A-8C9F-27968E768605}
FSharp.Core
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -85,9 +86,9 @@
True
TargetFramework=net45
-
+
{8B3E283D-B5FE-4055-9D80-7E3A32F3967B}
- FsiAnyCPU
+ FsiAnyCpu
BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3b
DebugSymbolsProjectOutputGroup%3b
true
@@ -124,7 +125,7 @@
{65e0e82a-eace-4787-8994-888674c2fe87}
FSharp.Editor
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -134,14 +135,14 @@
{c4586a06-1402-48bc-8e35-a1b8642f895b}
FSharp.UIResources
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
True
{1C5C163C-37EA-4A3C-8CCC-0D34B74BF8EF}
FSharp.LanguageService.Base
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -151,7 +152,7 @@
{EE85AAB7-CDA0-4C4E-BDA0-A64CCC413E3F}
FSharp.LanguageService
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -161,7 +162,7 @@
{B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}
ProjectSystem.Base
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -171,7 +172,7 @@
{6196B0F8-CAEA-4CF1-AF82-1B520F77FE44}
ProjectSystem
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -181,7 +182,7 @@
{FCFB214C-462E-42B3-91CA-FC557EFEE74F}
FSharp.PropertiesPages
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
@@ -191,7 +192,7 @@
{991DCF75-C2EB-42B6-9A0D-AA1D2409D519}
FSharp.VS.FSI
- BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3b
+ BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bPkgDefProjectOutputGroup%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
true
All
diff --git a/vsintegration/Vsix/VisualFSharpTemplates/Source.extension.vsixmanifest b/vsintegration/Vsix/VisualFSharpTemplates/Source.extension.vsixmanifest
index 3d17751f813a6b744cba1ddacb802a4e2f303809..628e678cdcddf514e94f57c5840f8f784a718b1d 100644
--- a/vsintegration/Vsix/VisualFSharpTemplates/Source.extension.vsixmanifest
+++ b/vsintegration/Vsix/VisualFSharpTemplates/Source.extension.vsixmanifest
@@ -3,7 +3,7 @@
-
+
Visual F# Templates
Deploy Visual F# Tools Desktop Project Templates to Visual Studio
Microsoft.FSharp.VSIX.Templates
diff --git a/vsintegration/Vsix/VisualFSharpTemplates/VisualFSharpTemplates.csproj b/vsintegration/Vsix/VisualFSharpTemplates/VisualFSharpTemplates.csproj
index fefaecb661499c28bda7d3774ae1824950694cd2..36034d0509a18eb225425b784e948d4a609fe6bf 100644
--- a/vsintegration/Vsix/VisualFSharpTemplates/VisualFSharpTemplates.csproj
+++ b/vsintegration/Vsix/VisualFSharpTemplates/VisualFSharpTemplates.csproj
@@ -3,17 +3,13 @@
- VisualFSharpTemplate
Library
Microsoft\FSharpTemplates
+ net46
+ true
-
- PreserveNewest
- packages\FSharp.Core.$(FSCorePackageVersion).nupkg
- true
-
PreserveNewest
packages\System.ValueTuple.4.4.0.nupkg
@@ -24,6 +20,14 @@
+
+
+ packages
+ PackOutputGroup%3b
+ false
+
+
+
{604f0daa-2d33-48dd-b162-edf0b672803d}
diff --git a/vsintegration/fsharp-vsintegration-item-templates-build.proj b/vsintegration/fsharp-vsintegration-item-templates-build.proj
deleted file mode 100644
index 0a1fd670f914287b06a29740b1a8ee0a54f9ee26..0000000000000000000000000000000000000000
--- a/vsintegration/fsharp-vsintegration-item-templates-build.proj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- net40
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/vsintegration/fsharp-vsintegration-project-templates-build.proj b/vsintegration/fsharp-vsintegration-project-templates-build.proj
deleted file mode 100644
index da89b3a5d2345bc97550b945ec54e70d9ce62c75..0000000000000000000000000000000000000000
--- a/vsintegration/fsharp-vsintegration-project-templates-build.proj
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- net40
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/vsintegration/fsharp-vsintegration-src-build.proj b/vsintegration/fsharp-vsintegration-src-build.proj
deleted file mode 100644
index 93a8fbfd27375ee9070598b46a0a48d680c8e2c1..0000000000000000000000000000000000000000
--- a/vsintegration/fsharp-vsintegration-src-build.proj
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- net40
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/vsintegration/fsharp-vsintegration-unittests-build.proj b/vsintegration/fsharp-vsintegration-unittests-build.proj
deleted file mode 100644
index 489e91ad2e99a33c8205fc436df1c244136b1b64..0000000000000000000000000000000000000000
--- a/vsintegration/fsharp-vsintegration-unittests-build.proj
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/vsintegration/fsharp-vsintegration-vsix-build.proj b/vsintegration/fsharp-vsintegration-vsix-build.proj
deleted file mode 100644
index c208129ec4448268cb5a6b12c0ee849108fe21a7..0000000000000000000000000000000000000000
--- a/vsintegration/fsharp-vsintegration-vsix-build.proj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/vsintegration/src/Directory.Build.props b/vsintegration/src/Directory.Build.props
index 1ad6fb80ecd87e79e8a08e06922dda7642c47866..df989b6c15c2947eb21b9528bf7d457adadcfd62 100644
--- a/vsintegration/src/Directory.Build.props
+++ b/vsintegration/src/Directory.Build.props
@@ -4,6 +4,8 @@
false
+ false
+ true
diff --git a/vsintegration/src/FSharp.Editor/Completion/SignatureHelp.fs b/vsintegration/src/FSharp.Editor/Completion/SignatureHelp.fs
index 8dd6b4c5a0214f9db779032bf330975b6b5d0041..6ffc30c88cca72173f6c937979defc295d8b1d09 100644
--- a/vsintegration/src/FSharp.Editor/Completion/SignatureHelp.fs
+++ b/vsintegration/src/FSharp.Editor/Completion/SignatureHelp.fs
@@ -168,7 +168,7 @@ type internal FSharpSignatureHelpProvider
XmlDocumentation.BuildMethodParamText(documentationBuilder, RoslynHelpers.CollectTaggedText doc, method.XmlDoc, p.ParameterName)
let parts = List()
renderL (taggedTextListR (RoslynHelpers.CollectTaggedText parts)) p.StructuredDisplay |> ignore
- yield (p.ParameterName, p.IsOptional, doc, parts)
+ yield (p.ParameterName, p.IsOptional, p.CanonicalTypeTextForSorting, doc, parts)
|]
let prefixParts =
@@ -210,7 +210,7 @@ type internal FSharpSignatureHelpProvider
results
|> Array.map (fun (hasParamArrayArg, doc, prefixParts, separatorParts, suffixParts, parameters, descriptionParts) ->
let parameters = parameters
- |> Array.map (fun (paramName, isOptional, paramDoc, displayParts) ->
+ |> Array.map (fun (paramName, isOptional, _typeText, paramDoc, displayParts) ->
SignatureHelpParameter(paramName,isOptional,documentationFactory=(fun _ -> paramDoc :> seq<_>),displayParts=displayParts))
SignatureHelpItem(isVariadic=hasParamArrayArg, documentationFactory=(fun _ -> doc :> seq<_>),prefixParts=prefixParts,separatorParts=separatorParts,suffixParts=suffixParts,parameters=parameters,descriptionParts=descriptionParts))
diff --git a/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj b/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj
index 98d8e28f771948d1f1974173ccd89a3ea91d21fa..6a95fa56b625bf3a5b063690d3a29ba1d759ef75 100644
--- a/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj
+++ b/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj
@@ -4,8 +4,6 @@
Library
- true
- false
$(NoWarn);75
true
true
@@ -13,6 +11,7 @@
$(OtherFlags) --warnon:1182 --subsystemversion:6.00
true
false
+ true
@@ -155,7 +154,6 @@
-
diff --git a/vsintegration/src/FSharp.Editor/QuickInfo/QuickInfoProvider.fs b/vsintegration/src/FSharp.Editor/QuickInfo/QuickInfoProvider.fs
index 5712af54fb8673568ac47a076b0ac80cdd544fdc..9f8bf73fddbd45bdfae81901ec7add224d7b9571 100644
--- a/vsintegration/src/FSharp.Editor/QuickInfo/QuickInfoProvider.fs
+++ b/vsintegration/src/FSharp.Editor/QuickInfo/QuickInfoProvider.fs
@@ -23,13 +23,13 @@ open FSharp.Compiler
open Internal.Utilities.StructuredFormat
-type private QuickInfo =
+type internal QuickInfo =
{ StructuredText: FSharpStructuredToolTipText
Span: TextSpan
Symbol: FSharpSymbol
SymbolKind: LexerSymbolKind }
-module private FSharpQuickInfo =
+module internal FSharpQuickInfo =
let userOpName = "QuickInfo"
@@ -166,6 +166,12 @@ type internal FSharpAsyncQuickInfoSource
textBuffer:ITextBuffer
) =
+ static let joinWithLineBreaks segments =
+ let lineBreak = TaggedTextOps.Literals.lineBreak
+ match segments |> List.filter (Seq.isEmpty >> not) with
+ | [] -> Seq.empty
+ | xs -> xs |> List.reduce (fun acc elem -> seq { yield! acc; yield lineBreak; yield! elem })
+
// test helper
static member ProvideQuickInfo(checker:FSharpChecker, documentId:DocumentId, sourceText:SourceText, filePath:string, position:int, parsingOptions:FSharpParsingOptions, options:FSharpProjectOptions, textVersionHash:int, languageServicePerformanceOptions: LanguageServicePerformanceOptions) =
asyncMaybe {
@@ -181,9 +187,18 @@ type internal FSharpAsyncQuickInfoSource
| _ ->
let! symbolUse = checkFileResults.GetSymbolUseAtLocation (textLineNumber, symbol.Ident.idRange.EndColumn, textLine.ToString(), symbol.FullIsland, userOpName=FSharpQuickInfo.userOpName)
let! symbolSpan = RoslynHelpers.TryFSharpRangeToTextSpan (sourceText, symbol.Range)
- return res, symbolSpan, symbolUse.Symbol, symbol.Kind
+ return { StructuredText = res
+ Span = symbolSpan
+ Symbol = symbolUse.Symbol
+ SymbolKind = symbol.Kind }
}
+ static member BuildSingleQuickInfoItem (documentationBuilder:IDocumentationBuilder) (quickInfo:QuickInfo) =
+ let mainDescription, documentation, typeParameterMap, usage, exceptions = ResizeArray(), ResizeArray(), ResizeArray(), ResizeArray(), ResizeArray()
+ XmlDocumentation.BuildDataTipText(documentationBuilder, mainDescription.Add, documentation.Add, typeParameterMap.Add, usage.Add, exceptions.Add, quickInfo.StructuredText)
+ let docs = joinWithLineBreaks [documentation; typeParameterMap; usage; exceptions]
+ (mainDescription, docs)
+
interface IAsyncQuickInfoSource with
override __.Dispose() = () // no cleanup necessary
@@ -201,21 +216,14 @@ type internal FSharpAsyncQuickInfoSource
let! symbolUse, sigQuickInfo, targetQuickInfo = FSharpQuickInfo.getQuickInfo(checkerProvider.Checker, projectInfoManager, document, triggerPoint.Position, cancellationToken)
let getTrackingSpan (span:TextSpan) =
textBuffer.CurrentSnapshot.CreateTrackingSpan(span.Start, span.Length, SpanTrackingMode.EdgeInclusive)
- let lineBreak = TaggedTextOps.Literals.lineBreak
- let joinWithLineBreaks segments =
- match segments |> List.filter (Seq.isEmpty >> not) with
- | [] -> Seq.empty
- | xs -> xs |> List.reduce (fun acc elem -> seq { yield! acc; yield lineBreak; yield! elem })
match sigQuickInfo, targetQuickInfo with
| None, None -> return null
| Some quickInfo, None
| None, Some quickInfo->
- let mainDescription, documentation, typeParameterMap, usage, exceptions = ResizeArray(), ResizeArray(), ResizeArray(), ResizeArray(), ResizeArray()
- XmlDocumentation.BuildDataTipText(documentationBuilder, mainDescription.Add, documentation.Add, typeParameterMap.Add, usage.Add, exceptions.Add, quickInfo.StructuredText)
+ let mainDescription, docs = FSharpAsyncQuickInfoSource.BuildSingleQuickInfoItem documentationBuilder quickInfo
let imageId = Tokenizer.GetImageIdForSymbol(quickInfo.Symbol, quickInfo.SymbolKind)
let navigation = QuickInfoNavigation(statusBar, checkerProvider.Checker, projectInfoManager, document, symbolUse.RangeAlternate)
- let docs = joinWithLineBreaks [documentation; typeParameterMap; usage; exceptions]
let content = QuickInfoViewProvider.provideContent(imageId, mainDescription, docs, navigation)
let span = getTrackingSpan quickInfo.Span
return QuickInfoItem(span, content)
diff --git a/vsintegration/src/FSharp.LanguageService.Base/DocumentTask.cs b/vsintegration/src/FSharp.LanguageService.Base/DocumentTask.cs
index d6664bb6a5f81ed4d0416ee58e03c597c9e449c8..58855165b7cfb4bce9e9cb5b2dba816ef28b5c3f 100644
--- a/vsintegration/src/FSharp.LanguageService.Base/DocumentTask.cs
+++ b/vsintegration/src/FSharp.LanguageService.Base/DocumentTask.cs
@@ -89,7 +89,9 @@ internal static class UIThread {
#if DEBUG
StackTrace stackTrace = new StackTrace(true);
#endif
- ctxt.Post(delegate(object ignore)
+#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
+ ctxt.Post(delegate(object ignore)
+#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
{
UIThread.MustBeCalledFromUIThread();
ourUIQueue.Enqueue(action);
@@ -142,8 +144,10 @@ public static void RunSync(Action a)
Exception exn = null;
Debug.Assert(ctxt != null, "The SynchronizationContext must be captured before calling this method");
// Send on UI thread will execute immediately.
+#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
ctxt.Send(ignore =>
- {
+#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
+ {
try
{
UIThread.MustBeCalledFromUIThread();
@@ -167,28 +171,7 @@ public static void RunSync(Action a)
/// Local JoinableTaskContext
/// ensuring non-reentrancy.
///
- private static JoinableTaskContext jtc = null;
- private static JoinableTaskFactory JTF
- {
- get
- {
- if (jtc == null)
- {
- JoinableTaskContext j = null;
- if (VsTaskLibraryHelper.ServiceInstance == null)
- {
- j = new JoinableTaskContext();
- }
- else
- {
- j = ThreadHelper.JoinableTaskContext;
- }
- Interlocked.CompareExchange(ref jtc, j, null);
- }
-
- return jtc.Factory;
- }
- }
+ private static JoinableTaskFactory JTF => ThreadHelper.JoinableTaskContext.Factory;
///
/// Performs a callback on the UI thread and blocks until it is done, using the VS mechanism for
diff --git a/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj b/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj
index ce5cfed08aad89537129e64b83c626d9b3a20829..336ba963f5acacaf042df71b50441205d50401be 100644
--- a/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj
+++ b/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj
@@ -4,9 +4,8 @@
Library
- true
- false
$(NoWarn);1570;1574;1587;1591;3001,3002,3003
+ $(NoWarn);VSTHRD010
true
true
false
diff --git a/vsintegration/src/FSharp.LanguageService.Base/GlobalSuppressions.cs b/vsintegration/src/FSharp.LanguageService.Base/GlobalSuppressions.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cf5e76c97c53e15038146c87aee4fc83697e75c7
--- /dev/null
+++ b/vsintegration/src/FSharp.LanguageService.Base/GlobalSuppressions.cs
@@ -0,0 +1,7 @@
+
+// This file is used by Code Analysis to maintain SuppressMessage
+// attributes that are applied to this project.
+// Project-level suppressions either have no target or are given
+// a specific target and scoped to a namespace, type, member, etc.
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "VSSDK006:Check services exist")]
diff --git a/vsintegration/src/FSharp.LanguageService.Base/Source.cs b/vsintegration/src/FSharp.LanguageService.Base/Source.cs
index 0d23026239283689a8ed2d63974d245f6dfaded2..f46dc2f7eab64f5d80faa46cf55459b8ba8f5705 100644
--- a/vsintegration/src/FSharp.LanguageService.Base/Source.cs
+++ b/vsintegration/src/FSharp.LanguageService.Base/Source.cs
@@ -2141,7 +2141,9 @@ public int GetBestMatch(string textSoFar, int length, out int index, out uint fl
#endif
if (textSoFar != this.filterText)
{
+#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
System.Threading.SynchronizationContext.Current.Post((object state) =>
+#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
{
this.filterText = textSoFar;
if (this.textView != null)
diff --git a/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj b/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
index ccd97fff422c68e39040a6529bb07fd93009cb4e..29eee6ad1915ad93ca5b3e80c0630cebea1a1bca 100644
--- a/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
+++ b/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
@@ -5,8 +5,6 @@
net46
Library
- true
- false
$(NoWarn);75
true
true
@@ -71,6 +69,8 @@
+
+
@@ -79,6 +79,7 @@
+
diff --git a/vsintegration/src/FSharp.PatternMatcher/FSharp.PatternMatcher.csproj b/vsintegration/src/FSharp.PatternMatcher/FSharp.PatternMatcher.csproj
index 0ae980c70495bf064aea64ba28a293d8fe2279df..5005944c7fab5dd2196973a730a72b92dd24609b 100644
--- a/vsintegration/src/FSharp.PatternMatcher/FSharp.PatternMatcher.csproj
+++ b/vsintegration/src/FSharp.PatternMatcher/FSharp.PatternMatcher.csproj
@@ -5,6 +5,7 @@
Library
true
+ false
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/FileNode.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/FileNode.cs
index 97f9616ee88b2c0961948391d16472b3c385e6a9..ae4e1084d87797f337246ee930650a0e24f1a63f 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/FileNode.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/FileNode.cs
@@ -348,7 +348,9 @@ private static bool PromptYesNoWithYesSelected(string message, string title, OLE
{
Guid emptyGuid = Guid.Empty;
int result = 0;
+#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
ThreadHelper.Generic.Invoke(() =>
+#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
{
ErrorHandler.ThrowOnFailure(uiShell.ShowMessageBox(0u, ref emptyGuid, title, message, null, 0u, OLEMSGBUTTON.OLEMSGBUTTON_YESNO, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST, icon, 0, out result));
});
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/GlobalSuppressions.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/GlobalSuppressions.cs
index 2c77ef92ef4aec186476eaf94fa9bc485a3fc295..487279fd76776b386fb71752e183a26508b2588f 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/GlobalSuppressions.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/GlobalSuppressions.cs
@@ -306,3 +306,5 @@
[assembly: SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", Scope = "member", Target = "Microsoft.VisualStudio.Package.Web.WAUtilities.#MakeRelativePath(System.String,System.String)", MessageId = "System.String.StartsWith(System.String)")]
[assembly: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "Microsoft.VisualStudio.Package.Project.resources", MessageId = "dataset")]
[assembly: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "Microsoft.VisualStudio.Package.Project.resources", MessageId = "msbuild")]
+
+[assembly: SuppressMessage("Reliability", "VSSDK006:Check services exist")]
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectConfig.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectConfig.cs
index 41832e24b27dbefd242d73ffa0356f03ec871c6d..1bc6706dd2bff6fa81665f7a96e54037f7e28264 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectConfig.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectConfig.cs
@@ -1935,7 +1935,7 @@ public void Build(uint options, IVsOutputWindowPane output, string target)
if (!NotifyBuildBegin()) return;
try
{
- config.ProjectMgr.BuildAsync(options, this.config.ConfigCanonicalName, output, target, (result, projectInstance) =>
+ config.ProjectMgr.Build(options, this.config.ConfigCanonicalName, output, target, (result, projectInstance) =>
{
this.BuildCoda(new BuildResult(result, projectInstance), output, shouldRepaintReferences);
});
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs
index 79091e1fe6a5c72f6f7b79b08e8d517ae55d8bce..37f6af8e8e2fc658f19a6ada721b669c6382d2a0 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs
@@ -2156,7 +2156,7 @@ private void BuildCoda(IVsOutputWindowPane output, bool engineLogOnlyCritical)
BuildEngine.OnlyLogCriticalEvents = engineLogOnlyCritical;
}
}
- internal virtual void BuildAsync(uint vsopts, ConfigCanonicalName configCanonicalName, IVsOutputWindowPane output, string target, MSBuildCoda coda)
+ internal virtual void Build(uint vsopts, ConfigCanonicalName configCanonicalName, IVsOutputWindowPane output, string target, MSBuildCoda coda)
{
bool engineLogOnlyCritical = BuildPrelude(output);
MSBuildCoda fullCoda = (res,instance) =>
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj
index 462541e5ddee237e7cdf3d231a463f46d8a5858f..17a5023ae7c071ea53e5ebdb327562732ca73712 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj
@@ -5,9 +5,8 @@
Library
FSharp.ProjectSystem.Base
- true
- false
$(NoWarn),1570,1572,1573,1574,1591,3001,3002,3003,3005,3008,3009,3021,3024
+ $(NoWarn);VSTHRD010
$(DefineConstants);CODE_ANALYSIS
Microsoft.VisualStudio.FSharp.ProjectSystem
true
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/UIThread.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/UIThread.cs
index e35eccd131834e626cada67fc3ae4a60d9a93ca4..9692b409ba7132a4ea3c038e7f42563caedd08fc 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/UIThread.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/UIThread.cs
@@ -100,7 +100,9 @@ public static void Run(Action action)
#if DEBUG
StackTrace stackTrace = new StackTrace(true);
#endif
+#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
ctxt.Post(delegate (object ignore)
+#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
{
UIThread.MustBeCalledFromUIThread();
ourUIQueue.Enqueue(action);
@@ -153,7 +155,9 @@ public static void RunSync(Action a)
Exception exn = null;
Debug.Assert(ctxt != null, "The SynchronizationContext must be captured before calling this method");
// Send on UI thread will execute immediately.
+#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
ctxt.Send(ignore =>
+#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
{
try
{
@@ -178,28 +182,7 @@ public static void RunSync(Action a)
/// Local JoinableTaskContext
/// ensuring non-reentrancy.
///
- private static JoinableTaskContext jtc = null;
- private static JoinableTaskFactory JTF
- {
- get
- {
- if (jtc == null)
- {
- JoinableTaskContext j = null;
- if (VsTaskLibraryHelper.ServiceInstance == null)
- {
- j = new JoinableTaskContext();
- }
- else
- {
- j = ThreadHelper.JoinableTaskContext;
- }
- Interlocked.CompareExchange(ref jtc, j, null);
- }
-
- return jtc.Factory;
- }
- }
+ private static JoinableTaskFactory JTF => ThreadHelper.JoinableTaskContext.Factory;
///
/// Performs a callback on the UI thread and blocks until it is done, using the VS mechanism for
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/.gitignore b/vsintegration/src/FSharp.ProjectSystem.FSharp/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..dca31eb19ac3b680811d1da5910526c39d3f32f5
--- /dev/null
+++ b/vsintegration/src/FSharp.ProjectSystem.FSharp/.gitignore
@@ -0,0 +1 @@
+ctofiles/
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj b/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj
index 264584077efb007dfb2ffb0b632b5cec8a847c5c..548c5344550628aaab487021fe4161ba3bdd70ed 100644
--- a/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj
+++ b/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj
@@ -5,8 +5,6 @@
Library
FSharp.ProjectSystem.FSharp
- true
- false
$(NoWarn);52;62;75
true
true
@@ -24,13 +22,15 @@
- false
Menus.ctmenu
+ Designer
true
Microsoft.VisualStudio.FSharp.ProjectSystem.FSharpSR
true
+ VSPackage
+ Designer
@@ -91,7 +91,7 @@
-
+
@@ -108,4 +108,12 @@
+
+
+ <_GeneratedCTOFilesWithCulture Update="%(Identity)">
+ %(ResourceName).%(Culture)
+
+
+
+
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/source.extension.vsixmanifest b/vsintegration/src/FSharp.ProjectSystem.FSharp/source.extension.vsixmanifest
new file mode 100644
index 0000000000000000000000000000000000000000..c07a10b91263fd2893b81f72c47bef5e4435a3e6
--- /dev/null
+++ b/vsintegration/src/FSharp.ProjectSystem.FSharp/source.extension.vsixmanifest
@@ -0,0 +1,2 @@
+
+
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj
index a04064212fd69af1be14ffc9d3f29c3ac5dd7a98..7e105171e1a647c2a8fa78113d05d8950b054316 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj
@@ -1,46 +1,31 @@

-
-
+
- Debug
- $(ArtifactsBinDir)\$(MSBuildProjectName)\$(Configuration)\$(TargetFramework)
- AnyCPU
- 9.0.21022
- 2.0
- {FCFB214C-462E-42B3-91CA-FC557EFEE74F}
Library
+
+
true
FSharp.ProjectSystem.PropertyPages
true
- 512
- Windows
- On
- Binary
- On
- Off
_MYFORMS=True
false
41999,42016,42017,42018,42019,42020,42021,42022,42032,42036
40026;42105;42107;42353
win
- v4.6
-
-
- true
- false
- false
true
- true
- true
true
- true
false
+ false
+ true
+ v4.6
+
+
+
+
+ 2.0
+ {FCFB214C-462E-42B3-91CA-FC557EFEE74F}
-
-
-
-
@@ -51,15 +36,13 @@
-
-
+
-
@@ -70,16 +53,18 @@
+
-
-
+
+ {B700E38B-F8C0-4E49-B5EC-DB7B7AC0C4E7}
+ ProjectSystem.Base
+
-
@@ -274,11 +259,4 @@
-
-
- $(SuiteBinPath)\FSharp
-
-
-
-
-
+
\ No newline at end of file
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Application.Designer.vb b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Application.Designer.vb
index a6ad1d45105ccf60ca9bdce8a4e274b7e2563d06..88dd01c78a618d0cc7dbd9432b8267ed2ada0a6f 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Application.Designer.vb
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Application.Designer.vb
@@ -1,4 +1,12 @@
-' Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Settings.Designer.vb b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Settings.Designer.vb
index 88c922cb98c06515dd56031b40e4d0f4462a8139..3085cb235d097c5046e59ed84e09a681a4df313a 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Settings.Designer.vb
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/My Project/Settings.Designer.vb
@@ -1,4 +1,12 @@
-' Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
@@ -7,12 +15,12 @@ Option Explicit On
Namespace My
_
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
- Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings),MySettings)
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
@@ -21,7 +29,7 @@ Namespace My
Private Shared addedHandlerLockObject As New Object
_
- Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ApplicationPropPage.vb b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ApplicationPropPage.vb
index 692619c912bc153d25239c6acaf0d7c5ed54f554..4ada44f4e11c938636e1fe9337c6549ee835f9fc 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ApplicationPropPage.vb
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ApplicationPropPage.vb
@@ -569,8 +569,6 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
''' Fill up the allowed values in the target framework listbox
'''
'''
-
- 'REVIEW: Are the periods in my version strings culture-safe?
Private Function ValidateTargetFrameworkMoniker(ByVal moniker As String) As Boolean
If moniker = "" Or moniker = Nothing Then
Return False
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/BuildPropPage.vb b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/BuildPropPage.vb
index 5df1d15135315b25093f90a4074ce7974f341467..160a550abe2ff146b7d9db05a5859e918a208f4b 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/BuildPropPage.vb
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/BuildPropPage.vb
@@ -93,7 +93,7 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
Private components As System.ComponentModel.IContainer
'PERF: A note about the labels used as lines. The 3D label is being set to 1 px high,
- ' so you’re really only using the grey part of it. Using BorderStyle.Fixed3D seems
+ ' so you�re really only using the grey part of it. Using BorderStyle.Fixed3D seems
' to fire an extra resize OnHandleCreated. The simple solution is to use BorderStyle.None
' and BackColor = SystemColors.ControlDark.
@@ -645,7 +645,7 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
End If
' Remove the project directory path
- If String.Compare(BasePath, Microsoft.VisualBasic.Strings.Left(DirectoryPath, Len(BasePath)), StringComparison.OrdinalIgnoreCase) = 0 Then
+ If String.Compare(BasePath, VisualBasic.Left(DirectoryPath, Len(BasePath)), StringComparison.OrdinalIgnoreCase) = 0 Then
Dim ch As Char = CChar(Mid(DirectoryPath, Len(BasePath), 1))
If ch = System.IO.Path.DirectorySeparatorChar OrElse ch = System.IO.Path.AltDirectorySeparatorChar Then
RelativePath = Mid(DirectoryPath, Len(BasePath) + 1)
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/PropPageUserControlBase.vb b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/PropPageUserControlBase.vb
index 486024fff2dd0f88a23e507dfccc483cd8d1735d..bbe32c6fde2c3774ed991f57ca7543e8c2708e4e 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/PropPageUserControlBase.vb
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/PropPageUserControlBase.vb
@@ -3378,7 +3378,7 @@ NextControl:
End If
' Remove the project directory path
- If String.Compare(BasePath, Microsoft.VisualBasic.Strings.Left(DirectoryPath, Len(BasePath)), StringComparison.OrdinalIgnoreCase) = 0 Then
+ If String.Compare(BasePath, VisualBasic.Left(DirectoryPath, Len(BasePath)), StringComparison.OrdinalIgnoreCase) = 0 Then
Dim ch As Char = CChar(Mid(DirectoryPath, Len(BasePath), 1))
If ch = System.IO.Path.DirectorySeparatorChar OrElse ch = System.IO.Path.AltDirectorySeparatorChar Then
RelativePath = Mid(DirectoryPath, Len(BasePath) + 1)
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ReferencePathsPropPage.vb b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ReferencePathsPropPage.vb
index f1c0e62b298652fabc6f992e0b00186c14676491..5b630c65720dec1f659776c85c04ed8098a03f08 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ReferencePathsPropPage.vb
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ReferencePathsPropPage.vb
@@ -523,7 +523,7 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
End If
' Remove the project directory path
- If String.Compare(BasePath, Microsoft.VisualBasic.Strings.Left(DirectoryPath, Len(BasePath)), StringComparison.OrdinalIgnoreCase) = 0 Then
+ If String.Compare(BasePath, VisualBasic.Left(DirectoryPath, Len(BasePath)), StringComparison.OrdinalIgnoreCase) = 0 Then
Dim ch As Char = CChar(Mid(DirectoryPath, Len(BasePath), 1))
If ch = System.IO.Path.DirectorySeparatorChar OrElse ch = System.IO.Path.AltDirectorySeparatorChar Then
RelativePath = Mid(DirectoryPath, Len(BasePath) + 1)
diff --git a/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj b/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj
index dd0c543cb5436beaf26254c9c91ad56ec8dbbe2a..f5ad99e17963008a208e1387f7ff8e3921d7e45d 100644
--- a/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj
+++ b/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj
@@ -6,7 +6,7 @@
Library
$(NoWarn);1591
Microsoft.VisualStudio.FSharp.UIResources
- $(NoWarn);1591
+ false
@@ -31,6 +31,9 @@
True
Strings.resx
+
+ FormattingOptionsControl.xaml
+
@@ -48,19 +51,6 @@
-
-
- True
- True
- Strings.resx
-
-
-
-
- PublicResXFileCodeGenerator
- Strings.Designer.cs
-
-
$(VS150COMNTOOLS)\..\..\MSBuild\$(VisualStudioVersion)\Bin
diff --git a/vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj b/vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj
index ff45634d03218d6f1c2cf6d6a192c89b27b9de50..24c46b5b96f70f85c1f06bd84359c500c1dda2fb 100644
--- a/vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj
+++ b/vsintegration/src/FSharp.VS.FSI/FSharp.VS.FSI.fsproj
@@ -4,8 +4,6 @@
Library
- true
- false
$(NoWarn);47;75
true
true
diff --git a/vsintegration/tests/GetTypesVSUnitTests/GetTypesVSUnitTests.fs b/vsintegration/tests/GetTypesVS.UnitTests/GetTypesVS.UnitTests.fs
similarity index 100%
rename from vsintegration/tests/GetTypesVSUnitTests/GetTypesVSUnitTests.fs
rename to vsintegration/tests/GetTypesVS.UnitTests/GetTypesVS.UnitTests.fs
diff --git a/vsintegration/tests/GetTypesVSUnitTests/GetTypesVSUnitTests.fsproj b/vsintegration/tests/GetTypesVS.UnitTests/GetTypesVS.UnitTests.fsproj
similarity index 92%
rename from vsintegration/tests/GetTypesVSUnitTests/GetTypesVSUnitTests.fsproj
rename to vsintegration/tests/GetTypesVS.UnitTests/GetTypesVS.UnitTests.fsproj
index 68470cf046d7e650853bd3626cc554c64b2eaefe..76980662ccd942977e0d49683062d6886cb41221 100644
--- a/vsintegration/tests/GetTypesVSUnitTests/GetTypesVSUnitTests.fsproj
+++ b/vsintegration/tests/GetTypesVS.UnitTests/GetTypesVS.UnitTests.fsproj
@@ -4,7 +4,9 @@
net46
+ x86
Library
+ $(NoWarn);3005
true
true
false
@@ -15,8 +17,7 @@
-
-
+
diff --git a/vsintegration/tests/GetTypesVSUnitTests/App.config b/vsintegration/tests/GetTypesVSUnitTests/App.config
deleted file mode 100644
index 274bc3450a363d3a0bfb6070c7ecffa43488ba51..0000000000000000000000000000000000000000
--- a/vsintegration/tests/GetTypesVSUnitTests/App.config
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vsintegration/tests/MockTypeProviders/Directory.Build.props b/vsintegration/tests/MockTypeProviders/Directory.Build.props
index a1295702c08a27c7e1b93cbe154460cbc7fee7cd..12ae9770dd0ac0164145a6ae73639db6353a1c46 100644
--- a/vsintegration/tests/MockTypeProviders/Directory.Build.props
+++ b/vsintegration/tests/MockTypeProviders/Directory.Build.props
@@ -1,7 +1,7 @@
-
+
false
diff --git a/vsintegration/tests/MockTypeProviders/Directory.Build.targets b/vsintegration/tests/MockTypeProviders/Directory.Build.targets
index 4bc8389ec97d4fb6709bfb127a2df44b33c051bd..a15fbc0995b56a85de9605e401e494319a741d87 100644
--- a/vsintegration/tests/MockTypeProviders/Directory.Build.targets
+++ b/vsintegration/tests/MockTypeProviders/Directory.Build.targets
@@ -1,4 +1,4 @@
-
+
diff --git a/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj b/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj
index 6552af446425fe4e6a562c986cbe486d8b66e73e..5564f3a7bcbc6fd8de3f6adab8a94281fa14c69e 100644
--- a/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj
+++ b/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj
@@ -61,6 +61,7 @@
+
diff --git a/vsintegration/tests/UnitTests/App.config b/vsintegration/tests/UnitTests/App.config
index 34d853e9f43ae52cff862f6b9c1c695169c8ca29..75d99e7329bc043840758e537b7bbad8fc34e6ab 100644
--- a/vsintegration/tests/UnitTests/App.config
+++ b/vsintegration/tests/UnitTests/App.config
@@ -6,7 +6,7 @@
-
+
diff --git a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.ParameterInfo.fs b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.ParameterInfo.fs
index 06b42d32efce2dd2f69515f0f5d79b8f31c993f5..0f4271beae3e83f7843da33ac01e95269db13903 100644
--- a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.ParameterInfo.fs
+++ b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.ParameterInfo.fs
@@ -2031,25 +2031,6 @@ We really need to rewrite some code paths here to use the real parse tree rather
end"""
this.VerifyNoParameterInfoAtStartOfMarker(fileContents,"(*Mark*)")
- (* Project ref method for multi-parameterinfo tests ----------------------------------------------- *)
-
- []
- member public this.``Multi.ReferenceToProjectLibrary``() =
- use _guard = this.UsingNewVS()
- let solution = this.CreateSolution()
- let project1 = CreateProject(solution, "FSharpLib")
- let project2 = CreateProject(solution, "FSharpPro")
- AddProjectReference(project2,project1)
- let _ = AddFileFromText(project1, "file1.fs", ["namespace Test";"type public Foo() = class";" static member Sum(x:int,y:int) = x+y";"end"])
- let result1 = Build(project1)
- AddFileFromText(project2, "file2.fs", ["open Test";"Foo.Sum(12,(*Mark*)"]) |> ignore
- let result2 = Build(project2)
- let file = OpenFile(project2, "file2.fs")
- MoveCursorToStartOfMarker(file, "(*Mark*)")
-
- let methodstr = GetParameterInfoAtCursor(file)
- AssertMethodGroupContain(methodstr,["int";"int"])
-
(* Regression tests/negative tests for multi-parameterinfos --------------------------------------- *)
// To be added when the bugs are fixed...
[]
diff --git a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.QuickInfo.fs b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.QuickInfo.fs
index 267943da1d3e8ca22f992f09699ea9ef3c9e90d0..16d2f34a4e810c2ac0cee5271ed5a86e4a900322 100644
--- a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.QuickInfo.fs
+++ b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.QuickInfo.fs
@@ -3171,113 +3171,6 @@ query."
("(*Marker4*)", "Gets and sets X")]
this.VerifyUsingFsTestLib fileContent queries false
- []
- member public this.``Automation.EnumDUInterfacefromFSBrowse``() =
- let fileContent ="""module Test
-
- open FSTestLib
-
- type MyTestType() =
- []
- val mutable field : int
-
- interface IMyInterface with
- member this.Represent () = "Implement Interface"
-
- []
- let Main (args : string []) =
- let MyEnumFieldSeq =
- seq {
- for i in 1..10 do
- // TC 14 Field Enum F# Browse Comp Expression
- let myEnumField = MyColors.Red(*Marker1*)
- yield myEnumField
- }
-
- let MyDUList = (fun x ->
- match x%3 with
- //TC 15 Self DiscUnion F# Browse Lambda
- | 0 -> MyDistance(*Marker2*).Kilometers
- | 1 -> MyDistance.Miles
- | _ -> MyDistance.NauticalMiles
- )
-
-
-
- //TC 16 Method Interface F# Browse Lambda
- let resultString = new MyTestType()
- |> fun (x : MyTestType) -> x :> IMyInterface
- |> fun (x : IMyInterface) -> x.Represent(*Marker3*)
- 0"""
- let queries = [("(*Marker1*)", "Red: MyColors = 0");
- ("(*Marker2*)", "type MyDistance =");
-// ("(*Marker2*)", "DocComment: This is my discriminated union type"); //Fail: due to DocComments
- ("(*Marker2*)", "Full name: FSTestLib.MyDistance");
-// ("(*Marker3*)", "DocComment: abstract method in Interface"); //Fail: due to DocComments
- ("(*Marker3*)", "abstract member IMyInterface.Represent : unit -> string")
- ]
- this.VerifyUsingFsTestLib fileContent queries true
-
- []
- member public this.``Automation.RecordAndInterfaceFromFSProj``() =
- let fileContent ="""module Test
-
- open FSTestLib
-
- let construct =
- seq {
- for i in 1..10 do
- // TC23 - Testing "Record" type from "F# P2P" inside "Comp Expression"
- let a = MyEmployee(*Marker1*).MakeDummy()
- a.Name <- "Emp" + i.ToString()
- a.Age <- 20 + i
- a.IsFTE <- System.Convert.ToBoolean(System.Random().Next(2))
-
- // TC25 - Testing "Identifier" of "Record" type from "F# P2P" inside "Quotation"
- let b = <@ a(*Marker2*).Name @>
-
- yield a
- }
-
- // TC27 - Testing "Field/Method" of "Record" type from "F# P2P" inside "Lambda"
- let fte_count =
- construct
- |> Seq.filter (fun a -> a.IsFTE(*Marker3*))
- |> Seq.mapi (fun i a -> i.ToString() + a.ToString(*Marker4*)() )
- |> Seq.length
-
- // TC24 - Testing "Identifier" of "Interface" type from "F# P2P" inside "Pattern Matching"
- type MyTestType() =
- []
- val mutable x : int
-
- interface IMyInterface with
- member this.Represent () = this.x.ToString()
-
- let res =
- seq { yield MyTestType()
- yield Unchecked.defaultof }
- |> Seq.map (fun a ->
- let myItf = a :> IMyInterface
- match myItf with
- | x when x = Unchecked.defaultof -> ""
- | itf(*Marker5*) -> itf.Represent() )
- |> Seq.filter (fun s -> s.Length > 0)
- |> Seq.length
- |> (=) 1"""
- let queries = [("(*Marker1*)", "type MyEmployee =");
- ("(*Marker1*)", "mutable IsFTE: bool;");
-// ("(*Marker1*)", "DocComment: This is my record type."); //Fail: due to DocComments
- // ("(*Marker1*)", "Full name: FSTestLib.MyEmployee"); // removed from declaration infos
- // ("(*Marker1*)", "implements: System.IComparable"); // removed from declaration infos
- ("(*Marker2*)", "val a : MyEmployee");
-// ("(*Marker2*)", "implements: System.IComparable"); // removed from declaration infos
- ("(*Marker3*)", "MyEmployee.IsFTE: bool");
-// ("(*Marker3*)", "Indicates whether the employee is full time or not"); //Fail: due to DocComments
- ("(*Marker5*)", "val itf : IMyInterface")
- ]
- this.VerifyUsingFsTestLib fileContent queries true
-
[]
member public this.``Automation.StructDelegateDUfromOwnCode``() =
let fileContent ="""module Test
@@ -3373,105 +3266,6 @@ query."
]
this.VerifyUsingFsTestLib fileContent queries false
- []
- member public this.``Automation.TupleRecordfromFSBrowse``() =
- let fileContent ="""module Test
-
- open FSTestLib
-
- let GenerateTuple = fun x -> let tuple = (x,x.ToString(),(float)x, ( fun y -> (y.ToString(),y+1)) )
- // TC 19 Identifier Tuple F# Browse Lambda
- tuple(*Marker3*)
- let MyTupleSeq =
- seq {
- for i in 1..9 do
- // TC 17 Identifier Tuple F# Browse Comp Expression
- let myTuple(*Marker1*) = GenerateTuple i
- yield myTuple
- }
-
- let GetTupleMethod tuple=
- let (intInTuple,stringInTuple,floatInTuple,methodInTuple) = tuple
- methodInTuple
-
- // TC 20 method Tuple F# Browse Quotation
- let methodSeq(*Marker4*) = Seq.map GetTupleMethod MyTupleSeq
-
- let RecordArray =
- [| for x in 1..5
- // TC 18 Method Record F# Browse Imperative
- -> MyEmployee.MakeDummy(*Marker2*)()|]"""
- let queries = [("(*Marker1*)", "val myTuple : int * string * float * (int -> string * int)");
- ("(*Marker2*)", "static member MyEmployee.MakeDummy : unit -> MyEmployee");
- // ("(*Marker2*)", "DocComment: Method"); //FAIL due to DocComment.
- ("(*Marker3*)", "val tuple : int * string * float * (int -> string * int)");
- ("(*Marker4*)", "val methodSeq : seq<(int -> string * int)>");
- ("(*Marker4*)", "Full name: Test.methodSeq")
- ]
- this.VerifyUsingFsTestLib fileContent queries true
-
- []
- member public this.``Automation.UnionAndStructFromFSProj``() =
- let fileContent ="""module Test
-
- open FSTestLib
-
- []
- let Main (args : string []) =
- let p1 = FSTestLib.MyPoint(1.0, 2.0)
- let (p2 : FSTestLib.MyPoint) = FSTestLib.MyPoint(2.0, 3.0)
-
- // TODO: Add active pattern testing
- let TC21 =
- // TC21 - Testing "Identifier" of "Struct" type from "F# P2P" inside "Pattern Matching"
- match p1(*Marker1*) + p2 with
- | p3(*Marker2*) when p3.X = 4.0 -> p2.Len
- | _ as (*Marker3*)Res -> Res.Len
-
- let TCs () =
- let toSun = Kilometers 149597892.0
-
- // TC22 - Testing "Identifier" of "Union" type from "F# P2P" inside "Imperative" context
- if MyDistance.toMiles toSun(*Marker4*) > toSun then
- failwith "Distance in miles can't be bigger than in kilometers."
-
- let distances : MyDistance list = [toSun; toSun.toNautical; MyDistance.toMiles toSun];
- for element(*Marker5*) in distances do
- ()
-
- // TC28 - Testing "Method" of "Union" type from "F# P2P" inside "Pattern Matching"
- match MyDistance.toMiles(*Marker6*) toSun with
- | Miles x ->
- toSun.IncreaseBy(*Marker7*) 1.0
- |> sprintf "Such a distance to Earth [%A] would mean end of world!" |> ignore
- | _ ->
- failwith "the previos method should have returned Miles type"
-
- // TC26 - Testing "Property" of "Union" type from "F# P2P" inside "Comp Expression"
- async {
- let res = toSun.toNautical(*Marker8*)
- return res
- }
- 0"""
- let queries = [("(*Marker1*)", "val p1 : MyPoint");
- //("(*Marker1*)", "implements: System.IComparable");
- ("(*Marker2*)", "val p3 : MyPoint");
- //("(*Marker2*)", "type: MyPoint");
- //("(*Marker2*)", "inherits: System.ValueType");
- ("(*Marker4*)", "val toSun : MyDistance");
- //("(*Marker4*)", "type: MyDistance");
- //("(*Marker4*)", "implements: System.IComparable");
- ("(*Marker5*)", "val element : MyDistance");
- //("(*Marker5*)", "type: MyDistance");
- ("(*Marker6*)", "static member MyDistance.toMiles : x:MyDistance -> MyDistance");
-// ("(*Marker6*)", "DocComment: Static Method"); //FAIL due to DocComment
- ("(*Marker7*)", "member MyDistance.IncreaseBy : dist:float -> MyDistance");
-// ("(*Marker7*)", "DocComment: Method"); //FAIL due to DocComment
- ("(*Marker8*)", "property MyDistance.toNautical: MyDistance");
-// ("(*Marker8*)", "DocComment: Property"); //FAIL due to DocComment
- ]
- this.VerifyUsingFsTestLib fileContent queries true
-
(*------------------------------------------IDE Query automation start -------------------------------------------------*)
member private this.AssertQuickInfoInQuery(code: string, mark : string, expectedstring : string) =
diff --git a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.Script.fs b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.Script.fs
index cb5c4da346e67f77900d6bdd0acef4794e9acce0..cd1589117ad335a9aa9ce797df99cb1afbdb0df6 100644
--- a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.Script.fs
+++ b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.Script.fs
@@ -1337,21 +1337,18 @@ type UsingMSBuild() as this =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
let project = CreateProject(solution,"testproject")
- let fsVersion = "10.2.3.0"
let binariesFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
PlaceIntoProjectFileBeforeImport
(project, sprintf @"
-
- True
+
%s\\FSharp.Compiler.Interactive.Settings.dll
-
- True
+
%s\\FSharp.Compiler.Private.dll
- " fsVersion binariesFolder fsVersion binariesFolder)
+ " binariesFolder binariesFolder)
let fsx = AddFileFromTextEx(project,"Script.fsx","Script.fsx",BuildAction.Compile,
["let x = fsi.CommandLineArgs"])
diff --git a/vsintegration/tests/UnitTests/LegacyProjectSystem/Tests.ProjectSystem.References.fs b/vsintegration/tests/UnitTests/LegacyProjectSystem/Tests.ProjectSystem.References.fs
index 81b6b55ccb8b96c2d74aee8f2ae9a7f3c9b91aee..0727925db6f3c91cbde1773bb8e3d31f985dc041 100644
--- a/vsintegration/tests/UnitTests/LegacyProjectSystem/Tests.ProjectSystem.References.fs
+++ b/vsintegration/tests/UnitTests/LegacyProjectSystem/Tests.ProjectSystem.References.fs
@@ -248,6 +248,7 @@ type References() =
with e ->
TheTests.HelpfulAssertMatches ' ' "A reference to '.*' could not be added. A reference to the component '.*' already exists in the project." e.Message
+ []
[]
member public this.``ReferenceResolution.Bug650591.AutomationReference.Add.FullPath``() =
match Net20AssemExPath() with
diff --git a/vsintegration/tests/UnitTests/ProjectOptionsBuilder.fs b/vsintegration/tests/UnitTests/ProjectOptionsBuilder.fs
new file mode 100644
index 0000000000000000000000000000000000000000..1d3df25165f6ccd0275bbbcdd48cd1e292176b0c
--- /dev/null
+++ b/vsintegration/tests/UnitTests/ProjectOptionsBuilder.fs
@@ -0,0 +1,140 @@
+namespace VisualFSharp.UnitTests.Roslyn
+
+open System
+open System.IO
+open System.Xml.Linq
+open FSharp.Compiler.SourceCodeServices
+
+type FSharpProject =
+ {
+ Directory: string
+ Options: FSharpProjectOptions
+ Files: (string * string) list
+ }
+
+ /// Strips cursor information from each file and returns the name and cursor position of the last file to specify it.
+ member this.GetCaretPosition () =
+ let caretSentinel = "$$"
+ let mutable cursorInfo: (string * int) = (null, 0)
+ this.Files
+ |> List.iter (fun (name, contents) ->
+ // find the '$$' sentinel that represents the cursor location
+ let caretPosition = contents.IndexOf(caretSentinel)
+ if caretPosition >= 0 then
+ let newContents = contents.Substring(0, caretPosition) + contents.Substring(caretPosition + caretSentinel.Length)
+ File.WriteAllText(Path.Combine(this.Directory, name), newContents)
+ cursorInfo <- (name, caretPosition))
+ cursorInfo
+ interface IDisposable with
+ member this.Dispose() =
+ // delete each source file
+ this.Files
+ |> List.iter (fun (path, _contents) -> File.Delete(path))
+ // delete the directory
+ Directory.Delete(this.Directory)
+ // project file doesn't really exist, nothing to delete
+ ()
+
+[]
+module internal ProjectOptionsBuilder =
+ let private FileName = XName.op_Implicit "File"
+ let private NameName = XName.op_Implicit "Name"
+ let private ProjectName = XName.op_Implicit "Project"
+ let private ReferenceName = XName.op_Implicit "Reference"
+
+ let private CreateSingleProjectFromMarkup(markup:XElement) =
+ if markup.Name.LocalName <> "Project" then failwith "Expected root node to be "
+ let projectRoot = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString())
+ if Directory.Exists(projectRoot) then Directory.Delete(projectRoot, true)
+ Directory.CreateDirectory(projectRoot) |> ignore
+ let files = // filename -> fileContents
+ markup.Elements(FileName)
+ |> Seq.map (fun file ->
+ let fileName = Path.Combine(projectRoot, file.Attribute(NameName).Value)
+ let fileContents = file.Value
+ File.WriteAllText(fileName, fileContents)
+ (fileName, fileContents))
+ |> List.ofSeq
+ let options =
+ {
+ ProjectFileName = Path.Combine(projectRoot, markup.Attribute(NameName).Value)
+ ProjectId = None
+ SourceFiles = files |> Seq.map fst |> Array.ofSeq
+ ReferencedProjects = [||] // potentially filled in later
+ OtherOptions = [||]
+ IsIncompleteTypeCheckEnvironment = true
+ UseScriptResolutionRules = false
+ LoadTime = DateTime.MaxValue
+ OriginalLoadReferences = []
+ UnresolvedReferences = None
+ ExtraProjectInfo = None
+ Stamp = None
+ }
+ {
+ Directory = projectRoot
+ Options = options
+ Files = files
+ }
+
+ let private CreateMultipleProjectsFromMarkup(markup:XElement) =
+ if markup.Name.LocalName <> "Projects" then failwith "Expected root node to be "
+ let projectsAndXml =
+ markup.Elements(ProjectName)
+ |> Seq.map (fun xml -> (CreateSingleProjectFromMarkup xml, xml))
+ |> List.ofSeq
+ // setup project references
+ let projectMap =
+ projectsAndXml
+ |> List.map (fun (projectOptions, _xml) ->
+ let normalizedProjectName = Path.GetFileName(projectOptions.Options.ProjectFileName)
+ (normalizedProjectName, projectOptions))
+ |> Map.ofList
+ let projects =
+ projectsAndXml
+ |> List.map(fun (projectOptions, xml) ->
+ // bind references to their `FSharpProjectOptions` counterpart
+ let referenceList =
+ xml.Elements(ReferenceName)
+ |> Seq.map (fun reference -> reference.Value)
+ |> Seq.fold (fun list reference -> reference :: list) []
+ |> List.rev
+ |> List.map (fun referencedProject ->
+ let project = projectMap.[referencedProject]
+ let asmName = Path.GetFileNameWithoutExtension(project.Options.ProjectFileName)
+ let binaryPath = Path.Combine(project.Directory, "bin", asmName + ".dll")
+ (binaryPath, project.Options))
+ |> Array.ofList
+ let binaryRefs =
+ referenceList
+ |> Array.map fst
+ |> Array.map (fun r -> "-r:" + r)
+ let otherOptions = Array.append projectOptions.Options.OtherOptions binaryRefs
+ { projectOptions with
+ Options = { projectOptions.Options with
+ ReferencedProjects = referenceList
+ OtherOptions = otherOptions
+ }
+ })
+ let rootProject = List.head projects
+ rootProject
+
+ let CreateProjectFromMarkup(markup:XElement) =
+ match markup.Name.LocalName with
+ | "Project" -> CreateSingleProjectFromMarkup markup
+ | "Projects" -> CreateMultipleProjectsFromMarkup markup
+ | name -> failwith <| sprintf "Unsupported root node name: %s" name
+
+ let CreateProject(markup:string) =
+ XDocument.Parse(markup).Root
+ |> CreateProjectFromMarkup
+
+ let SingleFileProject(code:string) =
+ code
+ |> sprintf @"
+
+
+
+
+
+"
+ |> CreateProject
diff --git a/vsintegration/tests/UnitTests/QuickInfoTests.fs b/vsintegration/tests/UnitTests/QuickInfoTests.fs
new file mode 100644
index 0000000000000000000000000000000000000000..19d140de88bf6f54c66b74d195b502736031d365
--- /dev/null
+++ b/vsintegration/tests/UnitTests/QuickInfoTests.fs
@@ -0,0 +1,445 @@
+namespace Microsoft.VisualStudio.FSharp.Editor.Tests.Roslyn
+
+open System.IO
+open FSharp.Compiler.SourceCodeServices
+open Microsoft.CodeAnalysis
+open Microsoft.CodeAnalysis.Text
+open Microsoft.VisualStudio.FSharp.Editor
+open NUnit.Framework
+open UnitTests.TestLib.LanguageService
+open VisualFSharp.UnitTests.Roslyn
+
+[]
+module QuickInfo =
+
+let internal GetQuickInfo (project:FSharpProject) (fileName:string) (caretPosition:int) =
+ async {
+ let code = File.ReadAllText(fileName)
+ let sourceText = SourceText.From(code)
+ let documentId = DocumentId.CreateNewId(ProjectId.CreateNewId()) // only used for caching purposes
+ return! FSharpAsyncQuickInfoSource.ProvideQuickInfo(checker, documentId, sourceText, fileName, caretPosition, FSharpParsingOptions.Default, project.Options, 0, LanguageServicePerformanceOptions.Default)
+ } |> Async.RunSynchronously
+
+let GetQuickInfoText (project:FSharpProject) (fileName:string) (caretPosition:int) =
+ let sigHelp = GetQuickInfo project fileName caretPosition
+ match sigHelp with
+ | Some (quickInfo) ->
+ let documentationBuilder =
+ { new IDocumentationBuilder with
+ override __.AppendDocumentationFromProcessedXML(_, _, _, _, _, _) = ()
+ override __.AppendDocumentation(_, _, _, _, _, _, _) = ()
+ }
+ let mainDescription, docs = FSharpAsyncQuickInfoSource.BuildSingleQuickInfoItem documentationBuilder quickInfo
+ let mainTextItems =
+ mainDescription
+ |> Seq.map (fun x -> x.Text)
+ let docTextItems =
+ docs
+ |> Seq.map (fun x -> x.Text)
+ System.String.Join(System.String.Empty, (Seq.concat [mainTextItems; docTextItems]))
+ | _ -> ""
+
+let GetQuickInfoTextFromCode (code:string) =
+ use project = SingleFileProject code
+ let fileName, caretPosition = project.GetCaretPosition()
+ GetQuickInfoText project fileName caretPosition
+
+let expectedLines (lines:string list) = System.String.Join("\n", lines)
+
+// migrated from legacy test
+[]
+let ``Automation.EnumDUInterfacefromFSBrowse.InsideComputationExpression`` () =
+ let code = """
+namespace FsTest
+
+type MyColors =
+ | Red = 0
+ | Green = 1
+ | Blue = 2
+
+module Test =
+ let test() =
+ let x =
+ seq {
+ for i in 1..10 do
+ let f = MyColors.Re$$d
+ yield f
+ }
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "MyColors.Red: MyColors = 0"
+ Assert.AreEqual(expected, quickInfo)
+
+// migrated from legacy test
+[]
+let ``Automation.EnumDUInterfacefromFSBrowse.InsideMatch`` () =
+ let code = """
+namespace FsTest
+
+type MyDistance =
+ | Kilometers of float
+ | Miles of float
+ | NauticalMiles of float
+
+module Test =
+ let test() =
+ let myDuList = (fun x ->
+ match x with
+ | 0 -> MyDistanc$$e.Kilometers
+ | 1 -> MyDistance.Miles
+ | _ -> MyDistance.NauticalMiles
+ )
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected =
+ expectedLines [ "type MyDistance ="
+ " | Kilometers of float"
+ " | Miles of float"
+ " | NauticalMiles of float"
+ "Full name: FsTest.MyDistance" ]
+ Assert.AreEqual(expected, quickInfo)
+
+// migrated from legacy test
+[]
+let ``Automation.EnumDUInterfacefromFSBrowse.InsideLambda`` () =
+ let code = """
+namespace FsTest
+
+type IMyInterface =
+ interface
+ abstract Represent : unit -> string
+ end
+
+type MyTestType() =
+ []
+ val mutable field : int
+
+ interface IMyInterface with
+ member this.Represent () = "Implement Interface"
+
+module Test =
+ let test() =
+ let s = new MyTestType()
+ |> fun (x:MyTestType) -> x :> IMyInterface
+ |> fun (x:IMyInterface) -> x.Represen$$t()
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "abstract member IMyInterface.Represent : unit -> string"
+ Assert.AreEqual(expected, quickInfo)
+
+// migrated from legacy test
+[]
+let ``Automation.RecordAndInterfaceFromFSProj.InsideComputationExpression``() =
+ let code = """
+namespace FsTest
+
+type MyEmployee =
+ { mutable Name : string;
+ mutable Age : int;
+ mutable IsFTE : bool }
+
+module Test =
+ let test() =
+ let construct =
+ seq {
+ for i in 1..10 do
+ let a = MyEmploye$$e.MakeDummy()
+ ()
+ }
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected =
+ expectedLines [ "type MyEmployee ="
+ " {mutable Name: string;"
+ " mutable Age: int;"
+ " mutable IsFTE: bool;}"
+ "Full name: FsTest.MyEmployee" ]
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.RecordAndInterfaceFromFSProj.InsideQuotation``() =
+ let code = """
+namespace FsTest
+
+type MyEmployee =
+ { mutable Name : string;
+ mutable Age : int;
+ mutable IsFTE : bool }
+
+module Test =
+ let test() =
+ let aa = { Name: "name";
+ Age: 1;
+ IsFTE: false; }
+ let b = <@ a$$a.Name @>
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val aa : MyEmployee"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.RecordAndInterfaceFromFSProj.InsideLambda``() =
+ let code = """
+namespace FsTest
+
+type MyEmployee =
+ { mutable Name : string;
+ mutable Age : int;
+ mutable IsFTE : bool }
+
+module Test =
+ let test() =
+ let aa = { Name: "name";
+ Age: 1;
+ IsFTE: false; }
+ let b =
+ [ aa ]
+ |> List.filter (fun e -> e.IsFT$$E)
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "MyEmployee.IsFTE: bool"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.TupleRecordFromFSBrowse.InsideComputationExpression``() =
+ let code = """
+namespace FsTest
+
+module Test =
+ let GenerateTuple =
+ fun x ->
+ let tuple = (x, x.ToString(), (float)x, (fun y -> (y.ToString(), y + 1)))
+ tuple
+ let test() =
+ let mySeq =
+ seq {
+ for i in 1..9 do
+ let my$$Tuple = GenerateTuple i
+ yield myTuple
+ }
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val myTuple : int * string * float * (int -> string * int)"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.TupleRecordFromFSBrowse.SequenceOfMethods``() =
+ let code = """
+namespace FsTest
+
+module Test =
+ let GenerateTuple =
+ fun x ->
+ let tuple = (x, x.ToString(), (float)x, (fun y -> (y.ToString(), y + 1)))
+ tuple
+ let GetTupleMethod tuple =
+ let (_intInTuple, _stringInTuple, _floatInTuple, methodInTuple) = tuple
+ methodInTuple
+ let test() =
+ let mySeq =
+ seq {
+ for i in 1..9 do
+ let myTuple = GenerateTuple i
+ yield myTuple
+ }
+ let method$$Seq = Seq.map GetTupleMethod mySeq
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val methodSeq : seq<(int -> string * int)>"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.MatchExpression``() =
+ let code = """
+namespace FsTest
+
+[]
+type MyPoint(x:int, y:int) =
+ member this.X = x
+ member this.Y = y
+
+module Test =
+ let test() =
+ let p1 = MyPoint(1, 2)
+ match p$$1 with
+ | p3 when p3.X = 1 -> 0
+ | _ -> 1
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val p1 : MyPoint"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.MatchPattern``() =
+ let code = """
+namespace FsTest
+
+[]
+type MyPoint(x:int, y:int) =
+ member this.X = x
+ member this.Y = y
+
+module Test =
+ let test() =
+ let p1 = MyPoint(1, 2)
+ match p1 with
+ | p$$3 when p3.X = 1 -> 0
+ | _ -> 1
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val p3 : MyPoint"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.UnionIfPredicate``() =
+ let code = """
+namespace FsTest
+
+type MyDistance =
+ | Kilometers of float
+ | Miles of float
+ | NauticalMiles of float
+
+module Test =
+ let test() =
+ let dd = MyDistance.Kilometers 1.0
+ if MyDistance.toMiles d$$d > 0 then ()
+ else ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val dd : MyDistance"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.UnionForPattern``() =
+ let code = """
+namespace FsTest
+
+type MyDistance =
+ | Kilometers of float
+ | Miles of float
+ | NauticalMiles of float
+
+module Test =
+ let test() =
+ let distances = [ MyDistance.Kilometers 1.0; MyDistance.Miles 1.0 ]
+ for dist$$ance in distances do
+ ()
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "val distance : MyDistance"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.UnionMethodPatternMatch``() =
+ let code = """
+namespace FsTest
+
+type MyDistance =
+ | Kilometers of float
+ | Miles of float
+ | NauticalMiles of float
+ static member toMiles x =
+ Miles(
+ match x with
+ | Miles x -> x
+ | Kilometers x -> x / 1.6
+ | NauticalMiles x -> x * 1.15
+ )
+
+module Test =
+ let test() =
+ let dd = MyDistance.Kilometers 1.0
+ match MyDistance.to$$Miles dd with
+ | Miles x -> 0
+ | _ -> 1
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "static member MyDistance.toMiles : x:MyDistance -> MyDistance"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.UnionMethodPatternMatchBody``() =
+ let code = """
+namespace FsTest
+
+type MyDistance =
+ | Kilometers of float
+ | Miles of float
+ | NauticalMiles of float
+ member this.IncreaseBy dist =
+ match this with
+ | Kilometers x -> Kilometers (x + dist)
+ | Miles x -> Miles (x + dist)
+ | NauticalMiles x -> NauticalMiles (x + dist)
+
+module Test =
+ let test() =
+ let dd = MyDistance.Kilometers 1.0
+ match dd.toMiles() with
+ | Miles x -> dd.Increase$$By 1.0
+ | _ -> dd
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "member MyDistance.IncreaseBy : dist:float -> MyDistance"
+ Assert.AreEqual(expected, quickInfo)
+ ()
+
+// migrated from legacy test
+[]
+let ``Automation.UnionAndStructFromFSProj.UnionPropertyInComputationExpression``() =
+ let code = """
+namespace FsTest
+
+type MyDistance =
+ | Kilometers of float
+ | Miles of float
+ | NauticalMiles of float
+ member this.asNautical =
+ NauticalMiles(
+ match this with
+ | Kilometers x -> x / 1.852
+ | Miles x -> x / 1.15
+ | NauticalMiles x -> x
+ )
+
+module Test =
+ let test() =
+ let dd = MyDistance.Kilometers 1.0
+ async {
+ let r = dd.as$$Nautical
+ return r
+ }
+"""
+ let quickInfo = GetQuickInfoTextFromCode code
+ let expected = "property MyDistance.asNautical: MyDistance"
+ Assert.AreEqual(expected, quickInfo)
+ ()
diff --git a/vsintegration/tests/UnitTests/SignatureHelpProviderTests.fs b/vsintegration/tests/UnitTests/SignatureHelpProviderTests.fs
index f61517bf4da8034b525fa53fb859e0e238589f20..f981fe94cb71a773126f1074ea04c43ae885286e 100644
--- a/vsintegration/tests/UnitTests/SignatureHelpProviderTests.fs
+++ b/vsintegration/tests/UnitTests/SignatureHelpProviderTests.fs
@@ -26,6 +26,7 @@ open System.IO
open System.Text
open NUnit.Framework
open Microsoft.CodeAnalysis.Text
+open VisualFSharp.UnitTests.Roslyn
open Microsoft.VisualStudio.FSharp.Editor
open FSharp.Compiler.SourceCodeServices
open UnitTests.TestLib.LanguageService
@@ -49,6 +50,43 @@ let internal projectOptions = {
Stamp = None
}
+let private DefaultDocumentationProvider =
+ { new IDocumentationBuilder with
+ override doc.AppendDocumentationFromProcessedXML(_, _, _, _, _, _) = ()
+ override doc.AppendDocumentation(_, _, _, _, _, _, _) = ()
+ }
+
+let GetSignatureHelp (project:FSharpProject) (fileName:string) (caretPosition:int) =
+ async {
+ let triggerChar = None // TODO:
+ let code = File.ReadAllText(fileName)
+ let! triggered = FSharpSignatureHelpProvider.ProvideMethodsAsyncAux(checker, DefaultDocumentationProvider, SourceText.From(code), caretPosition, project.Options, triggerChar, fileName, 0)
+ return triggered
+ } |> Async.RunSynchronously
+
+let GetCompletionTypeNames (project:FSharpProject) (fileName:string) (caretPosition:int) =
+ let sigHelp = GetSignatureHelp project fileName caretPosition
+ match sigHelp with
+ | None -> [||]
+ | Some (items, _applicableSpan, _argumentIndex, _argumentCount, _argumentName) ->
+ let completionTypeNames =
+ items
+ |> Array.map (fun (_, _, _, _, _, x, _) -> x |> Array.map (fun (_, _, x, _, _) -> x))
+ completionTypeNames
+
+let GetCompletionTypeNamesFromCursorPosition (project:FSharpProject) =
+ let fileName, caretPosition = project.GetCaretPosition()
+ let completionNames = GetCompletionTypeNames project fileName caretPosition
+ completionNames
+
+let GetCompletionTypeNamesFromXmlString (xml:string) =
+ use project = CreateProject xml
+ GetCompletionTypeNamesFromCursorPosition project
+
+let GetCompletionTypeNamesFromCode (code:string) =
+ use project = SingleFileProject code
+ GetCompletionTypeNamesFromCursorPosition project
+
[]
let ShouldGiveSignatureHelpAtCorrectMarkers() =
let manyTestCases =
@@ -139,14 +177,8 @@ type foo5 = N1.T
let caretPosition = fileContents.IndexOf(marker) + marker.Length
- let documentationProvider =
- { new IDocumentationBuilder with
- override doc.AppendDocumentationFromProcessedXML(_, _, _, _, _, _) = ()
- override doc.AppendDocumentation(_, _, _, _, _, _, _) = ()
- }
-
let triggerChar = if marker = "," then Some ',' elif marker = "(" then Some '(' elif marker = "<" then Some '<' else None
- let triggered = FSharpSignatureHelpProvider.ProvideMethodsAsyncAux(checker, documentationProvider, SourceText.From(fileContents), caretPosition, projectOptions, triggerChar, filePath, 0) |> Async.RunSynchronously
+ let triggered = FSharpSignatureHelpProvider.ProvideMethodsAsyncAux(checker, DefaultDocumentationProvider, SourceText.From(fileContents), caretPosition, projectOptions, triggerChar, filePath, 0) |> Async.RunSynchronously
checker.ClearLanguageServiceRootCachesAndCollectAndFinalizeAllTransients()
let actual =
match triggered with
@@ -164,8 +196,36 @@ type foo5 = N1.T
| "" -> ()
| errorText -> Assert.Fail errorText
+// migrated from legacy test
+[]
+let ``Multi.ReferenceToProjectLibrary``() =
+ let completionNames = GetCompletionTypeNamesFromXmlString @"
+
+
+
+ HelperLibrary.fsproj
+
+
+
+
+
+
+
+
+
+
-#if EXE
-ShouldGiveSignatureHelpAtCorrectMarkers()
-#endif
+
+"
+ let expected = [|
+ [|"System.Int32"; "System.Int32"|]
+ |]
+ Assert.AreEqual(expected, completionNames)
diff --git a/vsintegration/tests/UnitTests/Tests.Watson.fs b/vsintegration/tests/UnitTests/Tests.Watson.fs
index 491a4bf37da9be9ad47bb18dfe8c1cab552bd916..9cb4b7afa65bdfec9e0d0cc4b0fc7024f2319f1d 100644
--- a/vsintegration/tests/UnitTests/Tests.Watson.fs
+++ b/vsintegration/tests/UnitTests/Tests.Watson.fs
@@ -26,7 +26,11 @@ type Check =
if (File.Exists("watson-test.fs")) then
File.Delete("watson-test.fs")
File.WriteAllText("watson-test.fs", "// Hello watson" )
- let argv = [| "--simulateException:"+simulationCode; "watson-test.fs"|]
+ let argv =
+ [| "--simulateException:"+simulationCode
+ "--nowarn:988" // don't show `watson-test.fs(1,16): warning FS0988: Main module of program is empty: nothing will happen when it is run`
+ "watson-test.fs"
+ |]
let ctok = AssumeCompilationThreadWithoutEvidence ()
let _code = mainCompile (ctok, argv, FSharp.Compiler.MSBuildReferenceResolver.Resolver, false, ReduceMemoryFlag.No, CopyFSharpCoreFlag.No, FSharp.Compiler.ErrorLogger.QuitProcessExiter, ConsoleLoggerProvider(), None, None)
diff --git a/vsintegration/tests/UnitTests/VisualFSharp.UnitTests.fsproj b/vsintegration/tests/UnitTests/VisualFSharp.UnitTests.fsproj
index 33f14a5e28425b1e1984af137e6c5a7a2dc51d94..a92cc7cdd64d46466432f3b1cdc2113435c7af17 100644
--- a/vsintegration/tests/UnitTests/VisualFSharp.UnitTests.fsproj
+++ b/vsintegration/tests/UnitTests/VisualFSharp.UnitTests.fsproj
@@ -4,8 +4,9 @@
net46
+ x86
Library
- $(NoWarn);58;75
+ $(NoWarn);44;58;75;3005
NO_PROJECTCRACKER;$(DefineConstants)
true
true
@@ -110,6 +111,9 @@
CompilerService\TreeVisitorTests.fs
+
+ Roslyn\ProjectOptionsBuilder.fs
+
Roslyn\SyntacticColorizationServiceTests.fs
@@ -148,6 +152,9 @@
Roslyn\SignatureHelpProviderTests.fs
+
+ Roslyn\QuickInfoTests.fs
+
Roslyn\GoToDefinitionServiceTests.fs
@@ -163,6 +170,8 @@
PreserveNewest
+
+
@@ -212,7 +221,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+