diff --git a/.gitignore b/.gitignore index 0284ed2dae0ed..ea46c5bff938b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ .vs/ # Build results -[Bb]inaries/ +[Aa]rtifacts/ [Dd]ebug/ [Rr]elease/ x64/ diff --git a/Build.cmd b/Build.cmd index cd354c0d533fd..8858847af2f07 100644 --- a/Build.cmd +++ b/Build.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0build\scripts\build.ps1""" -build %*" +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -build %*" diff --git a/Directory.Build.props b/Directory.Build.props index 743b9e3575335..810b15de358d6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,5 +1,5 @@ - + diff --git a/Directory.Build.targets b/Directory.Build.targets index cf98ae9662f0d..650cee3cfbca9 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,4 +1,4 @@ - + diff --git a/Restore.cmd b/Restore.cmd index 7491183acedc1..1b84815f3ed0f 100755 --- a/Restore.cmd +++ b/Restore.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0build\scripts\build.ps1""" -restore %*" +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -restore %*" diff --git a/Roslyn.sln b/Roslyn.sln index f34b9afc6e195..b8078b3676dd0 100644 --- a/Roslyn.sln +++ b/Roslyn.sln @@ -303,8 +303,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.Remo EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.Remote.ServiceHub", "src\Workspaces\Remote\ServiceHub\Microsoft.CodeAnalysis.Remote.ServiceHub.csproj", "{80FDDD00-9393-47F7-8BAF-7E87CE011068}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RepoUtil", "src\Tools\RepoUtil\RepoUtil.csproj", "{1CA184D3-89CB-4074-BEC5-F8AEBA657D41}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Build.Tasks.CodeAnalysis", "src\Compilers\Core\MSBuildTask\Microsoft.Build.Tasks.CodeAnalysis.csproj", "{7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Roslyn.VisualStudio.RemoteHostClientMock", "src\VisualStudio\RemoteHostClientMock\Roslyn.VisualStudio.RemoteHostClientMock.csproj", "{7259740A-FD0E-480F-A7D4-08BE90AC9051}" @@ -359,8 +357,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AnalyzerRunner", "src\Tools EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IlAsmDeploy", "src\Tools\ILAsm\IlAsmDeploy.csproj", "{DA8522ED-02BC-499C-AC71-1DF884F63987}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Roslyn.MSBuild.Util", "src\Tools\BuildUtil\Roslyn.MSBuild.Util.csproj", "{137922A2-5B1E-44C4-B0EC-0F49D2BD323A}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.Debugging.Package", "src\Dependencies\CodeAnalysis.Debugging\Microsoft.CodeAnalysis.Debugging.Package.csproj", "{FC2AE90B-2E4B-4045-9FDD-73D4F5ED6C89}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.PooledObjects.Package", "src\Dependencies\PooledObjects\Microsoft.CodeAnalysis.PooledObjects.Package.csproj", "{49E7C367-181B-499C-AC2E-8E17C81418D6}" @@ -878,10 +874,6 @@ Global {80FDDD00-9393-47F7-8BAF-7E87CE011068}.Debug|Any CPU.Build.0 = Debug|Any CPU {80FDDD00-9393-47F7-8BAF-7E87CE011068}.Release|Any CPU.ActiveCfg = Release|Any CPU {80FDDD00-9393-47F7-8BAF-7E87CE011068}.Release|Any CPU.Build.0 = Release|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Release|Any CPU.Build.0 = Release|Any CPU {7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -990,10 +982,6 @@ Global {DA8522ED-02BC-499C-AC71-1DF884F63987}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA8522ED-02BC-499C-AC71-1DF884F63987}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA8522ED-02BC-499C-AC71-1DF884F63987}.Release|Any CPU.Build.0 = Release|Any CPU - {137922A2-5B1E-44C4-B0EC-0F49D2BD323A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {137922A2-5B1E-44C4-B0EC-0F49D2BD323A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {137922A2-5B1E-44C4-B0EC-0F49D2BD323A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {137922A2-5B1E-44C4-B0EC-0F49D2BD323A}.Release|Any CPU.Build.0 = Release|Any CPU {FC2AE90B-2E4B-4045-9FDD-73D4F5ED6C89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FC2AE90B-2E4B-4045-9FDD-73D4F5ED6C89}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC2AE90B-2E4B-4045-9FDD-73D4F5ED6C89}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -1209,7 +1197,6 @@ Global {C1930979-C824-496B-A630-70F5369A636F} = {C2D1346B-9665-4150-B644-075CF1636BAA} {F822F72A-CC87-4E31-B57D-853F65CBEBF3} = {55A62CFA-1155-46F1-ADF3-BEEE51B58AB5} {80FDDD00-9393-47F7-8BAF-7E87CE011068} = {55A62CFA-1155-46F1-ADF3-BEEE51B58AB5} - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41} = {FD0FAF5F-1DED-485C-99FA-84B97F3A8EEC} {7AD4FE65-9A30-41A6-8004-AA8F89BCB7F3} = {A41D1B99-F489-4C43-BBDF-96D61B19A6B9} {7259740A-FD0E-480F-A7D4-08BE90AC9051} = {8DBA5174-B0AA-4561-82B1-A46607697753} {2E1658E2-5045-4F85-A64C-C0ECCD39F719} = {8DBA5174-B0AA-4561-82B1-A46607697753} @@ -1237,7 +1224,6 @@ Global {FFB00FB5-8C8C-4A02-B67D-262B9D28E8B1} = {EE97CB90-33BB-4F3A-9B3D-69375DEC6AC6} {60166C60-813C-46C4-911D-2411B4ABBC0F} = {FD0FAF5F-1DED-485C-99FA-84B97F3A8EEC} {DA8522ED-02BC-499C-AC71-1DF884F63987} = {FD0FAF5F-1DED-485C-99FA-84B97F3A8EEC} - {137922A2-5B1E-44C4-B0EC-0F49D2BD323A} = {FD0FAF5F-1DED-485C-99FA-84B97F3A8EEC} {FC2AE90B-2E4B-4045-9FDD-73D4F5ED6C89} = {C2D1346B-9665-4150-B644-075CF1636BAA} {49E7C367-181B-499C-AC2E-8E17C81418D6} = {C2D1346B-9665-4150-B644-075CF1636BAA} {037F06F0-3BE8-42D0-801E-2F74FC380AB8} = {55A62CFA-1155-46F1-ADF3-BEEE51B58AB5} diff --git a/Test.cmd b/Test.cmd index e0a0b93bd675a..4a6eabc39e2b1 100644 --- a/Test.cmd +++ b/Test.cmd @@ -1,2 +1,2 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0build\scripts\build.ps1""" -test %*" +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -test %*" diff --git a/azure-pipelines-integration.yml b/azure-pipelines-integration.yml index ab9b741d3b9fb..b705079cced43 100644 --- a/azure-pipelines-integration.yml +++ b/azure-pipelines-integration.yml @@ -11,13 +11,13 @@ jobs: timeoutInMinutes: 90 steps: - - script: build/scripts/cibuild.cmd -configuration $(_configuration) -prepareMachine -testVsi + - script: eng/cibuild.cmd -configuration $(_configuration) -prepareMachine -testVsi displayName: Build and Test - task: PublishTestResults@1 inputs: testRunner: XUnit - testResultsFiles: $(Build.SourcesDirectory)\Binaries\TestResults\$(_configuration)\*.xml + testResultsFiles: $(Build.SourcesDirectory)\artifacts\TestResults\$(_configuration)\*.xml mergeTestResults: true testRunTitle: 'Windows Visual Studio Integration $(_configuration)' condition: always() @@ -25,7 +25,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(_configuration)\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)' ArtifactName: 'Windows Visual Studio Integration $(_configuration)' publishLocation: Container continueOnError: true @@ -34,7 +34,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Screenshots inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(_configuration)\UnitTests\Microsoft.VisualStudio.LanguageServices.IntegrationTests\xUnitResults/' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\bin\Microsoft.VisualStudio.LanguageServices.IntegrationTests\$(_configuration)\net472\xUnitResults' ArtifactName: 'Screenshots $(_configuration)' publishLocation: Container continueOnError: true diff --git a/azure-pipelines-official.yml b/azure-pipelines-official.yml index 297507409b8cf..2f378317e77e7 100644 --- a/azure-pipelines-official.yml +++ b/azure-pipelines-official.yml @@ -38,16 +38,10 @@ jobs: - task: NuGetRestore@1 inputs: - solution: 'build\ToolsetPackages\InternalToolset.csproj' + solution: 'eng\internal\Toolset.csproj' feed: '8f470c7e-ac49-4afe-a6ee-cf784e438b93' - - task: CmdLine@1 - displayName: Create output directory - inputs: - filename: mkdir - arguments: 'Binaries\$(BuildConfiguration)' - - - script: build\scripts\cibuild.cmd + - script: eng\cibuild.cmd -configuration $(BuildConfiguration) -official -testDesktop -procdump /p:DotNetSignType=$(PB_SignType) /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) @@ -59,7 +53,7 @@ jobs: displayName: Publish Assets inputs: arguments: '-configuration $(BuildConfiguration) -branchName "$(Build.SourceBranch)" -mygetApiKey $(Roslyn.MyGetApiKey) -nugetApiKey $(Roslyn.NuGetApiKey) -gitHubUserName $(Roslyn.GitHubUserName) -gitHubToken $(Roslyn.GitHubToken) -gitHubEmail $(Roslyn.GitHubEmail)' - filePath: 'build\scripts\publish-assets.ps1' + filePath: 'eng\publish-assets.ps1' condition: succeeded() ### BEGIN OPTPROF TASKS ### @@ -69,7 +63,7 @@ jobs: inputs: dropServiceURI: 'https://devdiv.artifacts.visualstudio.com' buildNumber: 'ProfilingInputs/DevDiv/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildId)' - sourcePath: '$(Build.SourcesDirectory)\Binaries\$(BuildConfiguration)\DevDivInsertionFiles\OptProf' + sourcePath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data' toLowerCase: false usePat: false displayName: 'OPTPROF - Publish to Artifact Services - ProfilingInputs' @@ -78,7 +72,7 @@ jobs: # Created a exe that will install visual studio with this version - task: PowerShell@2 inputs: - filePath: build\scripts\setmanifestpaths.ps1 + filePath: eng\setmanifestpaths.ps1 failOnStderr: true displayName: 'OPTPROF - Set VSTS variables for vsman files' condition: succeededOrFailed() @@ -88,14 +82,14 @@ jobs: vsMajorVersion: 16 channelName: int.$(InsertTargetBranchShortName) manifests: $(SetupManifests) - outputFolder: '$(Build.SourcesDirectory)\Binaries\VSSetup\$(BuildConfiguration)\Insertion' + outputFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion' displayName: 'OPTPROF - Build VS bootstrapper' condition: succeededOrFailed() # Publish run settings - task: PowerShell@2 inputs: - filePath: build\scripts\createrunsettings.ps1 + filePath: eng\createrunsettings.ps1 arguments: -release failOnStderr: true displayName: 'OPTPROF - generate runsettings file' @@ -113,7 +107,7 @@ jobs: # Publish scripts to get the branch of VS that this inserts into - task: PublishBuildArtifacts@1 inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(BuildConfiguration)\DevDivInsertionFiles\BranchInfo' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\BranchInfo' ArtifactName: BranchInfo ArtifactType: Container displayName: 'OPTPROF - Publish Artifact: BranchInfo' @@ -124,7 +118,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(BuildConfiguration)\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)' ArtifactName: 'Build Diagnostic Files' publishLocation: Container continueOnError: true @@ -134,70 +128,46 @@ jobs: displayName: Publish Test Results inputs: testRunner: XUnit - testResultsFiles: '$(Build.SourcesDirectory)\Binaries\TestResults\$(BuildConfiguration)\*.xml' + testResultsFiles: '$(Build.SourcesDirectory)\artifacts\TestResults\$(BuildConfiguration)\*.xml' mergeTestResults: true testRunTitle: 'Unit Tests' condition: succeededOrFailed() + # Publishes setup VSIXes to a drop with id defined by MicroBuildSwixPlugin. + # Note: The insertion tool looks for the display name of this task in the logs. - task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1 displayName: Upload VSTS Drop inputs: - DropFolder: 'Binaries\VSSetup\$(BuildConfiguration)\Insertion' + DropFolder: 'artifacts\VSSetup\$(BuildConfiguration)\Insertion' condition: succeeded() + # Publish insertion packages to CoreXT store. - task: NuGetCommand@2 - displayName: NuGet CoreXT publish + displayName: Publish CoreXT Packages inputs: command: push feedsToUse: config - packagesToPush: '$(Build.SourcesDirectory)\Binaries\$(BuildConfiguration)\DevDivPackages\**\*.nupkg' + packagesToPush: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\DevDivPackages\**\*.nupkg' publishVstsFeed: '97a41293-2972-4f48-8c0e-05493ae82010' allowPackageConflicts: true condition: succeeded() - # Publish VSTS artifact that the RoslynInsertionTool is able to find by its name. - # The backing storage of the artifact is a file share. - # - # The bulk of the publish work is done by the Powershell task below. This exists to create - # the proper entries in the build log so that the insertion tool can find the drop that - # needs to get published + # Publish an artifact that the RoslynInsertionTool is able to find by its name. - task: PublishBuildArtifacts@1 - displayName: Publish Drop - DevDivInsertionFiles - inputs: - PathtoPublish: 'Binaries\$(BuildConfiguration)\DevDivInsertionFiles' - ArtifactName: '$(Build.BuildNumber)' - publishLocation: FilePath - TargetPath: '$(DropRoot)\Roslyn-Signed\$(Build.SourceBranchName)\$(BuildConfiguration)' - Parallel: true - ParallelCount: 64 - condition: succeededOrFailed() - - # Archive the files from the build necessary for future investigations - - task: PowerShell@2 - displayName: Publish Drop - Binaries + displayName: Publish Artifact VSSetup inputs: - arguments: '-Source Binaries\$(BuildConfiguration) -Target $(DropRoot)\Roslyn-Signed\$(Build.SourceBranchName)\$(BuildConfiguration)\$(Build.BuildNumber) -ParallelCount 8 -Exclude UnitTests,PerfTests' - filePath: 'build\scripts\vsts-robocopy.ps1' - condition: succeededOrFailed() + PathtoPublish: 'artifacts\VSSetup\$(BuildConfiguration)' + ArtifactName: 'VSSetup' + condition: succeeded() - # Copy additional files to the drop directory - - task: PowerShell@2 - displayName: Publish Drop - VSSetup + # Archive NuGet packages to DevOps. + - task: PublishBuildArtifacts@1 + displayName: Publish Artifact Packages inputs: - arguments: '-Source Binaries\VSSetup\$(BuildConfiguration)\Insertion -Target $(DropRoot)\Roslyn-Signed\$(Build.SourceBranchName)\$(BuildConfiguration)\$(Build.BuildNumber)\Insertion -ParallelCount 8' - filePath: 'build\scripts\vsts-robocopy.ps1' - condition: succeededOrFailed() + PathtoPublish: 'artifacts\packages\$(BuildConfiguration)' + ArtifactName: 'Packages' + condition: succeeded() - task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1 displayName: Perform Cleanup Tasks condition: succeededOrFailed() - - - task: PublishBuildArtifacts@1 - displayName: Publish MicroBuild Outputs - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)\MicroBuild\Output' - ArtifactName: '$(Build.BuildNumber)' - publishLocation: FilePath - TargetPath: '$(DropRoot)\Roslyn-Signed\$(Build.SourceBranchName)\$(BuildConfiguration)' - condition: succeededOrFailed() - diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3eeaac4e1b493..37375795d3b7c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,13 +19,13 @@ jobs: timeoutInMinutes: 90 steps: - - script: build/scripts/cibuild.cmd -configuration $(_configuration) -prepareMachine -testDesktop -$(_testKind) -procdump + - script: eng/cibuild.cmd -configuration $(_configuration) -prepareMachine -testDesktop -$(_testKind) -procdump displayName: Build and Test - task: PublishTestResults@1 inputs: testRunner: XUnit - testResultsFiles: '$(Build.SourcesDirectory)\Binaries\TestResults\$(_configuration)\*.xml' + testResultsFiles: '$(Build.SourcesDirectory)\artifacts\TestResults\$(_configuration)\*.xml' mergeTestResults: true testRunTitle: 'Windows Desktop $(_configuration) $(_testKind)' condition: always() @@ -33,7 +33,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(_configuration)\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)' ArtifactName: 'Windows Desktop $(_configuration) $(_testKind)' publishLocation: Container continueOnError: true @@ -44,7 +44,7 @@ jobs: timeoutInMinutes: 90 steps: - - script: build/scripts/cibuild.cmd -configuration Debug -prepareMachine -testDesktop + - script: eng/cibuild.cmd -configuration Debug -prepareMachine -testDesktop displayName: Build and Test - task: PublishTestResults@1 @@ -57,7 +57,7 @@ jobs: - task: PublishBuildArtifacts@1 inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(_configuration)\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)' ArtifactName: 'Windows Desktop Spanish' publishLocation: Container continueOnError: true @@ -75,13 +75,13 @@ jobs: timeoutInMinutes: 90 steps: - - script: build/scripts/cibuild.cmd -configuration $(_configuration) -prepareMachine -msbuildEngine:dotnet -testCoreClr + - script: eng/cibuild.cmd -configuration $(_configuration) -prepareMachine -msbuildEngine:dotnet -testCoreClr displayName: Build and Test - task: PublishTestResults@1 inputs: testRunner: XUnit - testResultsFiles: '$(Build.SourcesDirectory)\Binaries\TestResults\$(_configuration)\*.xml' + testResultsFiles: '$(Build.SourcesDirectory)\artifacts\TestResults\$(_configuration)\*.xml' mergeTestResults: true testRunTitle: 'Windows CoreClr $(_configuration)' condition: always() @@ -89,7 +89,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\$(_configuration)\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)' ArtifactName: 'Windows CoreClr $(_configuration)' publishLocation: Container continueOnError: true @@ -99,13 +99,13 @@ jobs: pool: dotnet-external-temp timeoutInMinutes: 90 steps: - - script: build/scripts/test-determinism.cmd -configuration Debug + - script: eng/test-determinism.cmd -configuration Debug displayName: Build - Validate determinism - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\Debug\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\Debug' ArtifactName: 'Build Determinism Files' publishLocation: Container continueOnError: true @@ -115,20 +115,20 @@ jobs: pool: dotnet-external-temp timeoutInMinutes: 90 steps: - - script: build/scripts/test-build-correctness.cmd -configuration Release + - script: eng/test-build-correctness.cmd -configuration Release displayName: Build - Validate correctness - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)\Binaries\Release\Logs' + PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\Release' ArtifactName: 'Build Correctness Files' publishLocation: Container continueOnError: true condition: not(succeeded()) - job: Linux_Test - pool: DotNetCore-Linux + pool: DotNetCore-Linux strategy: maxParallel: 2 matrix: @@ -141,12 +141,12 @@ jobs: _name: Mono timeoutInMinutes: 90 steps: - - script: ./build/scripts/cibuild.sh --configuration $(_configuration) --prepareMachine $(_args) + - script: ./eng/cibuild.sh --configuration $(_configuration) --prepareMachine $(_args) displayName: Build and Test - task: PublishTestResults@1 inputs: testRunner: XUnit - testResultsFiles: '$(Build.SourcesDirectory)/Binaries/TestResults/$(_configuration)/*.xml' + testResultsFiles: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_configuration)/*.xml' mergeTestResults: true testRunTitle: 'Linux $(_name)' condition: always() @@ -154,7 +154,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/Binaries/Debug/Logs' + PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_configuration)' ArtifactName: 'Linux $(_name)' publishLocation: Container continueOnError: true diff --git a/build.sh b/build.sh index 54fe235f7f529..b115784de051d 100755 --- a/build.sh +++ b/build.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -"$scriptroot/build/scripts/build.sh" --build $@ \ No newline at end of file +"$scriptroot/eng/build.sh" --build $@ \ No newline at end of file diff --git a/build/Targets/AfterCommonTargets.targets b/build/Targets/AfterCommonTargets.targets deleted file mode 100644 index 91bb8c6d9ced1..0000000000000 --- a/build/Targets/AfterCommonTargets.targets +++ /dev/null @@ -1,8 +0,0 @@ - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - diff --git a/build/Targets/BeforeCommonTargets.targets b/build/Targets/BeforeCommonTargets.targets deleted file mode 100644 index 326b1eb19196e..0000000000000 --- a/build/Targets/BeforeCommonTargets.targets +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - - $(OutputPath)UnitTests\$(MSBuildProjectName)\ - false - - - - - $(OutputPath)Vsix\$(MSBuildProjectName)\ - - - - - - - - $(OutputPath)SourcePackages\$(MSBuildProjectName)\ - - - - - $(OutputPath)Dlls\$(MSBuildProjectName)\ - - - - - $(OutputPath)Exes\$(MSBuildProjectName)\ - - - - - $(OutputPath)Exes\$(MSBuildProjectName)\ - - - - - - - $(OutputPath)$(RuntimeIdentifier)\$(PublishDirName)\ - $(OutputPath)$(TargetFramework)\$(PublishDirName)\ - - - - $(IntermediateOutputPath)$(TargetFramework.ToLowerInvariant())\ - $(OutputPath)$(TargetFramework.ToLowerInvariant())\ - - - diff --git a/build/Targets/Microsoft.Net.Compilers.props b/build/Targets/Microsoft.Net.Compilers.props deleted file mode 100644 index 23a392dc9e34d..0000000000000 --- a/build/Targets/Microsoft.Net.Compilers.props +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - $(NuGetPackageRoot)\Microsoft.Net.Compilers\$(ToolsetCompilerPackageVersion)\tools - - - - - - - $(ToolsetCompilerPath)\Microsoft.CSharp.Core.targets - $(ToolsetCompilerPath)\Microsoft.VisualBasic.Core.targets - - - - - $(ToolsetCompilerPath) - csc.exe - $(ToolsetCompilerPath) - vbc.exe - - diff --git a/build/Targets/RepoToolset/ProjectLayout.props b/build/Targets/RepoToolset/ProjectLayout.props deleted file mode 100644 index 6e44f8e4bd64c..0000000000000 --- a/build/Targets/RepoToolset/ProjectLayout.props +++ /dev/null @@ -1,22 +0,0 @@ - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - - - - $(ArtifactsDir) - $(BaseOutputPath)$(Configuration)\ - - $(ArtifactsDir)Obj\ - $(BaseIntermediateOutputPath)$(MSBuildProjectName)\ - $(BaseIntermediateOutputPath)$(Configuration) - - diff --git a/build/config/RepoUtilData.json b/build/config/RepoUtilData.json deleted file mode 100644 index 769609d61183d..0000000000000 --- a/build/config/RepoUtilData.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "nuspecExcludes": [ - "^packages.*", - "^Binaries.*", - "^src\\\\Dependencies.*", - ".*NuSpec.loc.*", - ] -} diff --git a/build/scripts/vsts-robocopy.ps1 b/build/scripts/vsts-robocopy.ps1 deleted file mode 100644 index 0912da134513a..0000000000000 --- a/build/scripts/vsts-robocopy.ps1 +++ /dev/null @@ -1,57 +0,0 @@ -# See https://raw.githubusercontent.com/Microsoft/vsts-tasks/master/Tasks/PublishBuildArtifactsV1/Invoke-Robocopy.ps1 - -[CmdletBinding()] -param( - [Parameter(Mandatory = $true)] - [string]$source, - - [Parameter(Mandatory = $true)] - [string]$target, - - [Parameter(Mandatory = $true)] - [int]$parallelCount, - - [Parameter(Mandatory = $false)] - [string]$file, - - [Parameter(Mandatory = $false)] - [string[]]$exclude) - -$ErrorActionPreference = 'Stop' -Set-StrictMode -version 2.0 - -try { - . (Join-Path $PSScriptRoot "build-utils.ps1") - - if (!$File) { - $File = "*"; - } - - $commandLine = "/E /COPY:DA /NP /R:3 " - if ($parallelCount -gt 1) { - $commandLine += "/MT:$parallelCount " - } - - $commandLine += "$source $target $file " - - if (($null -ne $exclude) -and ($exclude.Length -gt 0)) { - $commandLine += "/XD " - foreach ($e in $exclude) { - $commandLine += "$e " - } - } - - Write-Host "robocopy $commandLine" - $exitCode = Exec-Process "robocopy" $commandLine - if ($exitCode -gt 8) { - Write-Host "robocopy failed $exitCode" - } - - exit 0 -} -catch { - Write-Host $_ - Write-Host $_.Exception - Write-Host $_.ScriptStackTrace - exit 1 -} diff --git a/build/Targets/Signing.props b/eng/Signing.props similarity index 90% rename from build/Targets/Signing.props rename to eng/Signing.props index e43dcd2e740f1..aecd24f10d660 100644 --- a/build/Targets/Signing.props +++ b/eng/Signing.props @@ -38,11 +38,12 @@ - - + + + diff --git a/build/Targets/Tools.props b/eng/Tools.props similarity index 90% rename from build/Targets/Tools.props rename to eng/Tools.props index 2461baafb7208..f5080ea365c3d 100644 --- a/build/Targets/Tools.props +++ b/eng/Tools.props @@ -6,11 +6,6 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - 2.1.3 - - - + \ No newline at end of file diff --git a/build/ToolsetPackages/Directory.Build.targets b/eng/internal/Directory.Build.targets similarity index 100% rename from build/ToolsetPackages/Directory.Build.targets rename to eng/internal/Directory.Build.targets diff --git a/build/ToolsetPackages/InternalToolset.csproj b/eng/internal/Toolset.csproj similarity index 100% rename from build/ToolsetPackages/InternalToolset.csproj rename to eng/internal/Toolset.csproj diff --git a/build/scripts/publish-assets.ps1 b/eng/publish-assets.ps1 similarity index 91% rename from build/scripts/publish-assets.ps1 rename to eng/publish-assets.ps1 index 0a9e82e3b153e..57fb7eb71d9f1 100644 --- a/build/scripts/publish-assets.ps1 +++ b/eng/publish-assets.ps1 @@ -60,7 +60,7 @@ function Publish-NuGet([string]$packageDir, [string]$uploadUrl) { function Publish-Vsix([string]$uploadUrl) { Write-Host "Publishing VSIX to $uploadUrl" $apiKey = Get-PublishKey $uploadUrl - $extensions = [xml](Get-Content (Join-Path $RepoRoot "build\config\myget_org-extensions.config")) + $extensions = [xml](Get-Content (Join-Path $EngRoot "config\PublishVsix.MyGet.config")) foreach ($extension in $extensions.extensions.extension) { $vsix = Join-Path $VSSetupDir ($extension.id + ".vsix") if (-not (Test-Path $vsix)) { @@ -78,8 +78,8 @@ function Publish-Vsix([string]$uploadUrl) { } function Publish-Channel([string]$packageDir, [string]$name) { - $publish = Join-Path $BinariesConfigDir "Exes\RoslynPublish\RoslynPublish.exe" - $args = "-nugetDir $packageDir -channel $name -gu $gitHubUserName -gt $gitHubToken -ge $githubEmail" + $publish = GetProjectOutputBinary "RoslynPublish.exe" + $args = "-nugetDir `"$packageDir`" -channel $name -gu $gitHubUserName -gt $gitHubToken -ge $githubEmail" Write-Host "Publishing $packageDir to channel $name" if (-not $test) { Exec-Console $publish $args @@ -106,7 +106,7 @@ function Publish-Entry($publishData, [switch]$isBranch) { # First publish the NuGet packages to the specified feeds foreach ($url in $publishData.nuget) { foreach ($nugetKind in $publishData.nugetKind) { - Publish-NuGet (Join-Path $nugetDir $nugetKind) $url + Publish-NuGet (Join-Path $PackagesDir $nugetKind) $url } } @@ -119,7 +119,7 @@ function Publish-Entry($publishData, [switch]$isBranch) { # Finally get our channels uploaded to versions foreach ($channel in $publishData.channels) { foreach ($nugetKind in $publishData.nugetKind) { - Publish-Channel (Join-Path $nugetDir $nugetKind) $channel + Publish-Channel (Join-Path $PackagesDir $nugetKind) $channel } } @@ -144,17 +144,16 @@ function Normalize-BranchName([string]$branchName) { try { if ($configuration -eq "") { - Write-Host "Must provide the build configuration with -config" + Write-Host "Must provide the build configuration with -configuration" exit 1 } . (Join-Path $PSScriptRoot "build-utils.ps1") $dotnet = Ensure-DotnetSdk - $nugetDir = Join-Path $BinariesConfigDir "NuGet" Write-Host "Downloading PublishData.json" - $publishFileContent = (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dotnet/roslyn/master/build/config/PublishData.json" -UseBasicParsing).Content + $publishFileContent = (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dotnet/roslyn/master/eng/config/PublishData.json" -UseBasicParsing).Content $data = ConvertFrom-Json $publishFileContent if ($branchName -ne "" -and $releaseName -ne "") { diff --git a/build/scripts/setmanifestpaths.ps1 b/eng/setmanifestpaths.ps1 similarity index 73% rename from build/scripts/setmanifestpaths.ps1 rename to eng/setmanifestpaths.ps1 index 38f5aa463225e..683e63682ab8e 100644 --- a/build/scripts/setmanifestpaths.ps1 +++ b/eng/setmanifestpaths.ps1 @@ -2,9 +2,9 @@ # as will occur at the start of the build. # This will allow us to set it after the build when called again. -$vsmanpath = "Binaries/VSSetup/$Env:BuildConfiguration/Insertion" +$vsmanpath = "artifacts/VSSetup/$Env:BuildConfiguration/Insertion" if (Test-Path $vsmanpath) { - $SetupManifests = [string]::Join(',', (Get-ChildItem "Binaries/VSSetup/$Env:BuildConfiguration/Insertion/*.vsman")) + $SetupManifests = [string]::Join(',', (Get-ChildItem "artifacts/VSSetup/$Env:BuildConfiguration/Insertion/*.vsman")) Write-Host "Using the following manifests '$SetupManifests'" Write-Host "SetupManifests=$SetupManifests" Write-Host "##vso[task.setvariable variable=SetupManifests;]$SetupManifests" diff --git a/build/Targets/GenerateCompilerExecutableBindingRedirects.targets b/eng/targets/GenerateCompilerExecutableBindingRedirects.targets similarity index 100% rename from build/Targets/GenerateCompilerExecutableBindingRedirects.targets rename to eng/targets/GenerateCompilerExecutableBindingRedirects.targets diff --git a/build/Targets/Imports.targets b/eng/targets/Imports.targets similarity index 92% rename from build/Targets/Imports.targets rename to eng/targets/Imports.targets index 6d637a2b51e88..2cedcfa20ed7e 100644 --- a/build/Targets/Imports.targets +++ b/eng/targets/Imports.targets @@ -8,7 +8,7 @@ - + 512 @@ -18,13 +18,7 @@ false - $(ArtifactsConfigurationDir)DevDivPackages\Roslyn\ - - - $(IntermediateOutputPath)\$(TargetFramework)\$(AssemblyName).xml + $(DevDivPackagesDir) @@ -70,8 +64,8 @@ - $(RepoRoot)build\Rulesets\Shipping.ruleset - $(RepoRoot)build\Rulesets\NonShipping.ruleset + $(RepositoryEngineeringDir)config\rulesets\Shipping.ruleset + $(RepositoryEngineeringDir)config\rulesets\NonShipping.ruleset true - $(ArtifactsShippingPackagesDir) $(ArtifactsNonShippingPackagesDir) diff --git a/build/Targets/RepoToolset/Localization.targets b/eng/targets/RepoToolset/Localization.targets similarity index 100% rename from build/Targets/RepoToolset/Localization.targets rename to eng/targets/RepoToolset/Localization.targets diff --git a/build/Targets/RepoToolset/OptimizationData.targets b/eng/targets/RepoToolset/OptimizationData.targets similarity index 98% rename from build/Targets/RepoToolset/OptimizationData.targets rename to eng/targets/RepoToolset/OptimizationData.targets index 1be3e0970b6e1..da6a2b8fa1018 100644 --- a/build/Targets/RepoToolset/OptimizationData.targets +++ b/eng/targets/RepoToolset/OptimizationData.targets @@ -62,7 +62,7 @@ + Condition="'@(OptimizeAssembly)' != '' and '$(Configuration)' == 'Release' and '$(ContinuousIntegrationBuild)' == 'true' and '$(ApplyPartialNgenOptimization)' == 'true'"> <_IbcMergePath>$(NuGetPackageRoot)microsoft.dotnet.ibcmerge\$(MicrosoftDotNetIBCMergeVersion)\lib\net45\ibcmerge.exe diff --git a/build/Targets/RepoToolset/ProjectDefaults.props b/eng/targets/RepoToolset/ProjectDefaults.props similarity index 100% rename from build/Targets/RepoToolset/ProjectDefaults.props rename to eng/targets/RepoToolset/ProjectDefaults.props diff --git a/eng/targets/RepoToolset/ProjectLayout.props b/eng/targets/RepoToolset/ProjectLayout.props new file mode 100644 index 0000000000000..9502682bde4c4 --- /dev/null +++ b/eng/targets/RepoToolset/ProjectLayout.props @@ -0,0 +1,26 @@ + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + $(MSBuildProjectName) + + $([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\')) + $(BaseOutputPath)$(Configuration)\ + $(BaseOutputPath)$(PlatformName)\$(Configuration)\ + + $([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(OutDirName)\')) + $(BaseIntermediateOutputPath)$(Configuration)\ + $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ + + + diff --git a/build/Targets/RepoToolset/Publish.proj b/eng/targets/RepoToolset/Publish.proj similarity index 100% rename from build/Targets/RepoToolset/Publish.proj rename to eng/targets/RepoToolset/Publish.proj diff --git a/build/Targets/RepoToolset/RepoLayout.props b/eng/targets/RepoToolset/RepoLayout.props similarity index 82% rename from build/Targets/RepoToolset/RepoLayout.props rename to eng/targets/RepoToolset/RepoLayout.props index 35fa3fab09c25..9c294e2dc77ec 100644 --- a/build/Targets/RepoToolset/RepoLayout.props +++ b/eng/targets/RepoToolset/RepoLayout.props @@ -1,6 +1,10 @@ - + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) @@ -41,23 +45,19 @@ - - - $(RepoRoot)build\Targets\ + $(RepoRoot)eng\ $(RepositoryEngineeringDir)Versions.props - $(RepoRoot)Binaries\ + $(RepoRoot)artifacts\ $(ArtifactsDir)toolset\ - $(ArtifactsDir)$(Configuration)\ - $(ArtifactsConfigurationDir)tmp\ - $(ArtifactsConfigurationDir)Logs\ + $(ArtifactsDir)obj\ + $(ArtifactsDir)bin\ + $(ArtifactsDir)log\$(Configuration)\ $(ArtifactsDir)tmp\$(Configuration)\ $(ArtifactsDir)TestResults\$(Configuration)\ $(ArtifactsDir)SymStore\$(Configuration)\ - $(ArtifactsConfigurationDir)NuGet\ + $(ArtifactsDir)packages\$(Configuration)\ $(ArtifactsPackagesDir)Shipping\ $(ArtifactsPackagesDir)NonShipping\ $(ArtifactsDir)VSSetup\$(Configuration)\ diff --git a/build/Targets/RepoToolset/RepositoryInfo.targets b/eng/targets/RepoToolset/RepositoryInfo.targets similarity index 100% rename from build/Targets/RepoToolset/RepositoryInfo.targets rename to eng/targets/RepoToolset/RepositoryInfo.targets diff --git a/build/Targets/RepoToolset/Sign.proj b/eng/targets/RepoToolset/Sign.proj similarity index 100% rename from build/Targets/RepoToolset/Sign.proj rename to eng/targets/RepoToolset/Sign.proj diff --git a/build/Targets/RepoToolset/StrongName.props b/eng/targets/RepoToolset/StrongName.props similarity index 100% rename from build/Targets/RepoToolset/StrongName.props rename to eng/targets/RepoToolset/StrongName.props diff --git a/build/Targets/RepoToolset/StrongName.targets b/eng/targets/RepoToolset/StrongName.targets similarity index 100% rename from build/Targets/RepoToolset/StrongName.targets rename to eng/targets/RepoToolset/StrongName.targets diff --git a/build/Targets/RepoToolset/SymStore.targets b/eng/targets/RepoToolset/SymStore.targets similarity index 100% rename from build/Targets/RepoToolset/SymStore.targets rename to eng/targets/RepoToolset/SymStore.targets diff --git a/build/Targets/RepoToolset/Tests.props b/eng/targets/RepoToolset/Tests.props similarity index 100% rename from build/Targets/RepoToolset/Tests.props rename to eng/targets/RepoToolset/Tests.props diff --git a/build/Targets/RepoToolset/Tests.targets b/eng/targets/RepoToolset/Tests.targets similarity index 100% rename from build/Targets/RepoToolset/Tests.targets rename to eng/targets/RepoToolset/Tests.targets diff --git a/build/Targets/RepoToolset/Tools.proj b/eng/targets/RepoToolset/Tools.proj similarity index 100% rename from build/Targets/RepoToolset/Tools.proj rename to eng/targets/RepoToolset/Tools.proj diff --git a/build/Targets/RepoToolset/Version.props b/eng/targets/RepoToolset/Version.props similarity index 100% rename from build/Targets/RepoToolset/Version.props rename to eng/targets/RepoToolset/Version.props diff --git a/build/Targets/RepoToolset/Version.targets b/eng/targets/RepoToolset/Version.targets similarity index 100% rename from build/Targets/RepoToolset/Version.targets rename to eng/targets/RepoToolset/Version.targets diff --git a/build/Targets/RepoToolset/VisualStudio.DesignTimeBuild.targets b/eng/targets/RepoToolset/VisualStudio.DesignTimeBuild.targets similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.DesignTimeBuild.targets rename to eng/targets/RepoToolset/VisualStudio.DesignTimeBuild.targets diff --git a/build/Targets/RepoToolset/VisualStudio.ImportSdk.targets b/eng/targets/RepoToolset/VisualStudio.ImportSdk.targets similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.ImportSdk.targets rename to eng/targets/RepoToolset/VisualStudio.ImportSdk.targets diff --git a/build/Targets/RepoToolset/VisualStudio.InsertionManifests.targets b/eng/targets/RepoToolset/VisualStudio.InsertionManifests.targets similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.InsertionManifests.targets rename to eng/targets/RepoToolset/VisualStudio.InsertionManifests.targets diff --git a/build/Targets/RepoToolset/VisualStudio.SetupPackage.swixproj b/eng/targets/RepoToolset/VisualStudio.SetupPackage.swixproj similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.SetupPackage.swixproj rename to eng/targets/RepoToolset/VisualStudio.SetupPackage.swixproj diff --git a/build/Targets/RepoToolset/VisualStudio.SetupPackage.vsmanproj b/eng/targets/RepoToolset/VisualStudio.SetupPackage.vsmanproj similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.SetupPackage.vsmanproj rename to eng/targets/RepoToolset/VisualStudio.SetupPackage.vsmanproj diff --git a/build/Targets/RepoToolset/VisualStudio.props b/eng/targets/RepoToolset/VisualStudio.props similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.props rename to eng/targets/RepoToolset/VisualStudio.props diff --git a/build/Targets/RepoToolset/VisualStudio.targets b/eng/targets/RepoToolset/VisualStudio.targets similarity index 100% rename from build/Targets/RepoToolset/VisualStudio.targets rename to eng/targets/RepoToolset/VisualStudio.targets diff --git a/build/Targets/RepoToolset/Workarounds.targets b/eng/targets/RepoToolset/Workarounds.targets similarity index 100% rename from build/Targets/RepoToolset/Workarounds.targets rename to eng/targets/RepoToolset/Workarounds.targets diff --git a/build/Targets/RepoToolset/XUnit/XUnit.props b/eng/targets/RepoToolset/XUnit/XUnit.props similarity index 100% rename from build/Targets/RepoToolset/XUnit/XUnit.props rename to eng/targets/RepoToolset/XUnit/XUnit.props diff --git a/build/Targets/RepoToolset/XUnit/XUnit.targets b/eng/targets/RepoToolset/XUnit/XUnit.targets similarity index 100% rename from build/Targets/RepoToolset/XUnit/XUnit.targets rename to eng/targets/RepoToolset/XUnit/XUnit.targets diff --git a/build/Targets/RepoToolset/XUnit/xunit.runner.json b/eng/targets/RepoToolset/XUnit/xunit.runner.json similarity index 100% rename from build/Targets/RepoToolset/XUnit/xunit.runner.json rename to eng/targets/RepoToolset/XUnit/xunit.runner.json diff --git a/build/Targets/Settings.props b/eng/targets/Settings.props similarity index 89% rename from build/Targets/Settings.props rename to eng/targets/Settings.props index 6d85d06e39e7f..b1a3270cf3baa 100644 --- a/build/Targets/Settings.props +++ b/eng/targets/Settings.props @@ -27,7 +27,6 @@ - @@ -36,8 +35,6 @@ net472;netcoreapp2.1 win;win-x64;linux-x64;osx-x64 - win - win-x86 true strict, IOperation @@ -51,6 +48,7 @@ $(MSBuildThisFileDirectory)..\..\src\NuGet\ThirdPartyNotices.rtf $(NuGetPackageRoot)roslyndependencies.optimizationdata\$(RoslynDependenciesOptimizationDataVersion)\content\OptimizationData\ + $(VisualStudioSetupOutputPath)DevDivPackages\ 15.0 $(VisualStudioVersion.Substring($([System.Convert]::ToInt32(0)), $(VisualStudioVersion.IndexOf('.')))) @@ -64,23 +62,6 @@ false false - - - false - false - - - true - - $(MSBuildThisFileDirectory)\BeforeCommonTargets.targets - $(MSBuildThisFileDirectory)\AfterCommonTargets.targets @@ -122,11 +103,6 @@ $(RoslynToolsetDirectory)build\$(_PackageName).props - - true - netcoreapp2.0 - - true @@ -25,16 +24,27 @@ true - - <_SourcePackagePropsDirPath>$(OutputPath)SourcePackages\$(MSBuildProjectName)\ - <_SourcePackagePropsFilePath>$(_SourcePackagePropsDirPath)$(PackageId).props - + + + <_SourcePackagePropsFilePath>$(IntermediateOutputPath)$(PackageId).props + + + + + + + + + - @@ -53,7 +63,6 @@ ]]> - diff --git a/build/Targets/VisualStudio.targets b/eng/targets/VisualStudio.targets similarity index 100% rename from build/Targets/VisualStudio.targets rename to eng/targets/VisualStudio.targets diff --git a/build/Targets/Vsdconfig.targets b/eng/targets/Vsdconfig.targets similarity index 100% rename from build/Targets/Vsdconfig.targets rename to eng/targets/Vsdconfig.targets diff --git a/build/Targets/Roslyn.Toolsets.Xunit.targets b/eng/targets/XUnit.targets similarity index 73% rename from build/Targets/Roslyn.Toolsets.Xunit.targets rename to eng/targets/XUnit.targets index 50d27736d4939..4c8d6f42195e7 100644 --- a/build/Targets/Roslyn.Toolsets.Xunit.targets +++ b/eng/targets/XUnit.targets @@ -7,7 +7,6 @@ - $(RoslynDesktopRuntimeIdentifier) $(PrepareForBuildDependsOn);AddDefaultTestAppConfig @@ -15,8 +14,8 @@ <_AlreadyHasAppConfig Condition="'%(None.Filename)%(None.Extension)' == 'app.config'">true - <_DefaultAppConfigFile Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">$(MSBuildThisFileDirectory)..\Defaults\Desktop\app.config - <_DefaultAppConfigFile Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">$(MSBuildThisFileDirectory)..\Defaults\Portable\app.config + <_DefaultAppConfigFile Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">$(RepositoryEngineeringDir)config\test\Desktop\app.config + <_DefaultAppConfigFile Condition="'$(TargetFrameworkIdentifier)' != '.NETFramework'">$(RepositoryEngineeringDir)config\test\Core\app.config diff --git a/build/scripts/test-build-correctness.cmd b/eng/test-build-correctness.cmd similarity index 100% rename from build/scripts/test-build-correctness.cmd rename to eng/test-build-correctness.cmd diff --git a/build/scripts/test-build-correctness.ps1 b/eng/test-build-correctness.ps1 similarity index 86% rename from build/scripts/test-build-correctness.ps1 rename to eng/test-build-correctness.ps1 index aa4d2f610c924..5a64dd64eac1c 100644 --- a/build/scripts/test-build-correctness.ps1 +++ b/eng/test-build-correctness.ps1 @@ -39,14 +39,13 @@ try { # Verify the state of our various build artifacts Write-Host "Running BuildBoss" - $buildBossPath = Join-Path $BinariesConfigDir "Exes\BuildBoss\BuildBoss.exe" - $releaseArg = if ($configuration -eq "Release") { "-release" } else { "" } - Exec-Console $buildBossPath "Roslyn.sln Compilers.sln SourceBuild.sln -r $RepoRoot $releaseArg" + $buildBossPath = GetProjectOutputBinary "BuildBoss.exe" + Exec-Console $buildBossPath "-r `"$RepoRoot`" -c $configuration" Write-Host "" # Verify the state of our generated syntax files Write-Host "Checking generated compiler files" - Exec-Block { & (Join-Path $PSScriptRoot "generate-compiler-code.ps1") -test } + Exec-Block { & (Join-Path $PSScriptRoot "generate-compiler-code.ps1") -test -configuration:$configuration } Write-Host "" # Verfiy the state of creating run settings for optprof @@ -58,10 +57,10 @@ try { if (-not (Test-Path env:BUILD_SOURCEBRANCHNAME)) { $env:BUILD_SOURCEBRANCHNAME = "test" } if (-not (Test-Path env:BUILD_BUILDID)) { $env:BUILD_BUILDID = "42.42.42.42" } if (-not (Test-Path env:BUILD_SOURCESDIRECTORY)) { $env:BUILD_SOURCESDIRECTORY = $RepoRoot } - if (-not (Test-Path env:BUILD_STAGINGDIRECTORY)) { $env:BUILD_STAGINGDIRECTORY = $BinariesConfigDir } + if (-not (Test-Path env:BUILD_STAGINGDIRECTORY)) { $env:BUILD_STAGINGDIRECTORY = $ArtifactsDir } # create a fake BootstrapperInfo.json file - $bootstrapperInfoFolder = Join-Path $BinariesConfigDir "MicroBuild\Output" + $bootstrapperInfoFolder = Join-Path $ArtifactsDir "MicroBuild\Output" Create-Directory $bootstrapperInfoFolder $bootstrapperInfoPath = Join-Path $bootstrapperInfoFolder "BootstrapperInfo.json" diff --git a/build/scripts/test-determinism.cmd b/eng/test-determinism.cmd similarity index 100% rename from build/scripts/test-determinism.cmd rename to eng/test-determinism.cmd diff --git a/build/scripts/test-determinism.ps1 b/eng/test-determinism.ps1 similarity index 96% rename from build/scripts/test-determinism.ps1 rename to eng/test-determinism.ps1 index b44ebe7195c52..e91b534f6dd50 100644 --- a/build/scripts/test-determinism.ps1 +++ b/eng/test-determinism.ps1 @@ -27,8 +27,8 @@ $script:skipList = @() function Run-Build([string]$rootDir, [string]$logFileName) { # Clean out the previous run - Write-Host "Cleaning the Binaries" - Remove-Item -Recurse (Get-ConfigDir $rootDir) + Write-Host "Cleaning binaries" + Remove-Item -Recurse (Get-BinDir $rootDir) Remove-Item -Recurse (Get-ObjDir $rootDir) $solution = Join-Path $rootDir "Roslyn.sln" @@ -41,11 +41,11 @@ function Run-Build([string]$rootDir, [string]$logFileName) { } function Get-ObjDir([string]$rootDir) { - return Join-Path $rootDir "Binaries\Obj" + return Join-Path $rootDir "artifacts\obj" } -function Get-ConfigDir([string]$rootDir) { - return Join-Path $rootDir "Binaries\$configuration" +function Get-BinDir([string]$rootDir) { + return Join-Path $rootDir "artifacts\bin" } # Return all of the files that need to be processed for determinism under the given @@ -200,7 +200,7 @@ function Run-Test() { # Run another build in a different source location and verify that path mapping # allows the build to be identical. To do this we'll copy the entire source - # tree under the Binaries\q directory and run a build from there. + # tree under the artifacts\q directory and run a build from there. Write-Host "Building in a different directory" Exec-Command "subst" "$altRootDrive $(Split-Path -parent $RepoRoot)" try { diff --git a/restore.sh b/restore.sh old mode 100644 new mode 100755 index 6feaae16517ac..b1df58421af58 --- a/restore.sh +++ b/restore.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -"$scriptroot/build/scripts/build.sh" --restore $@ \ No newline at end of file +"$scriptroot/eng/build.sh" --restore $@ \ No newline at end of file diff --git a/src/Tools/GenerateSdkPackages/README.md b/scripts/GenerateSdkPackages/README.md similarity index 100% rename from src/Tools/GenerateSdkPackages/README.md rename to scripts/GenerateSdkPackages/README.md diff --git a/src/Tools/GenerateSdkPackages/base.nuspec b/scripts/GenerateSdkPackages/base.nuspec similarity index 100% rename from src/Tools/GenerateSdkPackages/base.nuspec rename to scripts/GenerateSdkPackages/base.nuspec diff --git a/src/Tools/GenerateSdkPackages/files.txt b/scripts/GenerateSdkPackages/files.txt similarity index 100% rename from src/Tools/GenerateSdkPackages/files.txt rename to scripts/GenerateSdkPackages/files.txt diff --git a/src/Tools/GenerateSdkPackages/make-all.ps1 b/scripts/GenerateSdkPackages/make-all.ps1 similarity index 96% rename from src/Tools/GenerateSdkPackages/make-all.ps1 rename to scripts/GenerateSdkPackages/make-all.ps1 index 7defedf4fff08..0c7123103ec24 100644 --- a/src/Tools/GenerateSdkPackages/make-all.ps1 +++ b/scripts/GenerateSdkPackages/make-all.ps1 @@ -31,7 +31,7 @@ try { exit 1 } - . (Join-Path $PSScriptRoot "..\..\..\build\scripts\build-utils.ps1") + . (Join-Path $PSScriptRoot "..\..\eng\build-utils.ps1") $list = Get-Content (Join-Path $PSScriptRoot "files.txt") $dropPath = "\\cpvsbuild\drops\VS\$branch\raw\$version\binaries.x86ret\bin\i386" diff --git a/src/Tools/PublicApi/README.md b/scripts/PublicApi/README.md similarity index 100% rename from src/Tools/PublicApi/README.md rename to scripts/PublicApi/README.md diff --git a/src/Tools/PublicApi/mark-shipped.cmd b/scripts/PublicApi/mark-shipped.cmd similarity index 100% rename from src/Tools/PublicApi/mark-shipped.cmd rename to scripts/PublicApi/mark-shipped.cmd diff --git a/src/Tools/PublicApi/mark-shipped.ps1 b/scripts/PublicApi/mark-shipped.ps1 similarity index 92% rename from src/Tools/PublicApi/mark-shipped.ps1 rename to scripts/PublicApi/mark-shipped.ps1 index f9fbb6e57d863..5c1280e734251 100644 --- a/src/Tools/PublicApi/mark-shipped.ps1 +++ b/scripts/PublicApi/mark-shipped.ps1 @@ -30,8 +30,8 @@ function MarkShipped([string]$dir) { } try { - . (Join-Path $PSScriptRoot "..\..\..\build\scripts\build-utils.ps1") - Push-Location $repoDir + . (Join-Path $PSScriptRoot "..\..\eng\build-utils.ps1") + Push-Location $RepoRoot foreach ($file in Get-ChildItem -re -in "PublicApi.Shipped.txt") { $dir = Split-Path -parent $file diff --git a/build/scripts/README.md b/scripts/README.md similarity index 61% rename from build/scripts/README.md rename to scripts/README.md index 6c6d9cf93e649..7092792d58b44 100644 --- a/build/scripts/README.md +++ b/scripts/README.md @@ -1,6 +1,6 @@ ## Script files -This directory contains scripts, and supporting files, that are used by the build process. +This directory contains scripts, and supporting files, that are invoked manually and not used by the build process. diff --git a/build/scripts/Run-TestsWithProcessWatchdog.ps1 b/scripts/Run-TestsWithProcessWatchdog.ps1 similarity index 100% rename from build/scripts/Run-TestsWithProcessWatchdog.ps1 rename to scripts/Run-TestsWithProcessWatchdog.ps1 diff --git a/src/Tools/UploadAzureZip/CreateAndUploadNugetZip.ps1 b/scripts/UploadAzureZip/CreateAndUploadNugetZip.ps1 similarity index 100% rename from src/Tools/UploadAzureZip/CreateAndUploadNugetZip.ps1 rename to scripts/UploadAzureZip/CreateAndUploadNugetZip.ps1 diff --git a/src/Tools/UploadAzureZip/UploadPerfProject.ps1 b/scripts/UploadAzureZip/UploadPerfProject.ps1 similarity index 100% rename from src/Tools/UploadAzureZip/UploadPerfProject.ps1 rename to scripts/UploadAzureZip/UploadPerfProject.ps1 diff --git a/build/scripts/build_mono.sh b/scripts/build_mono.sh old mode 100755 new mode 100644 similarity index 100% rename from build/scripts/build_mono.sh rename to scripts/build_mono.sh diff --git a/build/scripts/check-for-loc-changes.cmd b/scripts/check-for-loc-changes.cmd similarity index 100% rename from build/scripts/check-for-loc-changes.cmd rename to scripts/check-for-loc-changes.cmd diff --git a/build/scripts/check-for-loc-changes.ps1 b/scripts/check-for-loc-changes.ps1 similarity index 100% rename from build/scripts/check-for-loc-changes.ps1 rename to scripts/check-for-loc-changes.ps1 diff --git a/build/scripts/clean_benchview_tools.cmd b/scripts/clean_benchview_tools.cmd similarity index 100% rename from build/scripts/clean_benchview_tools.cmd rename to scripts/clean_benchview_tools.cmd diff --git a/build/scripts/cleanup_perf.ps1 b/scripts/cleanup_perf.ps1 similarity index 100% rename from build/scripts/cleanup_perf.ps1 rename to scripts/cleanup_perf.ps1 diff --git a/build/scripts/crossgen.sh b/scripts/crossgen.sh old mode 100755 new mode 100644 similarity index 100% rename from build/scripts/crossgen.sh rename to scripts/crossgen.sh diff --git a/build/scripts/edit-designers.ps1 b/scripts/edit-designers.ps1 similarity index 100% rename from build/scripts/edit-designers.ps1 rename to scripts/edit-designers.ps1 diff --git a/build/scripts/generate-badges.ps1 b/scripts/generate-badges.ps1 similarity index 100% rename from build/scripts/generate-badges.ps1 rename to scripts/generate-badges.ps1 diff --git a/build/scripts/install_benchview_tools.cmd b/scripts/install_benchview_tools.cmd similarity index 100% rename from build/scripts/install_benchview_tools.cmd rename to scripts/install_benchview_tools.cmd diff --git a/build/scripts/run_perf.ps1 b/scripts/run_perf.ps1 similarity index 100% rename from build/scripts/run_perf.ps1 rename to scripts/run_perf.ps1 diff --git a/build/scripts/sort-unshipped.cmd b/scripts/sort-unshipped.cmd similarity index 100% rename from build/scripts/sort-unshipped.cmd rename to scripts/sort-unshipped.cmd diff --git a/build/scripts/test-nuget-cache.ps1 b/scripts/test-nuget-cache.ps1 similarity index 100% rename from build/scripts/test-nuget-cache.ps1 rename to scripts/test-nuget-cache.ps1 diff --git a/src/CodeStyle/CSharp/CodeFixes/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.csproj b/src/CodeStyle/CSharp/CodeFixes/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.csproj index 8cc322e44eb5b..7404a491da03e 100644 --- a/src/CodeStyle/CSharp/CodeFixes/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.csproj +++ b/src/CodeStyle/CSharp/CodeFixes/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.csproj @@ -21,17 +21,17 @@ - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp.CodeStyle\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle\Microsoft.CodeAnalysis.CodeStyle.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle.Fixes\Microsoft.CodeAnalysis.CodeStyle.Fixes.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp.CodeStyle\**\Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes\**\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle\**\Microsoft.CodeAnalysis.CodeStyle.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle.Fixes\**\Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.CodeStyle\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.CSharp.CodeStyle.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.CodeStyle.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.CodeStyle.Fixes.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.CodeStyle\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.CodeStyle.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes\Microsoft.VisualStudio.CodingConventions.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\Microsoft.VisualStudio.CodingConventions.dll"/> diff --git a/src/CodeStyle/VisualBasic/CodeFixes/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.vbproj b/src/CodeStyle/VisualBasic/CodeFixes/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.vbproj index 7610c3a6d04ce..cb315185fa56a 100644 --- a/src/CodeStyle/VisualBasic/CodeFixes/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.vbproj +++ b/src/CodeStyle/VisualBasic/CodeFixes/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.vbproj @@ -21,17 +21,17 @@ - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.VisualBasic.CodeStyle\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle\Microsoft.CodeAnalysis.CodeStyle.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle.Fixes\Microsoft.CodeAnalysis.CodeStyle.Fixes.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.VisualBasic.CodeStyle\**\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes\**\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle\**\Microsoft.CodeAnalysis.CodeStyle.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CodeStyle.Fixes\**\Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.CodeStyle\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.CodeStyle.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\Microsoft.CodeAnalysis.CodeStyle.Fixes.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.CodeStyle\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.CodeStyle.resources.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\**\Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll"/> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes\Microsoft.VisualStudio.CodingConventions.dll"/> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes\$(Configuration)\$(TargetFramework)\Microsoft.VisualStudio.CodingConventions.dll"/> diff --git a/src/Compilers/CSharp/CSharpCodeAnalysisRules.ruleset b/src/Compilers/CSharp/CSharpCodeAnalysisRules.ruleset index f526ce05de4d4..dcafed64434b5 100644 --- a/src/Compilers/CSharp/CSharpCodeAnalysisRules.ruleset +++ b/src/Compilers/CSharp/CSharpCodeAnalysisRules.ruleset @@ -1,7 +1,7 @@  - + diff --git a/src/Compilers/CSharp/csc/csc.csproj b/src/Compilers/CSharp/csc/csc.csproj index 28318d26b3a77..15ab813c2f326 100644 --- a/src/Compilers/CSharp/csc/csc.csproj +++ b/src/Compilers/CSharp/csc/csc.csproj @@ -1,7 +1,7 @@  - + AnyCPU AnyCPU diff --git a/src/Compilers/Core/CodeAnalysisRules.ruleset b/src/Compilers/Core/CodeAnalysisRules.ruleset index 6f36c34d8cf4e..f705862df1653 100644 --- a/src/Compilers/Core/CodeAnalysisRules.ruleset +++ b/src/Compilers/Core/CodeAnalysisRules.ruleset @@ -1,7 +1,7 @@  - + diff --git a/src/Compilers/Core/MSBuildTaskTests/Microsoft.Build.Tasks.CodeAnalysis.UnitTests.csproj b/src/Compilers/Core/MSBuildTaskTests/Microsoft.Build.Tasks.CodeAnalysis.UnitTests.csproj index 918d0f01a8706..24aafa56c6614 100644 --- a/src/Compilers/Core/MSBuildTaskTests/Microsoft.Build.Tasks.CodeAnalysis.UnitTests.csproj +++ b/src/Compilers/Core/MSBuildTaskTests/Microsoft.Build.Tasks.CodeAnalysis.UnitTests.csproj @@ -8,7 +8,6 @@ Microsoft.CodeAnalysis.BuildTasks.UnitTests true net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Compilers/Server/VBCSCompiler/VBCSCompiler.csproj b/src/Compilers/Server/VBCSCompiler/VBCSCompiler.csproj index 70a647b44b942..8a319b311d0a2 100644 --- a/src/Compilers/Server/VBCSCompiler/VBCSCompiler.csproj +++ b/src/Compilers/Server/VBCSCompiler/VBCSCompiler.csproj @@ -1,7 +1,7 @@  - + AnyCPU AnyCPU diff --git a/src/Compilers/VisualBasic/BasicCodeAnalysisRules.ruleset b/src/Compilers/VisualBasic/BasicCodeAnalysisRules.ruleset index 99f96330b021c..2eac44dd41bb6 100644 --- a/src/Compilers/VisualBasic/BasicCodeAnalysisRules.ruleset +++ b/src/Compilers/VisualBasic/BasicCodeAnalysisRules.ruleset @@ -1,7 +1,7 @@  - + diff --git a/src/Compilers/VisualBasic/Test/CommandLine/Microsoft.CodeAnalysis.VisualBasic.CommandLine.UnitTests.vbproj b/src/Compilers/VisualBasic/Test/CommandLine/Microsoft.CodeAnalysis.VisualBasic.CommandLine.UnitTests.vbproj index 5946169009f79..701e91239c3de 100644 --- a/src/Compilers/VisualBasic/Test/CommandLine/Microsoft.CodeAnalysis.VisualBasic.CommandLine.UnitTests.vbproj +++ b/src/Compilers/VisualBasic/Test/CommandLine/Microsoft.CodeAnalysis.VisualBasic.CommandLine.UnitTests.vbproj @@ -6,7 +6,6 @@ AnyCPU Library net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest true diff --git a/src/Compilers/VisualBasic/vbc/vbc.csproj b/src/Compilers/VisualBasic/vbc/vbc.csproj index 1ed430e4cf33c..70508600aeee9 100644 --- a/src/Compilers/VisualBasic/vbc/vbc.csproj +++ b/src/Compilers/VisualBasic/vbc/vbc.csproj @@ -1,7 +1,7 @@  - + AnyCPU AnyCPU diff --git a/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.Package.csproj b/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.Package.csproj index 90d794a7975b6..349aa34a4e066 100644 --- a/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.Package.csproj +++ b/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.Package.csproj @@ -21,5 +21,5 @@ - + \ No newline at end of file diff --git a/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.nuspec b/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.nuspec index 1a511c3dd4daa..768f7551dac7f 100644 --- a/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.nuspec +++ b/src/Dependencies/CodeAnalysis.Debugging/Microsoft.CodeAnalysis.Debugging.nuspec @@ -21,7 +21,7 @@ - + diff --git a/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.Package.csproj b/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.Package.csproj index cbf99b671ee8f..ece3bb3831430 100644 --- a/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.Package.csproj +++ b/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.Package.csproj @@ -18,5 +18,5 @@ - + \ No newline at end of file diff --git a/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.nuspec b/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.nuspec index ac07e50c6979c..ac66e6f1d007a 100644 --- a/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.nuspec +++ b/src/Dependencies/PooledObjects/Microsoft.CodeAnalysis.PooledObjects.nuspec @@ -18,7 +18,7 @@ - + diff --git a/src/EditorFeatures/CSharpTest/Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests.csproj b/src/EditorFeatures/CSharpTest/Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests.csproj index 8e39574a334b1..2aad6dd5f2cef 100644 --- a/src/EditorFeatures/CSharpTest/Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests.csproj +++ b/src/EditorFeatures/CSharpTest/Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests.csproj @@ -4,7 +4,6 @@ net472 - $(RoslynDesktopRuntimeIdentifier) AnyCPU AnyCPU Library diff --git a/src/EditorFeatures/CSharpTest2/Microsoft.CodeAnalysis.CSharp.EditorFeatures2.UnitTests.csproj b/src/EditorFeatures/CSharpTest2/Microsoft.CodeAnalysis.CSharp.EditorFeatures2.UnitTests.csproj index fc20d384eb159..5ae70580236be 100644 --- a/src/EditorFeatures/CSharpTest2/Microsoft.CodeAnalysis.CSharp.EditorFeatures2.UnitTests.csproj +++ b/src/EditorFeatures/CSharpTest2/Microsoft.CodeAnalysis.CSharp.EditorFeatures2.UnitTests.csproj @@ -4,7 +4,6 @@ net472 - $(RoslynDesktopRuntimeIdentifier) AnyCPU AnyCPU Library diff --git a/src/EditorFeatures/Test/Microsoft.CodeAnalysis.EditorFeatures.UnitTests.csproj b/src/EditorFeatures/Test/Microsoft.CodeAnalysis.EditorFeatures.UnitTests.csproj index 1e36effdffca4..3614fff41b1a9 100644 --- a/src/EditorFeatures/Test/Microsoft.CodeAnalysis.EditorFeatures.UnitTests.csproj +++ b/src/EditorFeatures/Test/Microsoft.CodeAnalysis.EditorFeatures.UnitTests.csproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.Editor.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/EditorFeatures/Test2/Microsoft.CodeAnalysis.EditorFeatures2.UnitTests.vbproj b/src/EditorFeatures/Test2/Microsoft.CodeAnalysis.EditorFeatures2.UnitTests.vbproj index f858a42e5c20b..82c56825ddbc6 100644 --- a/src/EditorFeatures/Test2/Microsoft.CodeAnalysis.EditorFeatures2.UnitTests.vbproj +++ b/src/EditorFeatures/Test2/Microsoft.CodeAnalysis.EditorFeatures2.UnitTests.vbproj @@ -7,7 +7,6 @@ Library Off net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/EditorFeatures/TestUtilities2/Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities.vbproj b/src/EditorFeatures/TestUtilities2/Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities.vbproj index 91fad6d1abcc3..b36f9fef163b3 100644 --- a/src/EditorFeatures/TestUtilities2/Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities.vbproj +++ b/src/EditorFeatures/TestUtilities2/Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities.vbproj @@ -6,7 +6,6 @@ AnyCPU Library net472 - $(RoslynDesktopRuntimeIdentifier) false diff --git a/src/EditorFeatures/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests.vbproj b/src/EditorFeatures/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests.vbproj index d81a65320dee2..7ce2fd8c95c7a 100644 --- a/src/EditorFeatures/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests.vbproj +++ b/src/EditorFeatures/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests.vbproj @@ -8,7 +8,6 @@ Off Default net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.csproj b/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.csproj index cdbf928e7598e..64a3528491540 100644 --- a/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.csproj +++ b/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.csproj @@ -28,5 +28,5 @@ - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/CSharp/Source/ResultProvider/NetFX20/CSharpResultProvider.NetFX20.csproj b/src/ExpressionEvaluator/CSharp/Source/ResultProvider/NetFX20/CSharpResultProvider.NetFX20.csproj index 1fceea5f33587..02b5687178f10 100644 --- a/src/ExpressionEvaluator/CSharp/Source/ResultProvider/NetFX20/CSharpResultProvider.NetFX20.csproj +++ b/src/ExpressionEvaluator/CSharp/Source/ResultProvider/NetFX20/CSharpResultProvider.NetFX20.csproj @@ -38,5 +38,5 @@ - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/CSharp/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.CSharp.ResultProvider.csproj b/src/ExpressionEvaluator/CSharp/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.CSharp.ResultProvider.csproj index f1ced23ebbc32..e6ecca115cdbc 100644 --- a/src/ExpressionEvaluator/CSharp/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.CSharp.ResultProvider.csproj +++ b/src/ExpressionEvaluator/CSharp/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.CSharp.ResultProvider.csproj @@ -38,5 +38,5 @@ - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/CSharp/Test/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.UnitTests.csproj b/src/ExpressionEvaluator/CSharp/Test/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.UnitTests.csproj index 13e43e5e212fc..7f26da0e80315 100644 --- a/src/ExpressionEvaluator/CSharp/Test/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.UnitTests.csproj +++ b/src/ExpressionEvaluator/CSharp/Test/ExpressionCompiler/Microsoft.CodeAnalysis.CSharp.ExpressionCompiler.UnitTests.csproj @@ -8,7 +8,6 @@ Microsoft.CodeAnalysis.CSharp.UnitTests Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest true diff --git a/src/ExpressionEvaluator/CSharp/Test/ResultProvider/Microsoft.CodeAnalysis.CSharp.ResultProvider.UnitTests.csproj b/src/ExpressionEvaluator/CSharp/Test/ResultProvider/Microsoft.CodeAnalysis.CSharp.ResultProvider.UnitTests.csproj index 78ad6ac8d48db..8a9ce17be890a 100644 --- a/src/ExpressionEvaluator/CSharp/Test/ResultProvider/Microsoft.CodeAnalysis.CSharp.ResultProvider.UnitTests.csproj +++ b/src/ExpressionEvaluator/CSharp/Test/ResultProvider/Microsoft.CodeAnalysis.CSharp.ResultProvider.UnitTests.csproj @@ -8,7 +8,6 @@ Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest true diff --git a/src/ExpressionEvaluator/Core/Source/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.csproj b/src/ExpressionEvaluator/Core/Source/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.csproj index 6df08d60fbd03..ca53f861ea9d0 100644 --- a/src/ExpressionEvaluator/Core/Source/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.csproj +++ b/src/ExpressionEvaluator/Core/Source/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.csproj @@ -53,5 +53,5 @@ compile - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/Core/Test/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.UnitTests.csproj b/src/ExpressionEvaluator/Core/Test/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.UnitTests.csproj index 325d426a851c3..874b4274643c8 100644 --- a/src/ExpressionEvaluator/Core/Test/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.UnitTests.csproj +++ b/src/ExpressionEvaluator/Core/Test/FunctionResolver/Microsoft.CodeAnalysis.FunctionResolver.UnitTests.csproj @@ -9,7 +9,6 @@ Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.UnitTests true net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.vbproj b/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.vbproj index 951df45876921..3ab516ebb2c7e 100644 --- a/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.vbproj +++ b/src/ExpressionEvaluator/VisualBasic/Source/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.vbproj @@ -47,5 +47,5 @@ compile - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/NetFX20/BasicResultProvider.NetFX20.vbproj b/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/NetFX20/BasicResultProvider.NetFX20.vbproj index 9af952750281d..a95632c00b25f 100644 --- a/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/NetFX20/BasicResultProvider.NetFX20.vbproj +++ b/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/NetFX20/BasicResultProvider.NetFX20.vbproj @@ -43,5 +43,5 @@ - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.vbproj b/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.vbproj index 6bd32a43d8733..a9342d5940274 100644 --- a/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.vbproj +++ b/src/ExpressionEvaluator/VisualBasic/Source/ResultProvider/Portable/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.vbproj @@ -40,5 +40,5 @@ - + \ No newline at end of file diff --git a/src/ExpressionEvaluator/VisualBasic/Test/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.UnitTests.vbproj b/src/ExpressionEvaluator/VisualBasic/Test/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.UnitTests.vbproj index bd2d5a8459011..3229e6f735a08 100644 --- a/src/ExpressionEvaluator/VisualBasic/Test/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.UnitTests.vbproj +++ b/src/ExpressionEvaluator/VisualBasic/Test/ExpressionCompiler/Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler.UnitTests.vbproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/ExpressionEvaluator/VisualBasic/Test/ResultProvider/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.UnitTests.vbproj b/src/ExpressionEvaluator/VisualBasic/Test/ResultProvider/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.UnitTests.vbproj index a13dfca20aa63..b7c49f8fa25a0 100644 --- a/src/ExpressionEvaluator/VisualBasic/Test/ResultProvider/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.UnitTests.vbproj +++ b/src/ExpressionEvaluator/VisualBasic/Test/ResultProvider/Microsoft.CodeAnalysis.VisualBasic.ResultProvider.UnitTests.vbproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) Default UnitTest diff --git a/src/Interactive/Host/InteractiveHost32.csproj b/src/Interactive/Host/InteractiveHost32.csproj index 681a26f919a43..43afb9ce092da 100644 --- a/src/Interactive/Host/InteractiveHost32.csproj +++ b/src/Interactive/Host/InteractiveHost32.csproj @@ -1,14 +1,13 @@  - + AnyCPU AnyCPU true Exe net472 - $(RoslynDesktopRuntimeIdentifier) diff --git a/src/Interactive/Host/InteractiveHost64.csproj b/src/Interactive/Host/InteractiveHost64.csproj index ca2d1cd686147..03b9f1079df61 100644 --- a/src/Interactive/Host/InteractiveHost64.csproj +++ b/src/Interactive/Host/InteractiveHost64.csproj @@ -1,14 +1,13 @@  - + AnyCPU AnyCPU false Exe net472 - $(RoslynDesktopRuntimeIdentifier) diff --git a/src/Interactive/csi/csi.csproj b/src/Interactive/csi/csi.csproj index 0845995afc53a..e1fc7db9583e6 100644 --- a/src/Interactive/csi/csi.csproj +++ b/src/Interactive/csi/csi.csproj @@ -1,7 +1,7 @@  - + AnyCPU AnyCPU diff --git a/src/Interactive/vbi/vbi.vbproj b/src/Interactive/vbi/vbi.vbproj index a71b753b7d85a..aed3d120041e9 100644 --- a/src/Interactive/vbi/vbi.vbproj +++ b/src/Interactive/vbi/vbi.vbproj @@ -1,7 +1,7 @@  - + AnyCPU AnyCPU diff --git a/src/NuGet/Directory.Build.targets b/src/NuGet/Directory.Build.targets index 6db8d983b2c4e..efb59dbe60b09 100644 --- a/src/NuGet/Directory.Build.targets +++ b/src/NuGet/Directory.Build.targets @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/src/NuGet/Microsoft.NETCore.Compilers/Microsoft.NETCore.Compilers.Package.csproj b/src/NuGet/Microsoft.NETCore.Compilers/Microsoft.NETCore.Compilers.Package.csproj index ba8f3ba275934..93348d5353b03 100644 --- a/src/NuGet/Microsoft.NETCore.Compilers/Microsoft.NETCore.Compilers.Package.csproj +++ b/src/NuGet/Microsoft.NETCore.Compilers/Microsoft.NETCore.Compilers.Package.csproj @@ -31,45 +31,41 @@ - - <_Dlls>$(ArtifactsConfigurationDir)Dlls\ - <_Exes>$(ArtifactsConfigurationDir)Exes\ - <_File Include="$(MSBuildProjectDirectory)\build\**" TargetDir="build" /> <_File Include="$(MSBuildProjectDirectory)\tools\bincore\*.cmd" TargetDir="tools\bincore" /> - <_File Include="$(_Dlls)Microsoft.Build.Tasks.CodeAnalysis\netcoreapp2.1\publish\*.targets" TargetDir="tools" /> - <_File Include="$(_Dlls)Microsoft.Build.Tasks.CodeAnalysis\netcoreapp2.1\publish\Microsoft.Build.Tasks.CodeAnalysis.dll" TargetDir="tools" /> - <_File Include="$(_Dlls)Microsoft.Build.Tasks.CodeAnalysis\netcoreapp2.1\publish\**\Microsoft.Build.Tasks.CodeAnalysis.resources.dll" TargetDir="tools" /> - <_File Include="$(_Dlls)Microsoft.Build.Tasks.CodeAnalysis\netcoreapp2.1\publish\runtimes\**\*.*" TargetDir="tools\runtimes" /> + <_File Include="$(ArtifactsBinDir)Microsoft.Build.Tasks.CodeAnalysis\$(Configuration)\netcoreapp2.1\publish\*.targets" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.Build.Tasks.CodeAnalysis\$(Configuration)\netcoreapp2.1\publish\Microsoft.Build.Tasks.CodeAnalysis.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.Build.Tasks.CodeAnalysis\$(Configuration)\netcoreapp2.1\publish\**\Microsoft.Build.Tasks.CodeAnalysis.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.Build.Tasks.CodeAnalysis\$(Configuration)\netcoreapp2.1\publish\runtimes\**\*.*" TargetDir="tools\runtimes" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis\Microsoft.CodeAnalysis.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis\**\Microsoft.CodeAnalysis.resources.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.resources.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp\Microsoft.CodeAnalysis.CSharp.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp\**\Microsoft.CodeAnalysis.CSharp.resources.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.CSharp.resources.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic\Microsoft.CodeAnalysis.VisualBasic.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic\**\Microsoft.CodeAnalysis.VisualBasic.resources.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.VisualBasic.resources.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)csc\netcoreapp2.1\publish\csc.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)csc\netcoreapp2.1\publish\csc.deps.json" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)csc\netcoreapp2.1\publish\csc.runtimeconfig.json" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)csc\$(Configuration)\netcoreapp2.1\publish\csc.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)csc\$(Configuration)\netcoreapp2.1\publish\csc.deps.json" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)csc\$(Configuration)\netcoreapp2.1\publish\csc.runtimeconfig.json" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)vbc\netcoreapp2.1\publish\vbc.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)vbc\netcoreapp2.1\publish\vbc.deps.json" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)vbc\netcoreapp2.1\publish\vbc.runtimeconfig.json" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)vbc\$(Configuration)\netcoreapp2.1\publish\vbc.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)vbc\$(Configuration)\netcoreapp2.1\publish\vbc.deps.json" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)vbc\$(Configuration)\netcoreapp2.1\publish\vbc.runtimeconfig.json" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)VBCSCompiler\netcoreapp2.1\publish\VBCSCompiler.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)VBCSCompiler\netcoreapp2.1\publish\VBCSCompiler.deps.json" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)VBCSCompiler\netcoreapp2.1\publish\VBCSCompiler.runtimeconfig.json" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)VBCSCompiler\$(Configuration)\netcoreapp2.1\publish\VBCSCompiler.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)VBCSCompiler\$(Configuration)\netcoreapp2.1\publish\VBCSCompiler.deps.json" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)VBCSCompiler\$(Configuration)\netcoreapp2.1\publish\VBCSCompiler.runtimeconfig.json" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)csc\netcoreapp2.1\publish\System.*.dll" TargetDir="tools\bincore" /> - <_File Include="$(_Exes)csc\netcoreapp2.1\publish\runtimes\**" TargetDir="tools\bincore\runtimes" /> + <_File Include="$(ArtifactsBinDir)csc\$(Configuration)\netcoreapp2.1\publish\System.*.dll" TargetDir="tools\bincore" /> + <_File Include="$(ArtifactsBinDir)csc\$(Configuration)\netcoreapp2.1\publish\runtimes\**" TargetDir="tools\bincore\runtimes" /> diff --git a/src/NuGet/Microsoft.Net.Compilers/CompilerArtifacts.targets b/src/NuGet/Microsoft.Net.Compilers/CompilerArtifacts.targets index 156f41784a176..423a33479bdfd 100644 --- a/src/NuGet/Microsoft.Net.Compilers/CompilerArtifacts.targets +++ b/src/NuGet/Microsoft.Net.Compilers/CompilerArtifacts.targets @@ -6,11 +6,6 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - <_Dlls>$(ArtifactsConfigurationDir)Dlls\ - <_Exes>$(ArtifactsConfigurationDir)Exes\ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - <_NoOptimizationData Include="$(_Exes)csi\net472\System.Threading.Tasks.Extensions.dll"/> - <_NoOptimizationData Include="$(_Exes)csi\net472\System.Buffers.dll"/> - <_NoOptimizationData Include="$(_Exes)csi\net472\System.Memory.dll"/> - <_NoOptimizationData Include="$(_Exes)csi\net472\System.Numerics.Vectors.dll"/> + <_NoOptimizationData Include="$(ArtifactsBinDir)csi\$(Configuration)\net472\System.Threading.Tasks.Extensions.dll"/> + <_NoOptimizationData Include="$(ArtifactsBinDir)csi\$(Configuration)\net472\System.Buffers.dll"/> + <_NoOptimizationData Include="$(ArtifactsBinDir)csi\$(Configuration)\net472\System.Memory.dll"/> + <_NoOptimizationData Include="$(ArtifactsBinDir)csi\$(Configuration)\net472\System.Numerics.Vectors.dll"/> - + diff --git a/src/NuGet/Microsoft.Net.Compilers/Microsoft.Net.Compilers.Package.csproj b/src/NuGet/Microsoft.Net.Compilers/Microsoft.Net.Compilers.Package.csproj index a296c69824e21..42e06ed7d1477 100644 --- a/src/NuGet/Microsoft.Net.Compilers/Microsoft.Net.Compilers.Package.csproj +++ b/src/NuGet/Microsoft.Net.Compilers/Microsoft.Net.Compilers.Package.csproj @@ -33,12 +33,12 @@ <_File Include="$(MSBuildProjectDirectory)\build\**\*.*" TargetDir="build" /> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis\**\Microsoft.CodeAnalysis.resources.dll" TargetDir="tools" /> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp\**\Microsoft.CodeAnalysis.CSharp.resources.dll" TargetDir="tools" /> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.Scripting\**\Microsoft.CodeAnalysis.Scripting.resources.dll" TargetDir="tools" /> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.CSharp.Scripting\**\Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll" TargetDir="tools" /> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.CodeAnalysis.VisualBasic\**\Microsoft.CodeAnalysis.VisualBasic.resources.dll" TargetDir="tools" /> - <_File Include="$(ArtifactsConfigurationDir)Dlls\Microsoft.Build.Tasks.CodeAnalysis\net472\**\Microsoft.Build.Tasks.CodeAnalysis.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.CSharp.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Scripting\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.Scripting.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.Scripting\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic\$(Configuration)\netstandard2.0\**\Microsoft.CodeAnalysis.VisualBasic.resources.dll" TargetDir="tools" /> + <_File Include="$(ArtifactsBinDir)Microsoft.Build.Tasks.CodeAnalysis\$(Configuration)\net472\**\Microsoft.Build.Tasks.CodeAnalysis.resources.dll" TargetDir="tools" /> diff --git a/src/NuGet/VisualStudio/VS.ExternalAPIs.Roslyn.Package.csproj b/src/NuGet/VisualStudio/VS.ExternalAPIs.Roslyn.Package.csproj index f30e5d6013b30..1351fcbb28054 100644 --- a/src/NuGet/VisualStudio/VS.ExternalAPIs.Roslyn.Package.csproj +++ b/src/NuGet/VisualStudio/VS.ExternalAPIs.Roslyn.Package.csproj @@ -62,65 +62,60 @@ - - <_Dlls>$(ArtifactsConfigurationDir)Dlls\ - <_Vsix>$(ArtifactsConfigurationDir)Vsix\ - - - <_File Include="$(_Dlls)Microsoft.CodeAnalysis\Microsoft.CodeAnalysis.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.EditorFeatures\Microsoft.CodeAnalysis.CSharp.EditorFeatures.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.Features\Microsoft.CodeAnalysis.CSharp.Features.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.Workspaces\Microsoft.CodeAnalysis.CSharp.Workspaces.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp\Microsoft.CodeAnalysis.CSharp.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.EditorFeatures.Text\Microsoft.CodeAnalysis.EditorFeatures.Text.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.EditorFeatures.Wpf\Microsoft.CodeAnalysis.EditorFeatures.Wpf.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.EditorFeatures\Microsoft.CodeAnalysis.EditorFeatures.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Features\Microsoft.CodeAnalysis.Features.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Remote.Razor.ServiceHub\Microsoft.CodeAnalysis.Remote.Razor.ServiceHub.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Remote.ServiceHub\Microsoft.CodeAnalysis.Remote.ServiceHub.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Remote.Workspaces\Microsoft.CodeAnalysis.Remote.Workspaces.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.EditorFeatures\Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.Features\Microsoft.CodeAnalysis.VisualBasic.Features.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.Workspaces\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic\Microsoft.CodeAnalysis.VisualBasic.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Workspaces.MSBuild\net472\Microsoft.CodeAnalysis.Workspaces.MSBuild.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Workspaces\Microsoft.CodeAnalysis.Workspaces.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.Workspaces.Desktop\Microsoft.CodeAnalysis.Workspaces.Desktop.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices.CSharp\Microsoft.VisualStudio.LanguageServices.CSharp.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices.Implementation\Microsoft.VisualStudio.LanguageServices.Implementation.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices.Razor.RemoteClient\Microsoft.VisualStudio.LanguageServices.Razor.RemoteClient.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices.SolutionExplorer\Microsoft.VisualStudio.LanguageServices.SolutionExplorer.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices.VisualBasic\Microsoft.VisualStudio.LanguageServices.VisualBasic.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices.Xaml\Microsoft.VisualStudio.LanguageServices.Xaml.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices\Microsoft.VisualStudio.LanguageServices.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.EditorFeatures\$(Configuration)\net472\Microsoft.CodeAnalysis.CSharp.EditorFeatures.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.Features\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Features.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.Workspaces\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.EditorFeatures.Text\$(Configuration)\net472\Microsoft.CodeAnalysis.EditorFeatures.Text.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.EditorFeatures.Wpf\$(Configuration)\net472\Microsoft.CodeAnalysis.EditorFeatures.Wpf.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.EditorFeatures\$(Configuration)\net472\Microsoft.CodeAnalysis.EditorFeatures.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Features\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.Features.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Remote.Razor.ServiceHub\$(Configuration)\net472\Microsoft.CodeAnalysis.Remote.Razor.ServiceHub.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Remote.ServiceHub\$(Configuration)\net472\Microsoft.CodeAnalysis.Remote.ServiceHub.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Remote.Workspaces\$(Configuration)\net472\Microsoft.CodeAnalysis.Remote.Workspaces.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.EditorFeatures\$(Configuration)\net472\Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.Features\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Features.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.Workspaces\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Workspaces.MSBuild\$(Configuration)\net472\Microsoft.CodeAnalysis.Workspaces.MSBuild.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Workspaces\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.Workspaces.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.Workspaces.Desktop\$(Configuration)\net472\Microsoft.CodeAnalysis.Workspaces.Desktop.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices.CSharp\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.CSharp.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices.Implementation\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.Implementation.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices.Razor.RemoteClient\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.Razor.RemoteClient.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices.SolutionExplorer\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.SolutionExplorer.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices.VisualBasic\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.VisualBasic.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices.Xaml\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.Xaml.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.ResultProvider\Microsoft.CodeAnalysis.ExpressionEvaluator.ResultProvider.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.ResultProvider\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.ResultProvider\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.FunctionResolver\netstandard1.3\Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.ExpressionCompiler\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.dll" TargetDir="" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.ExpressionCompiler\Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.ResultProvider\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.ExpressionEvaluator.ResultProvider.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.ResultProvider\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.ResultProvider\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.FunctionResolver\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.ExpressionCompiler\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.ExpressionCompiler\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler.dll" TargetDir="" /> - <_File Include="$(_Dlls)BasicResultProvider.NetFX20\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.dll" TargetDir="RemoteDebugger\net20" /> - <_File Include="$(_Dlls)CSharpResultProvider.NetFX20\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.dll" TargetDir="RemoteDebugger\net20" /> - <_File Include="$(_Dlls)ResultProvider.NetFX20\Microsoft.CodeAnalysis.ExpressionEvaluator.ResultProvider.dll" TargetDir="RemoteDebugger\net20" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.FunctionResolver\net45\Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.dll" TargetDir="RemoteDebugger\net45" /> + <_File Include="$(ArtifactsBinDir)BasicResultProvider.NetFX20\$(Configuration)\net20\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.dll" TargetDir="RemoteDebugger\net20" /> + <_File Include="$(ArtifactsBinDir)CSharpResultProvider.NetFX20\$(Configuration)\net20\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.dll" TargetDir="RemoteDebugger\net20" /> + <_File Include="$(ArtifactsBinDir)ResultProvider.NetFX20\$(Configuration)\net20\Microsoft.CodeAnalysis.ExpressionEvaluator.ResultProvider.dll" TargetDir="RemoteDebugger\net20" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.FunctionResolver\$(Configuration)\net45\Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.dll" TargetDir="RemoteDebugger\net45" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.ResultProvider\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.CSharp.ExpressionCompiler\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.ResultProvider\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> - <_File Include="$(_Dlls)Microsoft.VisualStudio.LanguageServices\Microsoft.VisualStudio.LanguageServices.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.FunctionResolver\netstandard1.3\Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> - <_File Include="$(_Dlls)Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.ResultProvider\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ResultProvider.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.CSharp.ExpressionCompiler\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.ResultProvider\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ResultProvider.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> + <_File Include="$(ArtifactsBinDir)Microsoft.VisualStudio.LanguageServices\$(Configuration)\net472\Microsoft.VisualStudio.LanguageServices.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.FunctionResolver\$(Configuration)\netstandard1.3\Microsoft.CodeAnalysis.ExpressionEvaluator.FunctionResolver.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> + <_File Include="$(ArtifactsBinDir)Microsoft.CodeAnalysis.VisualBasic.ExpressionCompiler\$(Configuration)\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler.vsdconfig" TargetDir="LanguageServiceRegistration\ExpressionEvaluatorPackage" /> - <_File Include="$(_Vsix)Roslyn.VisualStudio.Setup\Humanizer.dll" TargetDir="" /> - <_File Include="$(_Vsix)Roslyn.VisualStudio.Setup\ICSharpCode.Decompiler.dll" TargetDir="" /> - <_File Include="$(_Vsix)Roslyn.VisualStudio.Setup\System.Composition.Hosting.dll" TargetDir="" /> - <_File Include="$(_Vsix)Roslyn.VisualStudio.Setup\System.Composition.TypedParts.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Roslyn.VisualStudio.Setup\$(Configuration)\net472\Humanizer.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Roslyn.VisualStudio.Setup\$(Configuration)\net472\ICSharpCode.Decompiler.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Roslyn.VisualStudio.Setup\$(Configuration)\net472\System.Composition.Hosting.dll" TargetDir="" /> + <_File Include="$(ArtifactsBinDir)Roslyn.VisualStudio.Setup\$(Configuration)\net472\System.Composition.TypedParts.dll" TargetDir="" /> diff --git a/src/NuGet/VisualStudio/VS.Tools.Roslyn.Package.csproj b/src/NuGet/VisualStudio/VS.Tools.Roslyn.Package.csproj index cf87ffd7d7391..0b0408d8f7e67 100644 --- a/src/NuGet/VisualStudio/VS.Tools.Roslyn.Package.csproj +++ b/src/NuGet/VisualStudio/VS.Tools.Roslyn.Package.csproj @@ -35,7 +35,7 @@ <_File Include="$(MSBuildProjectDirectory)\Init.cmd" TargetDir="" /> - <_File Remove="$(ArtifactsConfigurationDir)Exes\csc\net472\csc.exe"/> + <_File Remove="$(ArtifactsBinDir)csc\$(Configuration)\net472\csc.exe"/> <_File Include="$(IntermediateOutputPath)csc.exe"/> @@ -49,10 +49,10 @@ - + diff --git a/src/Scripting/CSharpTest.Desktop/Microsoft.CodeAnalysis.CSharp.Scripting.Desktop.UnitTests.csproj b/src/Scripting/CSharpTest.Desktop/Microsoft.CodeAnalysis.CSharp.Scripting.Desktop.UnitTests.csproj index b9a4429b4c728..e80727e74d849 100644 --- a/src/Scripting/CSharpTest.Desktop/Microsoft.CodeAnalysis.CSharp.Scripting.Desktop.UnitTests.csproj +++ b/src/Scripting/CSharpTest.Desktop/Microsoft.CodeAnalysis.CSharp.Scripting.Desktop.UnitTests.csproj @@ -8,7 +8,6 @@ Microsoft.CodeAnalysis.CSharp.Scripting.UnitTests true net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Scripting/CoreTest.Desktop/Microsoft.CodeAnalysis.Scripting.Desktop.UnitTests.csproj b/src/Scripting/CoreTest.Desktop/Microsoft.CodeAnalysis.Scripting.Desktop.UnitTests.csproj index f0379cab72f3a..99635ca8ac83a 100644 --- a/src/Scripting/CoreTest.Desktop/Microsoft.CodeAnalysis.Scripting.Desktop.UnitTests.csproj +++ b/src/Scripting/CoreTest.Desktop/Microsoft.CodeAnalysis.Scripting.Desktop.UnitTests.csproj @@ -8,7 +8,6 @@ Microsoft.CodeAnalysis.Scripting.Test true net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Scripting/VisualBasicTest.Desktop/Microsoft.CodeAnalysis.VisualBasic.Scripting.Desktop.UnitTests.vbproj b/src/Scripting/VisualBasicTest.Desktop/Microsoft.CodeAnalysis.VisualBasic.Scripting.Desktop.UnitTests.vbproj index 2ff7d37d42d03..d018c778c9e12 100644 --- a/src/Scripting/VisualBasicTest.Desktop/Microsoft.CodeAnalysis.VisualBasic.Scripting.Desktop.UnitTests.vbproj +++ b/src/Scripting/VisualBasicTest.Desktop/Microsoft.CodeAnalysis.VisualBasic.Scripting.Desktop.UnitTests.vbproj @@ -8,7 +8,6 @@ Properties true net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Setup/DevDivInsertionFiles/DevDivInsertionFiles.csproj b/src/Setup/DevDivInsertionFiles/DevDivInsertionFiles.csproj index 12d79d339fc19..b6b7d25f91a81 100644 --- a/src/Setup/DevDivInsertionFiles/DevDivInsertionFiles.csproj +++ b/src/Setup/DevDivInsertionFiles/DevDivInsertionFiles.csproj @@ -15,6 +15,7 @@ net472 Library + true @@ -25,9 +26,7 @@ - <_DevDivInsertionFilesDir>$(ArtifactsConfigurationDir)DevDivInsertionFiles\ - <_DependentAssemblyVersionsFile>$(_DevDivInsertionFilesDir)DependentAssemblyVersions.csv - <_ManagedDependenciesDir>$(ArtifactsConfigurationDir)DevDivPackages\ManagedDependencies\ + <_DependentAssemblyVersionsFile>$(DevDivPackagesDir)DependentAssemblyVersions.csv <_OptimizedDependenciesDir>$(ArtifactsTmpDir)OptimizedDependencies\ <_OptimizedNuGetPackageVersionSuffix Condition="'$(OfficialBuild)' != 'true'">vs-ci <_OptimizedNuGetPackageVersionSuffix Condition="'$(OfficialBuild)' == 'true'">vs-$(VersionSuffixDateStamp)-$(VersionSuffixBuildOfTheDayPadded) @@ -135,7 +134,9 @@ <_PreviousOptimizedFile>$([System.IO.Path]::Combine($(IbcOptimizationDataDir), '$([System.IO.Path]::GetFileNameWithoutExtension(%(_DependencyWithExpectedMetadata.DevEnvLib))).pgo')) - <_DependencyWithOptimizationData Include="@(_DependencyWithExpectedMetadata)" Condition="'%(_DependencyWithExpectedMetadata.OverwriteNgenOptimizationData)' == 'true'" /> + <_DependencyWithOptimizationData Include="@(_DependencyWithExpectedMetadata)" + Condition="'%(_DependencyWithExpectedMetadata.OverwriteNgenOptimizationData)' == 'true' and '$(ApplyPartialNgenOptimization)' == 'true'" /> + <_DependencyWithoutOptimizationData Include="@(_DependencyWithExpectedMetadata)" Exclude="@(_DependencyWithOptimizationData)"/> @@ -151,7 +152,7 @@ Inputs="$(MSBuildAllProjects)" Outputs="$(_DependentAssemblyVersionsFile)"> - + @@ -177,11 +178,11 @@ Condition="'$(Configuration)' == 'Release' and '$(ContinuousIntegrationBuild)' == 'true'" DependsOnTargets="_CalculateDependenciesToInsert;_UnpackOptimizedDependencies;ApplyOptimizations"> - + - + diff --git a/src/Setup/DevDivInsertionFiles/Directory.Build.targets b/src/Setup/DevDivInsertionFiles/Directory.Build.targets index 399381dca7064..8b5a16a6151df 100644 --- a/src/Setup/DevDivInsertionFiles/Directory.Build.targets +++ b/src/Setup/DevDivInsertionFiles/Directory.Build.targets @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/src/Setup/DevDivVsix/CompilersPackage/Microsoft.CodeAnalysis.Compilers.Setup.csproj b/src/Setup/DevDivVsix/CompilersPackage/Microsoft.CodeAnalysis.Compilers.Setup.csproj index 7420bc2fb6ec4..3d7ff80c9b1c1 100644 --- a/src/Setup/DevDivVsix/CompilersPackage/Microsoft.CodeAnalysis.Compilers.Setup.csproj +++ b/src/Setup/DevDivVsix/CompilersPackage/Microsoft.CodeAnalysis.Compilers.Setup.csproj @@ -3,6 +3,7 @@ net472 Custom + true Microsoft.CodeAnalysis.Compilers.vsix @@ -30,7 +31,7 @@ DependsOnTargets="InitializeCompilerArtifacts"> - + <_PreviousOptimizedFile>$([System.IO.Path]::Combine($(IbcOptimizationDataDir), '$([System.IO.Path]::GetFileNameWithoutExtension(%(CompilerArtifact.Identity))).pgo')) <_OptimizeAssembly>$(IntermediateOutputPath)optimized\$([System.IO.Path]::GetFileName(%(CompilerArtifact.Identity))) @@ -48,7 +49,7 @@ DependsOnTargets="_CalculateCompilerArtifactsToOptimize" Inputs="@(CompilerArtifact)" Outputs="@(CompilerArtifact->'%(_OptimizeAssembly)')" - Condition="'$(Configuration)' == 'Release' and '$(ContinuousIntegrationBuild)' == 'true'"> + Condition="'$(Configuration)' == 'Release' and '$(ContinuousIntegrationBuild)' == 'true' and '$(ApplyPartialNgenOptimization)' == 'true'"> diff --git a/src/Setup/DevDivVsix/Directory.Build.targets b/src/Setup/DevDivVsix/Directory.Build.targets index 633ccc41c604f..906c11843bbb1 100644 --- a/src/Setup/DevDivVsix/Directory.Build.targets +++ b/src/Setup/DevDivVsix/Directory.Build.targets @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/src/Setup/Installer/Directory.Build.targets b/src/Setup/Installer/Directory.Build.targets index 633ccc41c604f..906c11843bbb1 100644 --- a/src/Setup/Installer/Directory.Build.targets +++ b/src/Setup/Installer/Directory.Build.targets @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/src/Setup/Installer/Installer.Package.csproj b/src/Setup/Installer/Installer.Package.csproj index 9c12cdf89fdd5..c06eb5ef597ae 100644 --- a/src/Setup/Installer/Installer.Package.csproj +++ b/src/Setup/Installer/Installer.Package.csproj @@ -13,7 +13,7 @@ - <_InstallerDir>$(ArtifactsDir)Installer\ + <_InstallerDir>$(VisualStudioSetupOutputPath)Installer\ <_InstallerFilePath>$(_InstallerDir)Roslyn_Preview.zip <_ZipDir>$(IntermediateOutputPath)Zip\ <_DeploymentVsixPath>$(VisualStudioSetupOutputPath)RoslynDeployment.vsix diff --git a/src/Test/Perf/StackDepthTest/StackDepthTest.csproj b/src/Test/Perf/StackDepthTest/StackDepthTest.csproj index d759441941e73..648347b36227c 100644 --- a/src/Test/Perf/StackDepthTest/StackDepthTest.csproj +++ b/src/Test/Perf/StackDepthTest/StackDepthTest.csproj @@ -5,7 +5,6 @@ AnyCPU Exe net472 - $(RoslynDesktopRuntimeIdentifier) true false diff --git a/src/Test/Utilities/Portable/Metadata/IlasmUtilities.cs b/src/Test/Utilities/Portable/Metadata/IlasmUtilities.cs index 1b13c02b72f66..bb077a12c9adc 100644 --- a/src/Test/Utilities/Portable/Metadata/IlasmUtilities.cs +++ b/src/Test/Utilities/Portable/Metadata/IlasmUtilities.cs @@ -33,14 +33,20 @@ private static string GetIlasmPath() var directory = Path.GetDirectoryName(RuntimeUtilities.GetAssemblyLocation(typeof(RuntimeUtilities))); string path = null; - while (directory != null && !File.Exists(path = Path.Combine(directory, "Binaries", "Tools", "ILAsm", ilasmExeName))) +#if DEBUG + const string configuration = "Debug"; +#else + const string configuration = "Release"; +#endif + + while (directory != null && !File.Exists(path = Path.Combine(directory, "artifacts", "tools", "ILAsm", configuration, ilasmExeName))) { directory = Path.GetDirectoryName(directory); } if (directory == null) { - throw new NotSupportedException("Unable to find CoreCLR ilasm tool. Has the Microsoft.NETCore.ILAsm package been published to ./Binaries/Tools?"); + throw new NotSupportedException("Unable to find CoreCLR ilasm tool. Has the Microsoft.NETCore.ILAsm package been published to /artifacts/tools?"); } return path; diff --git a/src/Tools/AnalyzerRunner/AnalyzerRunner.csproj b/src/Tools/AnalyzerRunner/AnalyzerRunner.csproj index e6b3e7f89bbab..52b2590af2165 100644 --- a/src/Tools/AnalyzerRunner/AnalyzerRunner.csproj +++ b/src/Tools/AnalyzerRunner/AnalyzerRunner.csproj @@ -1,13 +1,12 @@  - + AnyCPU AnyCPU Exe net472 - $(RoslynDesktopRuntimeIdentifier) true diff --git a/src/Tools/BuildBoss/BuildBoss.csproj b/src/Tools/BuildBoss/BuildBoss.csproj index a48c304533cba..88d7145d01669 100644 --- a/src/Tools/BuildBoss/BuildBoss.csproj +++ b/src/Tools/BuildBoss/BuildBoss.csproj @@ -7,7 +7,6 @@ Exe net472 false - $(RoslynDesktopRuntimeIdentifier) false false diff --git a/src/Tools/BuildBoss/CompilerNuGetCheckerUtil.cs b/src/Tools/BuildBoss/CompilerNuGetCheckerUtil.cs index e0db01592eb25..3f9dbcc006136 100644 --- a/src/Tools/BuildBoss/CompilerNuGetCheckerUtil.cs +++ b/src/Tools/BuildBoss/CompilerNuGetCheckerUtil.cs @@ -29,13 +29,15 @@ internal sealed class PackageContentsChecker : ICheckerUtil internal static StringComparer PathComparer { get; } = StringComparer.OrdinalIgnoreCase; internal static StringComparison PathComparison { get; } = StringComparison.OrdinalIgnoreCase; - internal string ConfigDirectory { get; } + internal string ArtifactsDirectory { get; } + internal string Configuration { get; } internal string RepositoryDirectory { get; } - internal PackageContentsChecker(string repositoryDirectory, string configDirectory) + internal PackageContentsChecker(string repositoryDirectory, string artifactsDirectory, string configuration) { RepositoryDirectory = repositoryDirectory; - ConfigDirectory = configDirectory; + ArtifactsDirectory = artifactsDirectory; + Configuration = configuration; } public bool Check(TextWriter textWriter) @@ -60,11 +62,12 @@ private bool CheckDesktop(TextWriter textWriter) { var (allGood, dllRelativeNames) = GetDllRelativeNames( textWriter, - @"Exes\Csc\net472", - @"Exes\Vbc\net472", - @"Exes\Csi\net472", - @"Exes\VBCSCompiler\net472", - @"Dlls\Microsoft.Build.Tasks.CodeAnalysis\net472"); + $@"csc\{Configuration}\net472", + $@"vbc\{Configuration}\net472", + $@"csi\{Configuration}\net472", + $@"VBCSCompiler\{Configuration}\net472", + $@"Microsoft.Build.Tasks.CodeAnalysis\{Configuration}\net472"); + if (!allGood) { return false; @@ -83,13 +86,13 @@ private bool CheckDesktop(TextWriter textWriter) allGood &= VerifyNuPackage( textWriter, - FindNuGetPackage(@"NuGet\PreRelease", "Microsoft.Net.Compilers"), + FindNuGetPackage(Path.Combine(ArtifactsDirectory, "packages", Configuration, "Shipping"), "Microsoft.Net.Compilers"), @"tools", dllRelativeNames); allGood &= VerifyNuPackage( textWriter, - FindNuGetPackage(@"DevDivPackages\Roslyn", "VS.Tools.Roslyn"), + FindNuGetPackage(Path.Combine(ArtifactsDirectory, "VSSetup", Configuration, "DevDivPackages"), "VS.Tools.Roslyn"), string.Empty, dllRelativeNames); return allGood; @@ -102,9 +105,9 @@ private bool CheckCoreClr(TextWriter textWriter) { var (allGood, dllRelativeNames) = GetDllRelativeNames( textWriter, - @"Exes\Csc\netcoreapp2.1\publish", - @"Exes\Vbc\netcoreapp2.1\publish", - @"Exes\VBCSCompiler\netcoreapp2.1\publish"); + $@"csc\{Configuration}\netcoreapp2.1\publish", + $@"vbc\{Configuration}\netcoreapp2.1\publish", + $@"VBCSCompiler\{Configuration}\netcoreapp2.1\publish"); if (!allGood) { return false; @@ -119,7 +122,7 @@ private bool CheckCoreClr(TextWriter textWriter) return VerifyNuPackage( textWriter, - FindNuGetPackage(@"NuGet\PreRelease", "Microsoft.NETCore.Compilers"), + FindNuGetPackage(Path.Combine(ArtifactsDirectory, "packages", Configuration, "Shipping"), "Microsoft.NETCore.Compilers"), @"tools\bincore", dllRelativeNames); } @@ -198,7 +201,7 @@ IEnumerable enumerateFiles() { foreach (var directory in directoryPaths) { - recordDependencies(md5, Path.Combine(ConfigDirectory, directory)); + recordDependencies(md5, Path.Combine(ArtifactsDirectory, "bin", directory)); } } @@ -308,15 +311,8 @@ IEnumerable getPartsInFolder() private string FindNuGetPackage(string directory, string partialName) { - var file = Directory - .EnumerateFiles(Path.Combine(ConfigDirectory, directory), partialName + "*.nupkg") - .SingleOrDefault(); - if (file == null) - { - throw new Exception($"Unable to find NuPgk {partialName} in {directory}"); - } - - return file; + var file = Directory.EnumerateFiles(directory, partialName + "*.nupkg").SingleOrDefault(); + return file ?? throw new Exception($"Unable to find '{partialName}*.nupkg' in '{directory}'"); } } } diff --git a/src/Tools/BuildBoss/Program.cs b/src/Tools/BuildBoss/Program.cs index 55009984ad4fe..50635ce5b98e2 100644 --- a/src/Tools/BuildBoss/Program.cs +++ b/src/Tools/BuildBoss/Program.cs @@ -29,37 +29,64 @@ internal static int Main(string[] args) private static bool MainCore(string[] args) { string repositoryDirectory = null; - bool isRelease = false; + string configuration = "Debug"; List solutionFiles; var options = new OptionSet { - { "r|root=", "The repository root", r => repositoryDirectory = r }, - { "release", "Use a release build", r => isRelease = true } + { "r|root=", "The repository root", value => repositoryDirectory = value }, + { "c|configuration=", "Build configuration", value => configuration = value } }; + if (configuration != "Debug" && configuration != "Release") + { + Console.Error.WriteLine($"Invalid configuration: '{configuration}'"); + return false; + } + try { solutionFiles = options.Parse(args); } catch (Exception ex) { - Console.WriteLine(ex.Message); - options.WriteOptionDescriptions(Console.Out); + Console.Error.WriteLine(ex.Message); + options.WriteOptionDescriptions(Console.Error); return false; } if (string.IsNullOrEmpty(repositoryDirectory)) { - repositoryDirectory = solutionFiles.Count > 0 - ? Path.GetDirectoryName(solutionFiles[0]) - : AppContext.BaseDirectory; + repositoryDirectory = FindRepositoryRoot( + (solutionFiles.Count > 0) ? Path.GetDirectoryName(solutionFiles[0]) : AppContext.BaseDirectory); + + if (repositoryDirectory == null) + { + Console.Error.WriteLine("Unable to find repository root"); + return false; + } + } + + if (solutionFiles.Count == 0) + { + solutionFiles = Directory.EnumerateFiles(repositoryDirectory, "*.sln").ToList(); + } + + return Go(repositoryDirectory, configuration, solutionFiles); + } + + private static string FindRepositoryRoot(string startDirectory) + { + string dir = startDirectory; + while (dir != null && !File.Exists(Path.Combine(dir, "global.json"))) + { + dir = Path.GetDirectoryName(dir); } - return Go(repositoryDirectory, isRelease, solutionFiles); + return dir; } - private static bool Go(string repositoryDirectory, bool isRelease, List solutionFileNames) + private static bool Go(string repositoryDirectory, string configuration, List solutionFileNames) { var allGood = true; foreach (var solutionFileName in solutionFileNames) @@ -67,12 +94,11 @@ private static bool Go(string repositoryDirectory, bool isRelease, List allGood &= ProcessSolution(Path.Combine(repositoryDirectory, solutionFileName)); } - var configDirectory = Path.Combine(repositoryDirectory, "Binaries"); - configDirectory = Path.Combine(configDirectory, isRelease ? "Release" : "Debug"); + var artifactsDirectory = Path.Combine(repositoryDirectory, "artifacts"); - allGood &= ProcessStructuredLog(configDirectory); + allGood &= ProcessStructuredLog(artifactsDirectory, configuration); allGood &= ProcessTargets(repositoryDirectory); - allGood &= ProcessPackages(repositoryDirectory, configDirectory); + allGood &= ProcessPackages(repositoryDirectory, artifactsDirectory, configuration); if (!allGood) { @@ -107,21 +133,21 @@ private static bool ProcessSolution(string solutionFilePath) private static bool ProcessTargets(string repositoryDirectory) { - var targetsDirectory = Path.Combine(repositoryDirectory, @"build\Targets"); + var targetsDirectory = Path.Combine(repositoryDirectory, @"eng\targets"); var checker = new TargetsCheckerUtil(targetsDirectory); return CheckCore(checker, $"Targets {targetsDirectory}"); } - private static bool ProcessStructuredLog(string configDirectory) + private static bool ProcessStructuredLog(string artifactsDirectory, string configuration) { - var logFilePath = Path.Combine(configDirectory, @"Logs\Build.binlog"); + var logFilePath = Path.Combine(artifactsDirectory, $@"log\{configuration}\Build.binlog"); var util = new StructuredLoggerCheckerUtil(logFilePath); return CheckCore(util, $"Structured log {logFilePath}"); } - private static bool ProcessPackages(string repositoryDirectory, string configDirectory) + private static bool ProcessPackages(string repositoryDirectory, string artifactsDirectory, string configuration) { - var util = new PackageContentsChecker(repositoryDirectory, configDirectory); + var util = new PackageContentsChecker(repositoryDirectory, artifactsDirectory, configuration); return CheckCore(util, $"NuPkg and SWR files"); } } diff --git a/src/Tools/BuildUtil/BuildUtil.nuspec b/src/Tools/BuildUtil/BuildUtil.nuspec deleted file mode 100644 index 74ee8178c834f..0000000000000 --- a/src/Tools/BuildUtil/BuildUtil.nuspec +++ /dev/null @@ -1,17 +0,0 @@ - - - - Roslyn.Build.Util - 0.9.8-beta - Roslyn.Build.Util - RoslynTeam - RoslynTeam - http://www.apache.org/licenses/LICENSE-2.0 - https://github.com/dotnet/roslyn - false - Provides a number of small tasks used in the Roslyn build process. - - - - - diff --git a/src/Tools/BuildUtil/Key.snk b/src/Tools/BuildUtil/Key.snk deleted file mode 100644 index 79f7c4b8ef776..0000000000000 Binary files a/src/Tools/BuildUtil/Key.snk and /dev/null differ diff --git a/src/Tools/BuildUtil/Roslyn.MSBuild.Util.csproj b/src/Tools/BuildUtil/Roslyn.MSBuild.Util.csproj deleted file mode 100644 index f5a3b223c97cc..0000000000000 --- a/src/Tools/BuildUtil/Roslyn.MSBuild.Util.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - AnyCPU - AnyCPU - Library - Roslyn.MSBuild.Util - net472 - Key.snk - - - - - - - False - - - - - - - \ No newline at end of file diff --git a/src/Tools/BuildUtil/ValidateBuildEnvironment.cs b/src/Tools/BuildUtil/ValidateBuildEnvironment.cs deleted file mode 100644 index 77366d04b66f2..0000000000000 --- a/src/Tools/BuildUtil/ValidateBuildEnvironment.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Text; -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; - -namespace Roslyn.MSBuild.Util -{ - public sealed class ValidateBuildEnvironment : Task - { - [Required] - public string MSBuildBinPath { get; set; } - - /// - /// The minimum file version for MSBuild.exe. The task will fail if the MSBuild version exceeds - /// this value. - /// - /// Use the following page to map releases to file versions - /// - /// https://github.com/Microsoft/msbuild/releases - /// - [Required] - public string MSBuildMinimumFileVersion { get; set; } - - /// - /// Friendly developer facing version of the MSBuild message. - /// - [Required] - public string MSBuildMinimumDisplayVersion { get; set; } - - public override bool Execute() - { - var allGood = true; - - if (MSBuildMinimumFileVersion != null) - { - var msbuildFileName = "MSBuild." + (Environment.NewLine == "\r\n" ? "exe" : "dll"); - var msbuildFilePath = Path.Combine(MSBuildBinPath, msbuildFileName); - var fileVersionInfo = FileVersionInfo.GetVersionInfo(msbuildFilePath); - var fileVersion = new Version(fileVersionInfo.FileVersion); - var minimumVersion = new Version(MSBuildMinimumFileVersion); - if (fileVersion < minimumVersion) - { - Log.LogError($"MSBuild version {fileVersion} is less than the required minimum version {minimumVersion} ({MSBuildMinimumDisplayVersion})"); - allGood = false; - } - } - - return allGood; - } - } -} diff --git a/src/Tools/GenerateSdkPackages/change-all.ps1 b/src/Tools/GenerateSdkPackages/change-all.ps1 deleted file mode 100644 index 54c9491163200..0000000000000 --- a/src/Tools/GenerateSdkPackages/change-all.ps1 +++ /dev/null @@ -1,54 +0,0 @@ -[CmdletBinding(PositionalBinding=$false)] -Param([string]$version = "") - -Set-StrictMode -version 2.0 -$ErrorActionPreference = "Stop" - -try { - if ($version -eq "") { - Write-Host "Need a -version" - exit 1 - } - - $rootPath = Resolve-Path (Join-Path $PSScriptRoot "..\..\..\") - $repoUtil = Join-Path $rootPath "Binaries\Debug\Exes\RepoUtil\RepoUtil.exe" - if (-not (Test-Path $repoUtil)) { - Write-Host "RepoUtil not found $repoUtil" - exit 1 - } - - $fileList = Get-Content (Join-Path $PSScriptRoot "files.txt") - $shortVersion = $version.Substring(0, $version.IndexOf('.')) - $packageVersion = "15.0.$shortVersion-alpha" - $changeList = @() - - Write-Host "Moving version to $packageVersion" - foreach ($item in $fileList) { - $name = Split-Path -leaf $item - $simpleName = [IO.Path]::GetFileNameWithoutExtension($name) - $changeList += "$simpleName $packageVersion" - } - - $changeFilePath = [IO.Path]::GetTempFileName() - $changeList -join [Environment]::NewLine | Out-File $changeFilePath - Write-Host (gc -raw $changeFilePath) - - $fullSln = Join-Path $rootPath "..\Roslyn.sln" - if (Test-Path $fullSln) { - # Running as a part of the full enlisment. Need to add some extra paramteers - $sourcesPath = Resolve-Path (Join-Path $rootPath "..") - $generatePath = $rootPath - $configPath = Join-Path $rootPath "build\config\RepoUtilData.json" - & $repoUtil -sourcesPath $sourcesPath -generatePath $generatePath -config $configPath change -version $changeFilePath - } - else { - # Just open so run there. - & $repoUtil change -version $changeFilePath - } - -} -catch { - Write-Host $_ - Write-Host $_.Exception - exit 1 -} diff --git a/src/Tools/ILAsm/IlAsmDeploy.csproj b/src/Tools/ILAsm/IlAsmDeploy.csproj index 21585eea7210a..bedf1092119a8 100644 --- a/src/Tools/ILAsm/IlAsmDeploy.csproj +++ b/src/Tools/ILAsm/IlAsmDeploy.csproj @@ -15,7 +15,7 @@ true - $(ArtifactsDir)Tools\ILAsm\ + $(ArtifactsDir)tools\ILAsm\$(Configuration)\ diff --git a/src/Tools/MicroBuild/cibuild.cmd b/src/Tools/MicroBuild/cibuild.cmd deleted file mode 100644 index 550fc53fff3e9..0000000000000 --- a/src/Tools/MicroBuild/cibuild.cmd +++ /dev/null @@ -1 +0,0 @@ -REM stub file (remove once netci.groovy is updated) \ No newline at end of file diff --git a/src/Tools/RepoUtil/App.config b/src/Tools/RepoUtil/App.config deleted file mode 100644 index ecdcf8a54da31..0000000000000 --- a/src/Tools/RepoUtil/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/Tools/RepoUtil/ChangeCommand.cs b/src/Tools/RepoUtil/ChangeCommand.cs deleted file mode 100644 index 71b3ffb6d2416..0000000000000 --- a/src/Tools/RepoUtil/ChangeCommand.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Xml; -using System.Xml.Linq; - -namespace RepoUtil -{ - /// - /// Responsible for changing the repo to use a new set of NuGet packages. - /// - internal sealed class ChangeCommand : ICommand - { - private readonly RepoData _repoData; - private readonly string _generateDirectory; - - internal ChangeCommand(RepoData repoData, string generateDir) - { - _repoData = repoData; - _generateDirectory = generateDir; - } - - public bool Run(TextWriter writer, string[] args) - { - if (!TryParseChangeSource(writer, args, out var changes)) - { - return false; - } - - ChangeAll(changes); - return true; - } - - /// - /// Parse out the arguments that can be provided to the 'change' command. - /// - private static bool TryParseChangeSource(TextWriter writer, string[] args, out List changes) - { - changes = new List(); - var allGood = true; - var index = 0; - while (index < args.Length && allGood) - { - var arg = args[index]; - index++; - - switch (arg.ToLower()) - { - case "-version": - if (index < args.Length) - { - allGood = TryParseVersionSource(writer, args[index], changes); - index++; - } - else - { - Console.WriteLine($"The -version switch needs a value"); - allGood = false; - } - break; - default: - if (!TryParsePackage(writer, arg, changes)) - { - allGood = false; - } - break; - } - } - - return allGood; - } - - /// - /// Parse out a file that has the format used on the dotnet/versions repo. Essentially every entry in the file - /// will be a package name, space, version. - /// - private static bool TryParseVersionSource(TextWriter writer, string path, List changes) - { - try - { - var allGood = true; - foreach (var line in File.ReadAllLines(path)) - { - if (string.IsNullOrWhiteSpace(line)) - { - continue; - } - - if (!TryParsePackage(writer, line, changes)) - { - writer.WriteLine($"Error parsing {line}"); - allGood = false; - } - } - - return allGood; - } - catch (Exception ex) - { - writer.WriteLine($"Error parsing {path}: {ex.ToString()}"); - writer.WriteLine(ex.StackTrace); - changes = null; - return false; - } - } - - private static bool TryParsePackage(TextWriter writer, string packageLine, List changes) - { - var match = Regex.Match(packageLine, @"([^\s]*)\s*(.*)"); - if (match.Success) - { - var package = new NuGetPackage( - match.Groups[1].Value, - match.Groups[2].Value); - changes.Add(package); - return true; - } - - match = Regex.Match(packageLine, @"([^\s]*)\s*-\s*(.*)"); - if (match.Success) - { - var package = new NuGetPackage( - match.Groups[1].Value, - match.Groups[2].Value); - changes.Add(package); - return true; - } - - writer.WriteLine($"Unable to parse package {packageLine}"); - return false; - } - - /// - /// Change the state of the repo to use the specified packages. - /// - internal void ChangeAll(IEnumerable packages) - { - var changeList = CalculateChanges(packages); - var map = ImmutableDictionary.Empty; - foreach (var package in changeList) - { - map = map.Add(package.OldPackage, package.NewPackage); - } - ChangeAllCore(map); - } - - /// - /// Produce the set of values for the set of updated - /// nuget package references. - /// - private List CalculateChanges(IEnumerable packages) - { - var map = _repoData - .FloatingPackages - .ToDictionary(x => x.Name, Constants.NugetPackageNameComparer); - var list = new List(); - - Console.WriteLine("Calculating the changes"); - foreach (var package in packages) - { - if (!map.TryGetValue(package.Name, out var existingPackage)) - { - Console.WriteLine($"\tSkipping {package.Name} as it's not a floating package in this repo."); - } - - list.Add(new NuGetPackageChange(package.Name, oldVersion: existingPackage.Version, newVersion: package.Version)); - } - - return list; - } - - /// - /// Change the repo to respect the new version for the specified set of NuGet packages - /// - private void ChangeAllCore(ImmutableDictionary changeMap) - { - ChangeProjectJsonFiles(changeMap); - ChangeGeneratedFiles(); - } - - private void ChangeProjectJsonFiles(ImmutableDictionary changeMap) - { - Console.WriteLine("Changing project.json files"); - foreach (var filePath in ProjectJsonUtil.GetProjectJsonFiles(_repoData.SourcesDirectory)) - { - if (ProjectJsonUtil.ChangeDependencies(filePath, changeMap)) - { - Console.WriteLine($"\t{filePath} updated"); - } - } - } - - private void ChangeGeneratedFiles() - { - var msbuildData = _repoData.RepoConfig.MSBuildGenerateData; - if (msbuildData.HasValue) - { - var fileName = new FileName(_generateDirectory, msbuildData.Value.RelativeFilePath); - var packages = GenerateUtil.GetFilteredPackages(msbuildData.Value, _repoData); - GenerateUtil.WriteMSBuildContent(fileName, packages); - } - } - } -} diff --git a/src/Tools/RepoUtil/ConflictingPackagesException.cs b/src/Tools/RepoUtil/ConflictingPackagesException.cs deleted file mode 100644 index 35f66a54810a8..0000000000000 --- a/src/Tools/RepoUtil/ConflictingPackagesException.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Immutable; - -namespace RepoUtil -{ - internal class ConflictingPackagesException : Exception - { - public ConflictingPackagesException(List conflictingPackages) : - base("Creation failed because of conflicting package versions.") - { - ConflictingPackages = conflictingPackages.ToImmutableArray(); - } - - public ImmutableArray ConflictingPackages { get; } - } -} diff --git a/src/Tools/RepoUtil/Constants.cs b/src/Tools/RepoUtil/Constants.cs deleted file mode 100644 index 2e9d2a3ba8b31..0000000000000 --- a/src/Tools/RepoUtil/Constants.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace RepoUtil -{ - internal static class Constants - { - /// - /// NuGet package names are not case sensitive. - /// - internal static readonly StringComparer NugetPackageNameComparer = StringComparer.OrdinalIgnoreCase; - - /// - /// NuGet package versions case sensitivity is not documented anywhere that could be found. Assuming - /// case insensitive for now. - /// - internal static readonly StringComparer NugetPackageVersionComparer = StringComparer.OrdinalIgnoreCase; - - internal struct IgnoreGenerateNameComparer : IEqualityComparer - { - public bool Equals(NuGetPackage x, NuGetPackage y) => - x.Name.Equals(y.Name, StringComparison.OrdinalIgnoreCase) && - x.Version.Equals(y.Version, StringComparison.OrdinalIgnoreCase); - - public int GetHashCode(NuGetPackage obj) => obj.GetHashCode(); - } - } -} diff --git a/src/Tools/RepoUtil/ConsumesCommand.cs b/src/Tools/RepoUtil/ConsumesCommand.cs deleted file mode 100644 index 0cb77e4fbe883..0000000000000 --- a/src/Tools/RepoUtil/ConsumesCommand.cs +++ /dev/null @@ -1,108 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal sealed class ConsumesCommand : ICommand - { - private readonly RepoData _repoData; - - internal ConsumesCommand(RepoData repoData) - { - _repoData = repoData; - } - - public bool Run(TextWriter writer, string[] args) - { - var obj = GoCore(); - var text = obj.ToString(Formatting.Indented); - writer.WriteLine(text); - return true; - } - - private JObject GoCore() - { - var obj = new JObject(); - obj.Add(GetNuGetFeeds()); - obj.Add(GetFixedPackages()); - obj.Add(GetBuildPackages()); - obj.Add(GetToolsetPackages()); - return obj; - } - - private JProperty GetNuGetFeeds() - { - var obj = new JObject(); - foreach (var nugetFeed in _repoData.NuGetFeeds) - { - obj.Add(GetProperty(nugetFeed)); - } - return new JProperty("nugetFeeds", obj); - } - - private JProperty GetFixedPackages() - { - var obj = new JObject(); - foreach (var package in _repoData.FixedPackages.GroupBy(x => x.Name)) - { - obj.Add(GetProperty(package.Key, package.Select(x => x.Version))); - } - return new JProperty("fixed", obj); - } - - private JProperty GetBuildPackages() - { - return GetFloatingPackages("build", _repoData.FloatingBuildPackages); - } - - private JProperty GetToolsetPackages() - { - return GetFloatingPackages("toolset", _repoData.FloatingToolsetPackages); - } - - private JProperty GetFloatingPackages(string name, IEnumerable packages) - { - var obj = new JObject(); - foreach (var package in packages) - { - obj.Add(GetProperty(package)); - } - - return new JProperty(name, obj); - } - - private static JProperty GetProperty(NuGetFeed feed) - { - return new JProperty(feed.Name, feed.Url); - } - - private static JProperty GetProperty(NuGetPackage package) - { - return new JProperty(package.Name, package.Version); - } - - private static JProperty GetProperty(string packageName, IEnumerable versions) - { - if (versions.Count() == 1) - { - return GetProperty(new NuGetPackage(packageName, versions.Single())); - } - - var content = JArray.FromObject(versions.ToArray()); - return new JProperty(packageName, content); - } - - private static string GetKey(NuGetPackage nugetRef) - { - return $"{nugetRef.Name}:{nugetRef.Version}"; - } - } -} diff --git a/src/Tools/RepoUtil/FileName.cs b/src/Tools/RepoUtil/FileName.cs deleted file mode 100644 index 4117e93fc02dd..0000000000000 --- a/src/Tools/RepoUtil/FileName.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal struct FileName : IEquatable - { - internal string Name { get; } - internal string FullPath { get; } - internal string RelativePath { get; } - - internal FileName(string rootPath, string relativePath) - { - Name = Path.GetFileName(relativePath); - FullPath = Path.Combine(rootPath, relativePath); - RelativePath = relativePath; - } - - internal static FileName FromFullPath(string rootPath, string fullPath) - { - fullPath = fullPath.Substring(rootPath.Length + 1); - return new FileName(rootPath, fullPath); - } - - public static bool operator ==(FileName left, FileName right) => left.FullPath == right.FullPath; - public static bool operator !=(FileName left, FileName right) => !(left == right); - public bool Equals(FileName other) => this == other; - public override int GetHashCode() => FullPath.GetHashCode(); - public override string ToString() => RelativePath; - public override bool Equals(object obj) => obj is FileName && Equals((FileName)obj); - } -} diff --git a/src/Tools/RepoUtil/GenerateData.cs b/src/Tools/RepoUtil/GenerateData.cs deleted file mode 100644 index 87ead0f42963f..0000000000000 --- a/src/Tools/RepoUtil/GenerateData.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace RepoUtil -{ - /// - /// The repo tool will generate include files, props, etc ... that containt NuGet versions. This struct contains - /// information about where to generate and what packages should match. - /// - internal struct GenerateData - { - internal string RelativeFilePath { get; } - internal ImmutableArray Packages { get; } - - internal GenerateData(string relativeFileName, ImmutableArray packages) - { - RelativeFilePath = relativeFileName; - Packages = packages; - } - } -} diff --git a/src/Tools/RepoUtil/GenerateUtil.cs b/src/Tools/RepoUtil/GenerateUtil.cs deleted file mode 100644 index 2da0e38ab12b8..0000000000000 --- a/src/Tools/RepoUtil/GenerateUtil.cs +++ /dev/null @@ -1,113 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Xml; -using System.Xml.Linq; - -namespace RepoUtil -{ - /// - /// Used for generating supporting files in the repo. It will spit out named constants in props file - /// instead of having developers hard code version numbers. - /// - internal static class GenerateUtil - { - internal static XNamespace MSBuildNamespace { get; } = XNamespace.Get("http://schemas.microsoft.com/developer/msbuild/2003"); - internal static Encoding Encoding { get; } = Encoding.UTF8; - - /// - /// Get the subset of packages which match the specified filter for the generated file. - /// - internal static List GetFilteredPackages(GenerateData generateData, RepoData repoData) - { - // Only fixed packages with 'generate names' are included in generated output. Doing - // otherwise would create conflicts because it's possible for two versions to exist - // for the same package. Take for example System.Collections.Immuatble which is both - // fixed and floating in Roslyn. - var fixedWithGenerate = repoData - .FixedPackages - .Where(x => x.GenerateNameOpt != null); - return repoData - .FloatingPackages - .Concat(fixedWithGenerate) - .OrderBy(x => x.Name) - .Where(x => generateData.Packages.Any(y => y.IsMatch(x.Name))) - .ToList(); - } - - /// - /// Get any regex entries that match no packages. Such entries are stale. - /// - internal static List GetStaleRegex(GenerateData generateData, RepoData repoData) - { - return generateData - .Packages - .Where(r => repoData.FloatingPackages.All(p => !r.IsMatch(p.Name))) - .ToList(); - } - - internal static void WriteMSBuildContent(FileName fileName, IEnumerable packages) - { - Console.WriteLine($"Generating MSBuild props file {fileName}"); - using (var stream = File.Open(fileName.FullPath, FileMode.Create, FileAccess.ReadWrite, FileShare.None)) - { - WriteMSBuildContent(stream, packages); - } - } - - private static void WriteMSBuildContent(Stream stream, IEnumerable packages) - { - using (var writer = XmlWriter.Create(stream, new XmlWriterSettings() { Indent = true, Encoding = Encoding })) - { - var document = GenerateMSBuildXml(packages); - document.WriteTo(writer); - } - } - - internal static string GenerateMSBuildContent(IEnumerable allPackages) - { - using (var stream = new MemoryStream()) - { - WriteMSBuildContent(stream, allPackages); - - stream.Position = 0; - using (var reader = new StreamReader(stream, Encoding)) - { - return reader.ReadToEnd(); - } - } - } - - /// - /// Generate the MSBuild props file which contains named values for the NuGet versions. - /// - internal static XDocument GenerateMSBuildXml(IEnumerable allPackages) - { - var ns = MSBuildNamespace; - var doc = new XDocument(new XElement(ns + "Project")); - doc.Root.Add(new XAttribute("ToolsVersion", "4.0")); - doc.Root.Add(new XComment(@"Generated file, do not directly edit. Run ""RepoUtil change"" to regenerate")); - - var group = new XElement(ns + "PropertyGroup"); - foreach (var package in allPackages) - { - var name = PackageNameToXElementName(package.GenerateNameOpt ?? package.Name); - var elem = new XElement(ns + name); - elem.Value = package.Version; - group.Add(elem); - } - - doc.Root.Add(group); - return doc; - } - - private static string PackageNameToXElementName(string name) - { - return name.Replace(".", "") + "Version"; - } - } -} diff --git a/src/Tools/RepoUtil/ICommand.cs b/src/Tools/RepoUtil/ICommand.cs deleted file mode 100644 index 4447aee7825fc..0000000000000 --- a/src/Tools/RepoUtil/ICommand.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal interface ICommand - { - bool Run(TextWriter writer, string[] args); - } -} diff --git a/src/Tools/RepoUtil/JsonTypes.cs b/src/Tools/RepoUtil/JsonTypes.cs deleted file mode 100644 index 69a99a4e0f256..0000000000000 --- a/src/Tools/RepoUtil/JsonTypes.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil.Json -{ - -} diff --git a/src/Tools/RepoUtil/NuGetConfigUtil.cs b/src/Tools/RepoUtil/NuGetConfigUtil.cs deleted file mode 100644 index f1e8575f0bee5..0000000000000 --- a/src/Tools/RepoUtil/NuGetConfigUtil.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.IO; -using System.Xml.Linq; - -namespace RepoUtil -{ - internal static class NuGetConfigUtil - { - internal static List GetNuGetFeeds(string nugetConfigFile) - { - var nugetConfig = XElement.Load(nugetConfigFile); - var nugetFeeds = - from el in nugetConfig.Descendants("packageSources").Descendants("add") - select new NuGetFeed(el.Attribute("key").Value, new Uri(el.Attribute("value").Value)); - - return nugetFeeds.ToList(); - } - - internal static IEnumerable GetNuGetConfigFiles(string sourcesPath) - { - return Directory.EnumerateFiles(sourcesPath, "nuget*config", SearchOption.AllDirectories); - } - } -} diff --git a/src/Tools/RepoUtil/NuGetFeed.cs b/src/Tools/RepoUtil/NuGetFeed.cs deleted file mode 100644 index a194f65514ebe..0000000000000 --- a/src/Tools/RepoUtil/NuGetFeed.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; - -namespace RepoUtil -{ - internal struct NuGetFeed : IEquatable - { - internal string Name { get; } - internal Uri Url { get; } - - internal NuGetFeed(string name, Uri url) - { - Name = name; - Url = url; - } - - public static bool operator ==(NuGetFeed left, NuGetFeed right) => - StringComparer.OrdinalIgnoreCase.Equals(left.Name, right.Name) && - left.Url == right.Url; - public static bool operator !=(NuGetFeed left, NuGetFeed right) => !(left == right); - public override bool Equals(object obj) => obj is NuGetFeed && Equals((NuGetFeed)obj); - public override int GetHashCode() => Name?.GetHashCode() ?? 0; - public override string ToString() => $"{Name}-{Url}"; - public bool Equals(NuGetFeed other) => this == other; - } -} diff --git a/src/Tools/RepoUtil/NuGetPackage.cs b/src/Tools/RepoUtil/NuGetPackage.cs deleted file mode 100644 index 9192b47ba4079..0000000000000 --- a/src/Tools/RepoUtil/NuGetPackage.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -namespace RepoUtil -{ - internal struct NuGetPackage : IEquatable - { - internal string Name { get; } - internal string Version { get; } - internal string GenerateNameOpt { get; } - - internal NuGetPackage(string name, string version) - :this(name, version, generateName: null) { } - - internal NuGetPackage(string name, string version, string generateName) - { - Name = name; - Version = version; - GenerateNameOpt = generateName; - } - - public static bool operator ==(NuGetPackage left, NuGetPackage right) => - Constants.NugetPackageNameComparer.Equals(left.Name, right.Name) && - Constants.NugetPackageVersionComparer.Equals(left.Version, right.Version) && - left.GenerateNameOpt == right.GenerateNameOpt; - public static bool operator !=(NuGetPackage left, NuGetPackage right) => !(left == right); - public override bool Equals(object obj) => obj is NuGetPackage && Equals((NuGetPackage)obj); - public override int GetHashCode() => Name?.GetHashCode() ?? 0; - public override string ToString() => GenerateNameOpt == null - ? $"{Name}-{Version}" - : $"{Name}-{Version}, {GenerateNameOpt}"; - public bool Equals(NuGetPackage other) => this == other; - } -} diff --git a/src/Tools/RepoUtil/NuGetPackageChange.cs b/src/Tools/RepoUtil/NuGetPackageChange.cs deleted file mode 100644 index 5707f2930a749..0000000000000 --- a/src/Tools/RepoUtil/NuGetPackageChange.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal sealed class NuGetPackageChange - { - internal string Name { get; } - internal string OldVersion { get; } - internal string NewVersion { get; } - internal NuGetPackage OldPackage => new NuGetPackage(Name, OldVersion); - internal NuGetPackage NewPackage => new NuGetPackage(Name, NewVersion); - - internal NuGetPackageChange(string name, string oldVersion, string newVersion) - { - Name = name; - OldVersion = oldVersion; - NewVersion = newVersion; - } - - public override string ToString() => $"{Name} from {OldVersion} to {NewVersion}"; - } -} diff --git a/src/Tools/RepoUtil/NuGetPackageSource.cs b/src/Tools/RepoUtil/NuGetPackageSource.cs deleted file mode 100644 index e2050416110a2..0000000000000 --- a/src/Tools/RepoUtil/NuGetPackageSource.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal struct NuGetPackageSource - { - internal NuGetPackage NuGetPackage { get; } - internal FileName FileName { get; } - - internal NuGetPackageSource(NuGetPackage package, FileName fileName) - { - NuGetPackage = package; - FileName = fileName; - } - } - - internal struct NuGetPackageConflict - { - internal NuGetPackageSource Original { get; } - internal NuGetPackageSource Conflict { get; } - internal string PackageName => Original.NuGetPackage.Name; - - internal NuGetPackageConflict(NuGetPackageSource original, NuGetPackageSource conflict) - { - Debug.Assert(Constants.NugetPackageNameComparer.Equals(original.NuGetPackage.Name, conflict.NuGetPackage.Name)); - Original = original; - Conflict = conflict; - } - } -} diff --git a/src/Tools/RepoUtil/NuSpecUtil.cs b/src/Tools/RepoUtil/NuSpecUtil.cs deleted file mode 100644 index 87017cfc87c04..0000000000000 --- a/src/Tools/RepoUtil/NuSpecUtil.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; - -namespace RepoUtil -{ - internal static class NuSpecUtil - { - internal static IEnumerable GetNuSpecFiles(string sourcesPath) - { - return Directory - .EnumerateFiles(sourcesPath, "*.nuspec", SearchOption.AllDirectories) - .Select(x => FileName.FromFullPath(sourcesPath, x)); - } - - internal static string GetId(string nuspecFilePath) - { - var doc = XDocument.Load(nuspecFilePath); - var ns = XNamespace.Get("http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"); - var id = doc - .Element(ns.GetName("package")) - .Element(ns.GetName("metadata")) - .Element(ns.GetName("id")) - .Value; - return id; - } - } -} diff --git a/src/Tools/RepoUtil/ProducesCommand.cs b/src/Tools/RepoUtil/ProducesCommand.cs deleted file mode 100644 index c4d299b4b6f68..0000000000000 --- a/src/Tools/RepoUtil/ProducesCommand.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal class ProducesCommand : ICommand - { - private readonly RepoConfig _repoConfig; - private readonly string _sourcesPath; - - internal ProducesCommand(RepoConfig repoConfig, string sourcesPath) - { - _repoConfig = repoConfig; - _sourcesPath = sourcesPath; - } - - public bool Run(TextWriter writer, string[] args) - { - foreach (var fileName in NuSpecUtil.GetNuSpecFiles(_sourcesPath)) - { - if (_repoConfig.NuSpecExcludes.Any(x => x.IsMatch(fileName.RelativePath))) - { - continue; - } - - var id = NuSpecUtil.GetId(fileName.FullPath); - writer.WriteLine(id); - } - - return true; - } - } -} diff --git a/src/Tools/RepoUtil/Program.cs b/src/Tools/RepoUtil/Program.cs deleted file mode 100644 index d27ab9b0e5f22..0000000000000 --- a/src/Tools/RepoUtil/Program.cs +++ /dev/null @@ -1,214 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal static class Program - { - private sealed class ParsedArgs - { - internal string RepoUtilDataPath { get; set; } - internal string SourcesDirectory { get; set; } - internal string GenerateDirectory { get; set; } - internal string[] RemainingArgs { get; set; } - } - - private delegate ICommand CreateCommand(RepoConfig repoConfig, string sourcesDir, string generateDir); - - internal static int Main(string[] args) - { - int result = 1; - try - { - if (Run(args)) - { - result = 0; - } - } - catch (ConflictingPackagesException ex) - { - Console.WriteLine(ex.Message); - foreach (var package in ex.ConflictingPackages) - { - Console.WriteLine(package.PackageName); - Console.WriteLine($"\t{package.Conflict.NuGetPackage.Version} - {package.Conflict.FileName}"); - Console.WriteLine($"\t{package.Original.NuGetPackage.Version} - {package.Original.FileName}"); - } - } - catch (Exception ex) - { - Console.WriteLine("Something unexpected happened."); - Console.WriteLine(ex.ToString()); - } - - return result; - } - - private static bool Run(string[] args) - { - if (!TryParseCommandLine(args, out var parsedArgs, out var func)) - { - Usage(); - return false; - } - - var repoConfig = RepoConfig.ReadFrom(parsedArgs.RepoUtilDataPath); - var command = func(repoConfig, parsedArgs.SourcesDirectory, parsedArgs.GenerateDirectory); - if (command.Run(Console.Out, parsedArgs.RemainingArgs)) - { - return true; - } - else - { - Console.WriteLine($"RepoUtil config read from: {parsedArgs.RepoUtilDataPath}"); - return false; - } - } - - private static bool TryParseCommandLine(string[] args, out ParsedArgs parsedArgs, out CreateCommand func) - { - func = null; - parsedArgs = new ParsedArgs(); - - // Setup the default values - var binariesPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(AppContext.BaseDirectory)))); - - var index = 0; - if (!TryParseCommon(args, ref index, parsedArgs)) - { - return false; - } - - if (!TryParseCommand(args, ref index, out func)) - { - return false; - } - - parsedArgs.SourcesDirectory = parsedArgs.SourcesDirectory ?? GetDirectoryName(AppContext.BaseDirectory, 5); - parsedArgs.GenerateDirectory = parsedArgs.GenerateDirectory ?? parsedArgs.SourcesDirectory; - parsedArgs.RepoUtilDataPath = parsedArgs.RepoUtilDataPath ?? Path.Combine(parsedArgs.SourcesDirectory, @"build\config\RepoUtilData.json"); - parsedArgs.RemainingArgs = index >= args.Length - ? Array.Empty() - : args.Skip(index).ToArray(); - return true; - } - - private static string GetDirectoryName(string path, int depth) - { - for (var i = 0; i < depth; i++) - { - path = Path.GetDirectoryName(path); - } - - return path; - } - - private static bool TryParseCommon(string[] args, ref int index, ParsedArgs parsedArgs) - { - while (index < args.Length) - { - var arg = args[index]; - if (arg[0] != '-') - { - return true; - } - - index++; - switch (arg.ToLower()) - { - case "-sourcespath": - { - if (index < args.Length) - { - parsedArgs.SourcesDirectory = args[index]; - index++; - } - else - { - Console.WriteLine($"The -sourcesPath switch needs a value"); - return false; - } - break; - } - case "-generatepath": - { - if (index < args.Length) - { - parsedArgs.GenerateDirectory = args[index]; - index++; - } - else - { - Console.WriteLine($"The -generatePath switch needs a value"); - return false; - } - break; - } - case "-config": - { - if (index < args.Length) - { - parsedArgs.RepoUtilDataPath = args[index]; - index++; - } - else - { - Console.WriteLine($"The -config switch needs a value"); - return false; - } - break; - } - default: - Console.Write($"Option {arg} is unrecognized"); - return false; - } - } - - return true; - } - - private static bool TryParseCommand(string[] args, ref int index, out CreateCommand func) - { - func = null; - - if (index >= args.Length) - { - Console.WriteLine("Need a command to run"); - return false; - } - - var name = args[index]; - switch (name) - { - case "view": - func = (c, s, g) => new ViewCommand(c, s); - break; - case "consumes": - func = (c, s, g) => new ConsumesCommand(RepoData.Create(c, s, ignoreConflicts: false)); - break; - case "change": - func = (c, s, g) => new ChangeCommand(RepoData.Create(c, s, ignoreConflicts: true), g); - break; - case "produces": - func = (c, s, g) => new ProducesCommand(c, s); - break; - default: - Console.Write($"Command {name} is not recognized"); - return false; - } - - index++; - return true; - } - - private static void Usage() - { - Console.WriteLine("RepoUtil [-sourcesPath ] [-generatePath ] [-config ] [verify|view|consumes|change|produces]"); - } - } -} diff --git a/src/Tools/RepoUtil/ProjectJsonUtil.cs b/src/Tools/RepoUtil/ProjectJsonUtil.cs deleted file mode 100644 index 035615554e3d9..0000000000000 --- a/src/Tools/RepoUtil/ProjectJsonUtil.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System.IO; -using System.Collections.Immutable; - -namespace RepoUtil -{ - internal static class ProjectJsonUtil - { - /// - /// Does the specified project.json file need to be tracked by our repo util? - /// - internal static bool NeedsTracking(string filePath) - { - return GetDependencies(filePath).Length > 0; - } - - internal static ImmutableArray GetDependencies(string filePath) - { - // Need to track any file that has dependencies - var obj = JObject.Parse(File.ReadAllText(filePath)); - var dependencies = (JObject)obj["dependencies"]; - if (dependencies == null) - { - return ImmutableArray.Empty; - } - - var builder = ImmutableArray.CreateBuilder(); - foreach (var dependency in dependencies.Properties()) - { - builder.Add(ParseDependency(dependency)); - } - - return builder.ToImmutable(); - } - - /// - /// Change the NuGet dependencies in the file to match the new packages. - /// - internal static bool ChangeDependencies(string filePath, ImmutableDictionary changeMap) - { - var obj = JObject.Parse(File.ReadAllText(filePath), new JsonLoadSettings() { CommentHandling = CommentHandling.Load }); - var dependencies = (JObject)obj["dependencies"]; - if (dependencies == null) - { - return false; - } - - var changed = false; - foreach (var prop in dependencies.Properties()) - { - var currentPackage = ParseDependency(prop); - if (!changeMap.TryGetValue(currentPackage, out var newPackage)) - { - continue; - } - - ChangeDependency(prop, newPackage.Version); - changed = true; - } - - if (!changed) - { - return false; - } - - var data = JsonConvert.SerializeObject(obj, Formatting.Indented); - File.WriteAllText(filePath, data); - return true; - } - - private static void ChangeDependency(JProperty prop, string version) - { - if (prop.Value.Type == JTokenType.String) - { - prop.Value = version; - } - else - { - var obj = (JObject)prop.Value; - obj["version"] = version; - } - } - - /// - /// Parse out a dependency entry from the project.json file. - /// - internal static NuGetPackage ParseDependency(JProperty prop) - { - var name = prop.Name; - - string version; - if (prop.Value.Type == JTokenType.String) - { - version = (string)prop.Value; - } - else - { - version = ((JObject)prop.Value).Value("version"); - } - - return new NuGetPackage(name, version); - } - - internal static bool VerifyTracked(string sourcesPath, IEnumerable fileNames) - { - var set = new HashSet(fileNames); - var allGood = true; - - foreach (var file in Directory.EnumerateFiles(sourcesPath, "project.json", SearchOption.AllDirectories)) - { - var relativeName = file.Substring(sourcesPath.Length + 1); - var fileName = new FileName(sourcesPath, relativeName); - if (set.Contains(fileName) || !NeedsTracking(file)) - { - continue; - } - - Console.WriteLine($"Need to track {fileName}"); - allGood = false; - } - - return allGood; - } - - internal static IEnumerable GetProjectJsonFiles(string sourcesPath) - { - return Directory.EnumerateFiles(sourcesPath, "*project.json", SearchOption.AllDirectories); - } - } -} diff --git a/src/Tools/RepoUtil/README.md b/src/Tools/RepoUtil/README.md deleted file mode 100644 index 8b76953fe64f8..0000000000000 --- a/src/Tools/RepoUtil/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# RepoUtil - -## Usage - -This is a tool that manages the use of NuGet packages in the repo: - -- Ensuring we consistently use the same package version in our projects. -- Ensuring we aren't referencing stale / deleted package versions in configuration. -- Generating helper files with specified package versions. Example [Dependencies.props](https://github.com/dotnet/roslyn/blob/master/build/Targets/Dependencies.props) -- Simple way to upgrade package versions in the repo. - -The primary goal of the tool is to ensure consistency in our NuGet package usage. Given the large number of project.json files in our repo and the variety of ship vehicles it's easy for packages to get out of sync. For instance referencing two versions of System.Collection.Immutable. Doing so is is incorrect, potentially invalidates our testing and potentially breaks insertions. - -The tool ensures that by default given package is only referenced at a single version for the entire repo. That is we can only use a single version of System.Collections.Immutable in our shipping code. Deviatons are allowed but they must be explicitly added to the [config file](https://github.com/dotnet/roslyn/blob/master/build/config/RepoUtilData.json) as a "fixed" package. There is nothing inherently wrong with adding a fixed package so long as it's not used in shipping code. It's perfectly fine for tools, assets, etc ... - -``` json -"fixed" { - "Microsoft.VSSDK.BuildTools": [ "14.3.25407", "15.0.25201-Dev15Preview2" ] -} -``` - -The tool operates by using all of our project.json files as the primary source of truth for the repo. All files with the name pattern `*project.json` are considered to be NuGet assets and will be scanned for NuGet references. To test the tool out locally run the following command: - -``` cmd -> Binaries\Debug\Exes\RepoUtil\RepoUtil.exe verify -``` - -## Code generation - -This tool is also designed to generate helper files which attach strong names to the version numbers. This allows MSBuild files to reference `$(SystemConsoleVersion)` instead of hard coding the current value of 4.0.0. - -The `verify` command will ensure that all generated files are consistent with the current state of project.json files in the repo. Hence there is no danger of referencing an outdated version of a package using these files. - -The generated files are all listed under the `generate` section of the config file: - -``` json - "generate": { - "msbuild": { - "path": "build\\Targets\\Dependencies.props", - "values": [ - "Microsoft.Dia.*", - "System.*", - ] - } - }, -``` - -Each generated file kind has two properties: - -1. The path of the file to generate the contents to. -2. A collection of Regex. Packages which match any of the regexes will have their values included in the generated file. - -## Commands - -This tool operates by having a set of sub commands that it executes - -### change - -The `change` command has two main purposes: - -1. Update a NuGet package reference to a new version -2. Regenerate all of the supporting files - -In order to change a single reference simply pass the new package as an argument: - -``` cmd -RepoUtil change "System.Collections.Immutable 1.3.0" -``` - -For large number of packages a file can be used to list out all of the packages. - -``` cmd -RepoUtil change -version e:\path\to\file.txt -``` - -To regenerate all of the supporting files without updating any packages just use `change` without any arguments - -``` cmd -> Binaries\Debug\Exes\RepoUtil\RepoUtil.exe change -``` - -### verify - -The `verify` command will simply analyze the state of the repo and ensure all of the NuGet dependencies are up to date: - -- All packages are referenced at the same version. -- All the generated files are up to date. -- etc ... - -All packages must fall into one of the following categories: - -- Normal: Packages which are expected to be updated. -- Fixed: Package + version which are referenced at a version that should never change. - -All uses of a normal package in the repo must have the same version. For example every use of System.Collections.Immutable in shipping code should be the same version. This is important as we only deploy a single version. Hence to ensure our our testing, build and deployment logic reflect our shipping state the code must unify on a single version. - -### consumes - -The `consumes` command produces a json file describing all of the NuGet packages consumed by the repo. It essentially aggregates all of the project.json files and adds a bit of metadata on top of them. - - diff --git a/src/Tools/RepoUtil/RepoConfig.cs b/src/Tools/RepoUtil/RepoConfig.cs deleted file mode 100644 index 380cc1388a0f9..0000000000000 --- a/src/Tools/RepoUtil/RepoConfig.cs +++ /dev/null @@ -1,169 +0,0 @@ -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace RepoUtil -{ - /// - /// Packages in the repo fall into the following groups: - /// - /// Fixed Packages: - /// - /// These are packages which should never change. In other words if there was a scenario where a new version of the - /// package was available the reference should not update to the new version. For all time it should remain at the - /// specified version. - /// - /// Because they are fixed it's possible to have multiple vesions of the same package. For instance it's okay to - /// have many versions of Newtonsoft.Json referenced here because there is no need to unify. Or at least it's stated - /// that we don't need to unify. - /// - /// Floating Packages: - /// - /// These are packages which are expected to change when new versions are available. These are tools, dependencies, etc ... - /// which are expected to evolve over time and we need to move forward with those dependencies. - /// - /// Generally these fall into two categories: - /// - /// Build Dependencies - /// Toolset Dependencies - /// - /// This distinction is necessary to help break circular references for repos when constructing build graphs. - /// - internal class RepoConfig - { - internal ImmutableArray FixedPackages { get; } - internal ImmutableArray ToolsetPackages { get; } - internal ImmutableArray NuSpecExcludes { get; } - internal ImmutableArray ProjectJsonExcludes { get; } - internal GenerateData? MSBuildGenerateData { get; } - - internal RepoConfig( - IEnumerable fixedPackages, - IEnumerable toolsetPackages, - IEnumerable nuspecExcludes, - IEnumerable projectJsonExcludes, - GenerateData? msbuildGenerateData) - { - Debug.Assert(toolsetPackages.Distinct().Count() == toolsetPackages.Count()); - MSBuildGenerateData = msbuildGenerateData; - FixedPackages = fixedPackages.OrderBy(x => x.Name).ToImmutableArray(); - NuSpecExcludes = nuspecExcludes.ToImmutableArray(); - ProjectJsonExcludes = projectJsonExcludes.ToImmutableArray(); - ToolsetPackages = toolsetPackages.OrderBy(x => x).ToImmutableArray(); - - var map = new Dictionary>(); - foreach (var nugetRef in fixedPackages) - { - if (!map.TryGetValue(nugetRef.Name, out var list)) - { - list = new List(capacity: 1); - map[nugetRef.Name] = list; - } - - list.Add(nugetRef.Version); - } - } - - internal static RepoConfig ReadFrom(string jsonFilePath) - { - // Need to track any file that has dependencies - var obj = JObject.Parse(File.ReadAllText(jsonFilePath)); - var fixedPackages = (JObject)obj["fixedPackages"]; - var fixedPackagesList = ImmutableArray.CreateBuilder(); - foreach (var prop in fixedPackages.Properties()) - { - var token = prop.Value; - var name = prop.Name; - if (token.Type == JTokenType.Array) - { - foreach (var fixedPackage in (JArray)token) - { - fixedPackagesList.Add(ParseFixedPackage(name, fixedPackage)); - } - } - else - { - fixedPackagesList.Add(ParseFixedPackage(name, token)); - } - } - - var toolsetPackagesProp = obj.Property("toolsetPackages"); - var toolsetPackages = ((JArray)toolsetPackagesProp.Value).Values(); - - GenerateData? msbuildGenerateData = null; - var generateObj = (JObject)obj.Property("generate").Value; - if (generateObj != null) - { - msbuildGenerateData = ReadGenerateData(generateObj, "msbuild"); - } - - var nuspecExcludes = new List(); - var nuspecExcludesProp = obj.Property("nuspecExcludes"); - if (nuspecExcludesProp != null) - { - nuspecExcludes.AddRange(((JArray)nuspecExcludesProp.Value).Values().Select(x => new Regex(x))); - } - - var projectJsonExcludes = new List(); - var projectJsonExcludesProp = obj.Property("projectJsonExcludes"); - if (projectJsonExcludesProp != null) - { - projectJsonExcludes.AddRange(((JArray)projectJsonExcludesProp.Value).Values().Select(x => new Regex(x))); - } - - return new RepoConfig( - fixedPackagesList, - toolsetPackages, - nuspecExcludes, - projectJsonExcludes, - msbuildGenerateData); - } - - private static NuGetPackage ParseFixedPackage(string name, JToken token) - { - if (token.Type == JTokenType.String) - { - var version = (string)token; - return new NuGetPackage(name, version); - } - else - { - var objectPackage = (JObject)token; - return new NuGetPackage(name, - (string)objectPackage["version"], - (string)objectPackage["generateName"]); - } - } - - private static GenerateData? ReadGenerateData(JObject obj, string propName) - { - var prop = obj.Property(propName); - if (prop == null) - { - return null; - } - - return ReadGenerateData((JObject)prop.Value); - } - - private static GenerateData ReadGenerateData(JObject obj) - { - var relativeFilePath = (string)obj.Property("path").Value; - var builder = ImmutableArray.CreateBuilder(); - var array = (JArray)obj.Property("values").Value; - foreach (var item in array.Values()) - { - builder.Add(new Regex(item)); - } - - return new GenerateData(relativeFilePath, builder.ToImmutable()); - } - } -} diff --git a/src/Tools/RepoUtil/RepoData.cs b/src/Tools/RepoUtil/RepoData.cs deleted file mode 100644 index 8b8bab63c6931..0000000000000 --- a/src/Tools/RepoUtil/RepoData.cs +++ /dev/null @@ -1,121 +0,0 @@ -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal sealed class RepoData - { - internal string SourcesDirectory { get; } - internal RepoConfig RepoConfig { get; } - internal ImmutableArray NuGetFeeds { get; } - internal ImmutableArray FloatingBuildPackages { get; } - internal ImmutableArray FloatingToolsetPackages { get; } - internal ImmutableArray FloatingPackages { get; } - internal ImmutableArray FixedPackages => RepoConfig.FixedPackages; - internal ImmutableArray AllPackages { get; } - - private RepoData(RepoConfig config, string sourcesDir, IEnumerable nugetFeeds, IEnumerable floatingPackages) - { - SourcesDirectory = sourcesDir; - RepoConfig = config; - NuGetFeeds = nugetFeeds.ToImmutableArray(); - FloatingToolsetPackages = floatingPackages - .Where(x => RepoConfig.ToolsetPackages.Contains(x.Name, Constants.NugetPackageNameComparer)) - .OrderBy(x => x.Name) - .ToImmutableArray(); - FloatingBuildPackages = floatingPackages - .Where(x => !RepoConfig.ToolsetPackages.Contains(x.Name, Constants.NugetPackageNameComparer)) - .OrderBy(x => x.Name) - .ToImmutableArray(); - FloatingPackages = floatingPackages - .OrderBy(x => x.Name) - .ToImmutableArray(); - AllPackages = Combine( - FloatingBuildPackages, - FloatingToolsetPackages, - FixedPackages.Select(x => x).ToImmutableArray()); - } - - private static ImmutableArray Combine(params ImmutableArray[] args) - { - return args - .SelectMany(x => x) - .OrderBy(x => x.Name) - .ToImmutableArray(); - } - - /// - /// The raw RepoData contains only the fixed + toolset packages that we need to track. This method will examine the current - /// state of the repo and add in the current data. If any conflicting package definitions are detected this method - /// will throw. - /// - internal static RepoData Create(RepoConfig config, string sourcesDir, bool ignoreConflicts) - { - var repoData = Create(config, sourcesDir, out var conflicts); - if (conflicts?.Count > 0 && !ignoreConflicts) - { - throw new ConflictingPackagesException(conflicts); - } - - return repoData; - } - - internal static RepoData Create(RepoConfig config, string sourcesDir, out List conflicts) - { - var nugetFeeds = new List(); - foreach (var nugetConfig in NuGetConfigUtil.GetNuGetConfigFiles(sourcesDir)) - { - var nugetFeed = NuGetConfigUtil.GetNuGetFeeds(nugetConfig); - nugetFeeds.AddRange(nugetFeed); - } - - conflicts = null; - - var fixedPackageSet = new HashSet(config.FixedPackages, default(Constants.IgnoreGenerateNameComparer)); - var floatingPackageMap = new Dictionary(Constants.NugetPackageNameComparer); - foreach (var filePath in ProjectJsonUtil.GetProjectJsonFiles(sourcesDir)) - { - var fileName = FileName.FromFullPath(sourcesDir, filePath); - - if (config.ProjectJsonExcludes.Any(x => x.IsMatch(fileName.RelativePath))) - { - continue; - } - - foreach (var package in ProjectJsonUtil.GetDependencies(filePath)) - { - if (fixedPackageSet.Contains(package)) - { - continue; - } - - // If this is the first time we've seen the package then record where it was found. Need the source - // information to provide better error messages later. - var packageSource = new NuGetPackageSource(package, fileName); - if (floatingPackageMap.TryGetValue(package.Name, out var originalSource)) - { - if (originalSource.NuGetPackage.Version != package.Version) - { - var conflict = new NuGetPackageConflict(original: originalSource, conflict: packageSource); - conflicts = conflicts ?? new List(); - conflicts.Add(conflict); - } - } - else - { - floatingPackageMap.Add(package.Name, packageSource); - } - } - } - - return new RepoData(config, sourcesDir, nugetFeeds, floatingPackageMap.Values.Select(x => x.NuGetPackage)); - } - } -} diff --git a/src/Tools/RepoUtil/RepoUtil.csproj b/src/Tools/RepoUtil/RepoUtil.csproj deleted file mode 100644 index da15d4671f4ea..0000000000000 --- a/src/Tools/RepoUtil/RepoUtil.csproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - - AnyCPU - AnyCPU - Exe - net472 - $(RoslynDesktopRuntimeIdentifier) - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - false - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Tools/RepoUtil/RepoUtil.sln b/src/Tools/RepoUtil/RepoUtil.sln deleted file mode 100644 index 7c910dfc1a156..0000000000000 --- a/src/Tools/RepoUtil/RepoUtil.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RepoUtil", "RepoUtil.csproj", "{1CA184D3-89CB-4074-BEC5-F8AEBA657D41}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1CA184D3-89CB-4074-BEC5-F8AEBA657D41}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/Tools/RepoUtil/UsageCommand.cs b/src/Tools/RepoUtil/UsageCommand.cs deleted file mode 100644 index 23ff1d0391373..0000000000000 --- a/src/Tools/RepoUtil/UsageCommand.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RepoUtil -{ - internal class UsageCommand : ICommand - { - public bool Run(TextWriter writer, string[] args) - { - Usage(writer); - return true; - } - - internal static void Usage(TextWriter writer = null) - { - writer = writer ?? Console.Out; - var text = @" - verify: check the state of the repo - consumes: output the conent consumed by this repo - produces: output the content produced by this repo - change: change the dependencies. -"; - writer.WriteLine(text); - } - } -} diff --git a/src/Tools/RepoUtil/ViewCommand.cs b/src/Tools/RepoUtil/ViewCommand.cs deleted file mode 100644 index c20288191e10d..0000000000000 --- a/src/Tools/RepoUtil/ViewCommand.cs +++ /dev/null @@ -1,159 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace RepoUtil -{ - /// - /// This utility is used to verify the repo is in a consistent state with respect to NuGet references. - /// - internal sealed class ViewCommand : ICommand - { - private readonly string _sourcesPath; - private readonly RepoConfig _repoConfig; - - internal ViewCommand(RepoConfig repoConfig, string sourcesPath) - { - _repoConfig = repoConfig; - _sourcesPath = sourcesPath; - } - - public bool Run(TextWriter writer, string[] args) - { - var list = args - .Select(x => new Regex(x)) - .ToList(); - if (list.Count == 0) - { - list.Add(new Regex(".*")); - } - - var map = new Dictionary>(); - foreach (var filePath in ProjectJsonUtil.GetProjectJsonFiles(_sourcesPath)) - { - var fileName = FileName.FromFullPath(_sourcesPath, filePath); - foreach (var package in ProjectJsonUtil.GetDependencies(fileName.FullPath)) - { - if (list.All(x => !x.IsMatch(package.Name))) - { - continue; - } - - if (!map.TryGetValue(package, out var nameList)) - { - nameList = new List(); - map[package] = nameList; - } - - nameList.Add(fileName); - } - } - - foreach (var pair in map.OrderBy(x => x.Key.Name)) - { - var package = pair.Key; - writer.WriteLine($"{package.Name} - {package.Version}"); - foreach (var fileName in pair.Value) - { - writer.WriteLine($"\t{fileName.RelativePath}"); - } - } - - return true; - } - - /// - /// Verify the packages listed in project.json are well formed. Packages should all either have the same version or - /// be explicitly fixed in the config file. - /// - private bool VerifyProjectJsonContents(TextWriter writer, out RepoData repoData) - { - writer.WriteLine($"Verifying project.json contents"); - - repoData = RepoData.Create(_repoConfig, _sourcesPath, out var conflicts); - if (conflicts?.Count > 0) - { - foreach (var conflict in conflicts) - { - writer.WriteLine($"Error! Package {conflict.PackageName} has different versions:"); - writer.WriteLine($"\t{conflict.Original.FileName} at {conflict.Original.NuGetPackage.Version}"); - writer.WriteLine($"\t{conflict.Conflict.FileName} at {conflict.Conflict.NuGetPackage.Version}"); - writer.WriteLine($"The versions must be the same or one must be explicitly listed as fixed in RepoData.json"); - } - - return false; - } - - return true; - } - - /// - /// Verify that all of the data contained in the repo configuration is valid. In particular that it hasn't gotten - /// stale and referring to invalid packages. - /// - /// - private bool VerifyRepoConfig(TextWriter writer) - { - writer.WriteLine($"Verifying RepoData.json"); - var packages = ProjectJsonUtil - .GetProjectJsonFiles(_sourcesPath) - .SelectMany(x => ProjectJsonUtil.GetDependencies(x)); - var set = new HashSet(packages, default(Constants.IgnoreGenerateNameComparer)); - var allGood = true; - - foreach (var package in _repoConfig.FixedPackages) - { - if (!set.Contains(package)) - { - writer.WriteLine($"Error: Fixed package {package.Name} - {package.Version} is not used anywhere"); - allGood = false; - } - } - - return allGood; - } - - private bool VerifyGeneratedFiles(TextWriter writer, RepoData repoData) - { - var allGood = true; - writer.WriteLine($"Verifying generated files"); - if (_repoConfig.MSBuildGenerateData.HasValue) - { - var data = _repoConfig.MSBuildGenerateData.Value; - var packages = GenerateUtil.GetFilteredPackages(data, repoData); - - // Need to verify the contents of the generated file are correct. - var fileName = new FileName(_sourcesPath, data.RelativeFilePath); - var actualContent = File.ReadAllText(fileName.FullPath, GenerateUtil.Encoding); - var expectedContent = GenerateUtil.GenerateMSBuildContent(packages); - if (actualContent != expectedContent) - { - writer.WriteLine($"{fileName.RelativePath} does not have the expected contents"); - allGood = false; - } - - if (!allGood) - { - writer.WriteLine($@"Generated contents out of date. Run ""RepoUtil.change"" to correct"); - return false; - } - - // Verify none of the regex entries are stale. - var staleRegexList = GenerateUtil.GetStaleRegex(data, repoData); - foreach (var regex in staleRegexList) - { - writer.WriteLine($"Regex {regex} matches no packages"); - allGood = false; - } - } - - return allGood; - } - } -} diff --git a/src/Tools/RoslynPublish/RoslynPublish.csproj b/src/Tools/RoslynPublish/RoslynPublish.csproj index 40134051e7866..80ea854d0040e 100644 --- a/src/Tools/RoslynPublish/RoslynPublish.csproj +++ b/src/Tools/RoslynPublish/RoslynPublish.csproj @@ -7,7 +7,6 @@ Exe RoslynPublish net472 - $(RoslynDesktopRuntimeIdentifier) false true false diff --git a/src/Tools/Source/DebuggerVisualizers/IL/ILDeltaDebuggerVisualizer.cs b/src/Tools/Source/DebuggerVisualizers/IL/ILDeltaDebuggerVisualizer.cs deleted file mode 100644 index 4ce85ae48de48..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/IL/ILDeltaDebuggerVisualizer.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Diagnostics; -using System.IO; -using Microsoft.CodeAnalysis.EditAndContinue; -using Microsoft.VisualStudio.DebuggerVisualizers; -using Roslyn.DebuggerVisualizers; -using Roslyn.DebuggerVisualizers.UI; - -[assembly: DebuggerVisualizer( - typeof(ILDeltaDebuggerVisualizer), - typeof(ILDeltaVisualizerObjectSource), - Target = typeof(ILDelta), - Description = "IL Visualizer")] - -namespace Roslyn.DebuggerVisualizers -{ - public sealed class ILDeltaDebuggerVisualizer : DialogDebuggerVisualizer - { - protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) - { - var stream = objectProvider.GetData(); - var reader = new StreamReader(stream); - var text = reader.ReadToEnd(); - - var viewer = new TextViewer(text, "IL"); - viewer.ShowDialog(); - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/IL/ILDeltaVisualizerObjectSource.cs b/src/Tools/Source/DebuggerVisualizers/IL/ILDeltaVisualizerObjectSource.cs deleted file mode 100644 index f0be3afcb858e..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/IL/ILDeltaVisualizerObjectSource.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Collections.Immutable; -using System.IO; -using Microsoft.CodeAnalysis.EditAndContinue; -using Microsoft.VisualStudio.DebuggerVisualizers; -using Roslyn.Test.MetadataUtilities; - -namespace Roslyn.DebuggerVisualizers -{ - public sealed class ILDeltaVisualizerObjectSource : VisualizerObjectSource - { - public override void GetData(object target, Stream outgoingData) - { - var ilDelta = (ILDelta)target; - var text = ImmutableArray.Create(ilDelta.Value).GetMethodIL(); - - var writer = new StreamWriter(outgoingData); - writer.Write(text); - writer.Flush(); - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/Install.cmd b/src/Tools/Source/DebuggerVisualizers/Install.cmd deleted file mode 100644 index f14253cbd9371..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/Install.cmd +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -set VISUALIZERS=%USERPROFILE%\Documents\Visual Studio 2015\Visualizers -set BIN=%~dp0..\..\..\..\Binaries\Debug - -copy /y "%BIN%\Roslyn.DebuggerVisualizers.dll" "%VISUALIZERS%" -copy /y "%BIN%\Roslyn.Test.PdbUtilities.dll" "%VISUALIZERS%" -copy /y "%BIN%\System.Reflection.Metadata.dll" "%VISUALIZERS%" -copy /y "%BIN%\System.Collections.Immutable.dll" "%VISUALIZERS%" -copy /y "%BIN%\Microsoft.DiaSymReader.dll" "%VISUALIZERS%" - -echo Close all VS instances to finish. \ No newline at end of file diff --git a/src/Tools/Source/DebuggerVisualizers/Metadata/MetadataDeltaDebuggerVisualizer.cs b/src/Tools/Source/DebuggerVisualizers/Metadata/MetadataDeltaDebuggerVisualizer.cs deleted file mode 100644 index 27aba96b4353a..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/Metadata/MetadataDeltaDebuggerVisualizer.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Diagnostics; -using System.IO; -using Microsoft.CodeAnalysis.EditAndContinue; -using Microsoft.VisualStudio.DebuggerVisualizers; -using Roslyn.DebuggerVisualizers; -using Roslyn.DebuggerVisualizers.UI; - -[assembly: DebuggerVisualizer( - typeof(MetadataDeltaDebuggerVisualizer), - typeof(MetadataDeltaVisualizerObjectSource), - Target = typeof(MetadataDelta), - Description = "Metadata Visualizer")] - -namespace Roslyn.DebuggerVisualizers -{ - public sealed class MetadataDeltaDebuggerVisualizer : DialogDebuggerVisualizer - { - protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) - { - var stream = objectProvider.GetData(); - var reader = new StreamReader(stream); - var text = reader.ReadToEnd(); - - var viewer = new TextViewer(text, "Metadata"); - viewer.ShowDialog(); - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/Metadata/MetadataDeltaVisualizerObjectSource.cs b/src/Tools/Source/DebuggerVisualizers/Metadata/MetadataDeltaVisualizerObjectSource.cs deleted file mode 100644 index 6edf4cfec0061..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/Metadata/MetadataDeltaVisualizerObjectSource.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.IO; -using System.Reflection.Metadata; -using Microsoft.CodeAnalysis.EditAndContinue; -using Microsoft.VisualStudio.DebuggerVisualizers; -using Roslyn.Test.MetadataUtilities; - -namespace Roslyn.DebuggerVisualizers -{ - public sealed class MetadataDeltaVisualizerObjectSource : VisualizerObjectSource - { - public override void GetData(object target, Stream outgoingData) - { - var metadataDelta = (MetadataDelta)target; - var text = GetMetadataText(metadataDelta); - - var writer = new StreamWriter(outgoingData); - writer.Write(text); - writer.Flush(); - } - - private static unsafe string GetMetadataText(MetadataDelta metadataDelta) - { - var writer = new StringWriter(); - - fixed (byte* ptr = metadataDelta.Bytes) - { - var reader = new MetadataReader(ptr, metadataDelta.Bytes.Length, MetadataReaderOptions.ApplyWindowsRuntimeProjections); - var visualizer = new MetadataVisualizer(reader, writer); - visualizer.Visualize(); - } - - return writer.ToString(); - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/PDB/PdbDeltaDebuggerVisualizer.cs b/src/Tools/Source/DebuggerVisualizers/PDB/PdbDeltaDebuggerVisualizer.cs deleted file mode 100644 index 72c39c26aa9b7..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/PDB/PdbDeltaDebuggerVisualizer.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using Microsoft.CodeAnalysis.EditAndContinue; -using Microsoft.VisualStudio.DebuggerVisualizers; -using Roslyn.DebuggerVisualizers; -using Roslyn.DebuggerVisualizers.UI; -using Roslyn.Test.PdbUtilities; - -[assembly: DebuggerVisualizer( - typeof(PdbDeltaDebuggerVisualizer), - typeof(PdbDeltaVisualizerObjectSource), - Target = typeof(PdbDelta), - Description = "PDB Visualizer")] - -namespace Roslyn.DebuggerVisualizers -{ - public sealed class PdbDeltaDebuggerVisualizer : DialogDebuggerVisualizer - { - protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) - { - var stream = objectProvider.GetData(); - var reader = new StreamReader(stream); - var text = reader.ReadToEnd(); - - var viewer = new TextViewer(text, "PDB"); - viewer.ShowDialog(); - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/PDB/PdbDeltaVisualizerObjectSource.cs b/src/Tools/Source/DebuggerVisualizers/PDB/PdbDeltaVisualizerObjectSource.cs deleted file mode 100644 index e1dc43c356e56..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/PDB/PdbDeltaVisualizerObjectSource.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.IO; -using System.Linq; -using Microsoft.CodeAnalysis.EditAndContinue; -using Microsoft.VisualStudio.DebuggerVisualizers; -using Roslyn.Test.PdbUtilities; - -namespace Roslyn.DebuggerVisualizers -{ - public sealed class PdbDeltaVisualizerObjectSource : VisualizerObjectSource - { - public override void GetData(object target, Stream outgoingData) - { - var pdbDelta = (PdbDelta)target; - var text = PdbToXmlConverter.DeltaPdbToXml(pdbDelta.Stream, Enumerable.Range(0x06000001, 0xff)); - - var writer = new StreamWriter(outgoingData); - writer.Write(text); - writer.Flush(); - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/Roslyn.DebuggerVisualizers.csproj b/src/Tools/Source/DebuggerVisualizers/Roslyn.DebuggerVisualizers.csproj deleted file mode 100644 index 864e6d56faa20..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/Roslyn.DebuggerVisualizers.csproj +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - AnyCPU - AnyCPU - {37B2D19D-8A08-402A-AD08-84A0C6C0614C} - Library - Roslyn.DebuggerVisualizers - Roslyn.DebuggerVisualizers - v4.7.2 - - true - false - - - - {1EE8CAD3-55F9-4D91-96B2-084641DA9A6C} - CodeAnalysis - - - {EDC68A0E-C68D-4A74-91B7-BF38EC909888} - Features - - - {AFDE6BEA-5038-4A4A-A88E-DBD2E4088EED} - PdbUtilities - - - - - - - false - - - - - - - - - - - - - - - - form - - - TextViewer.cs - - - - - TextViewer.cs - - - - - - \ No newline at end of file diff --git a/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.cs b/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.cs deleted file mode 100644 index 5c5f888668d79..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Windows.Forms; - -namespace Roslyn.DebuggerVisualizers.UI -{ - public partial class TextViewer : Form - { - public TextViewer(string text, string title) - { - InitializeComponent(); - - IL.Text = text; - this.Text = title; - } - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.designer.cs b/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.designer.cs deleted file mode 100644 index 0dfc9eb479501..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.designer.cs +++ /dev/null @@ -1,79 +0,0 @@ -namespace Roslyn.DebuggerVisualizers.UI -{ - partial class TextViewer - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.panel2 = new System.Windows.Forms.Panel(); - this.IL = new System.Windows.Forms.RichTextBox(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // panel2 - // - this.panel2.Controls.Add(this.IL); - this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(492, 373); - this.panel2.TabIndex = 8; - // - // IL - // - this.IL.BackColor = System.Drawing.SystemColors.Info; - this.IL.Dock = System.Windows.Forms.DockStyle.Fill; - this.IL.Font = new System.Drawing.Font("Lucida Console", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.IL.Location = new System.Drawing.Point(0, 0); - this.IL.Name = "IL"; - this.IL.Size = new System.Drawing.Size(492, 373); - this.IL.TabIndex = 2; - this.IL.Text = ""; - this.IL.WordWrap = false; - // - // MethodBodyViewer - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(492, 373); - this.Controls.Add(this.panel2); - this.KeyPreview = true; - this.MinimumSize = new System.Drawing.Size(450, 300); - this.Name = "MethodBodyViewer"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "IL"; - this.panel2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.RichTextBox IL; - - - } -} diff --git a/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.resx b/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.resx deleted file mode 100644 index d58980a38d714..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/UI/TextViewer.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/src/Tools/Source/DebuggerVisualizers/project.json b/src/Tools/Source/DebuggerVisualizers/project.json deleted file mode 100644 index ee1179363890a..0000000000000 --- a/src/Tools/Source/DebuggerVisualizers/project.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies": { }, - "frameworks": { - "net46": {} - }, -} \ No newline at end of file diff --git a/src/Tools/Source/MetadataVisualizer/Arguments.cs b/src/Tools/Source/MetadataVisualizer/Arguments.cs deleted file mode 100644 index 01b6f55778a3a..0000000000000 --- a/src/Tools/Source/MetadataVisualizer/Arguments.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.IO; -using System.Linq; - -internal sealed class Arguments -{ - public bool Recursive { get; private set; } - public string Path { get; private set; } - public IEnumerable> EncDeltas { get; private set; } - public HashSet SkipGenerations { get; private set; } - public bool DisplayStatistics { get; private set; } - public bool DisplayAssemblyReferences { get; private set; } - public bool DisplayIL { get; private set; } - public bool DisplayEmbeddedPdb { get; private set; } - public bool DisplayMetadata { get; private set; } - public string OutputPath { get; private set; } - public ImmutableArray FindRefs { get; private set; } - - public const string Help = @" -Parameters: - Path to a PE file, metadata blob, or a directory. - The target kind is auto-detected. -/g:; Add generation delta blobs. -/sg: Suppress display of specified generation. -/stats[+|-] Display/hide misc statistics. -/assemblyRefs[+|-] Display/hide assembly references. -/il[+|-] Display/hide IL of method bodies. -/md[+|-] Display/hide metadata tables. -/embeddedpdb[+|-] Display embedded PDB insted of the type system metadata. -/findRef: Displays all assemblies containing the specified MemberRefs: - a semicolon separated list of - :: -/out: Write the output to specified file. - -If the target path is a directory displays information for all *.dll, *.exe, *.winmd, -and *.netmodule files in the directory and all subdirectories. - -If /g is specified the path must be baseline PE file (generation 0). -"; - - public static Arguments TryParse(string[] args) - { - if (args.Length < 1) - { - return null; - } - - var result = new Arguments(); - result.Path = args[0]; - result.Recursive = Directory.Exists(args[0]); - - result.EncDeltas = - (from arg in args - where arg.StartsWith("/g:", StringComparison.Ordinal) - let value = arg.Substring("/g:".Length).Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries) - select (value.Length >= 1 && value.Length <= 2) ? Tuple.Create(value[0], value.Length > 1 ? value[1] : null) : null). - ToArray(); - - if (result.EncDeltas.Any(value => value == null)) - { - return null; - } - - result.SkipGenerations = new HashSet(args.Where(a => a.StartsWith("/sg:", StringComparison.OrdinalIgnoreCase)).Select(a => int.Parse(a.Substring("/sg:".Length)))); - - if (result.Recursive && (result.EncDeltas.Any() || result.SkipGenerations.Any())) - { - return null; - } - - result.FindRefs = ParseValueArg(args, "findref")?.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)?.ToImmutableArray() ?? ImmutableArray.Empty; - bool findRefs = result.FindRefs.Any(); - - result.DisplayIL = ParseFlagArg(args, "il", defaultValue: !result.Recursive && !findRefs); - result.DisplayMetadata = ParseFlagArg(args, "md", defaultValue: !result.Recursive && !findRefs); - result.DisplayEmbeddedPdb = ParseFlagArg(args, "embeddedpdb", defaultValue: false); - result.DisplayStatistics = ParseFlagArg(args, "stats", defaultValue: result.Recursive && !findRefs); - result.DisplayAssemblyReferences = ParseFlagArg(args, "stats", defaultValue: !findRefs); - result.OutputPath = ParseValueArg(args, "out"); - - return result; - } - - private static string ParseValueArg(string[] args, string name) - { - string prefix = "/" + name + ":"; - return args.Where(arg => arg.StartsWith(prefix, StringComparison.Ordinal)).Select(arg => arg.Substring(prefix.Length)).LastOrDefault(); - } - - private static bool ParseFlagArg(string[] args, string name, bool defaultValue) - { - string onStr1 = "/" + name; - string onStr2 = "/" + name + "+"; - string offStr = "/" + name + "-"; - - return args.Aggregate(defaultValue, (value, arg) => - arg.Equals(onStr1, StringComparison.OrdinalIgnoreCase) || arg.Equals(onStr2, StringComparison.OrdinalIgnoreCase) ? true : - arg.Equals(offStr, StringComparison.OrdinalIgnoreCase) ? false : - value); - } -} diff --git a/src/Tools/Source/MetadataVisualizer/MetadataVisualizer.csproj b/src/Tools/Source/MetadataVisualizer/MetadataVisualizer.csproj deleted file mode 100644 index 3e9bce92e3dfd..0000000000000 --- a/src/Tools/Source/MetadataVisualizer/MetadataVisualizer.csproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - AnyCPU - AnyCPU - {4C7847DB-C412-4D5E-B573-F12FA0A76127} - Exe - MetadataVisualizer - mdv - true - v4.7.2 - true - false - - - - - - Hash.cs - - - - - - - - - - - - - - - - {afde6bea-5038-4a4a-a88e-dbd2e4088eed} - PdbUtilities - - - - \ No newline at end of file diff --git a/src/Tools/Source/MetadataVisualizer/Program.cs b/src/Tools/Source/MetadataVisualizer/Program.cs deleted file mode 100644 index a02fb98d26a9a..0000000000000 --- a/src/Tools/Source/MetadataVisualizer/Program.cs +++ /dev/null @@ -1,526 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; -using System.Reflection.PortableExecutable; -using System.Runtime.InteropServices; -using System.Text; -using Roslyn.Test.MetadataUtilities; -using Roslyn.Utilities; - -internal class Program : IDisposable -{ - private class GenerationData - { - public MetadataReader MetadataReader; - public PEReader PEReaderOpt; - public byte[] DeltaILOpt; - public IDisposable MemoryOwner; - } - - private readonly Arguments _arguments; - private readonly TextWriter _writer; - - private string _pendingTitle; - - public Program(Arguments arguments) - { - _arguments = arguments; - _writer = (arguments.OutputPath != null) ? new StreamWriter(File.OpenWrite(arguments.OutputPath), Encoding.UTF8) : Console.Out; - } - - public void Dispose() - { - _writer.Dispose(); - } - - private void WriteData(string line, params object[] args) - { - if (_pendingTitle != null) - { - _writer.WriteLine(_pendingTitle); - _pendingTitle = null; - } - - _writer.WriteLine(line, args); - } - - private static int Main(string[] args) - { - var arguments = Arguments.TryParse(args); - if (arguments == null) - { - Console.WriteLine(Arguments.Help); - return 1; - } - - using (var p = new Program(arguments)) - { - if (arguments.Recursive) - { - return p.RunRecursive(); - } - else - { - return p.RunOne(); - } - } - } - - private static bool IsPE(Stream stream) - { - long oldPosition = stream.Position; - bool result = stream.ReadByte() == 'M' && stream.ReadByte() == 'Z'; - stream.Position = oldPosition; - return result; - } - - private static bool IsManagedMetadata(Stream stream) - { - long oldPosition = stream.Position; - bool result = stream.ReadByte() == 'B' && stream.ReadByte() == 'S' && stream.ReadByte() == 'J' && stream.ReadByte() == 'B'; - stream.Position = oldPosition; - return result; - } - - private static GenerationData ReadFile(string path, bool embeddedPdb) - { - try - { - var generation = new GenerationData(); - var stream = File.OpenRead(path); - - if (IsPE(stream)) - { - var peReader = new PEReader(stream); - generation.PEReaderOpt = peReader; - - if (embeddedPdb) - { - var embeddedEntries = peReader.ReadDebugDirectory().Where(entry => entry.Type == DebugDirectoryEntryType.EmbeddedPortablePdb).ToArray(); - if (embeddedEntries.Length == 0) - { - throw new InvalidDataException("No embedded pdb found"); - } - - if (embeddedEntries.Length > 1) - { - throw new InvalidDataException("Multiple entries in Debug Directory Table of type EmbeddedPortablePdb"); - } - - var provider = peReader.ReadEmbeddedPortablePdbDebugDirectoryData(embeddedEntries[0]); - generation.MetadataReader = provider.GetMetadataReader(); - generation.MemoryOwner = provider; - } - else - { - generation.MetadataReader = peReader.GetMetadataReader(); - generation.MemoryOwner = peReader; - } - } - else if (IsManagedMetadata(stream)) - { - var mdProvider = MetadataReaderProvider.FromMetadataStream(stream); - generation.MetadataReader = mdProvider.GetMetadataReader(); - generation.MemoryOwner = mdProvider; - } - else - { - throw new NotSupportedException("File format not supported"); - } - - return generation; - } - catch (Exception e) - { - Console.WriteLine($"Error reading '{path}': {e.Message}"); - return null; - } - } - - private unsafe int RunOne() - { - var generations = new List(); - - // gen 0: - var generation = ReadFile(_arguments.Path, embeddedPdb: _arguments.DisplayEmbeddedPdb); - if (generation == null) - { - return 1; - } - - generations.Add(generation); - - // deltas: - int i = 1; - foreach (var delta in _arguments.EncDeltas) - { - var metadataPath = delta.Item1; - var ilPathOpt = delta.Item2; - - generation = ReadFile(metadataPath, embeddedPdb: false); - - if (ilPathOpt != null) - { - try - { - generation.DeltaILOpt = File.ReadAllBytes(ilPathOpt); - } - catch (Exception e) - { - Console.WriteLine($"Error reading '{ilPathOpt}': {e.Message}"); - return 1; - } - } - - generations.Add(generation); - i++; - } - - VisualizeGenerations(generations); - return 0; - } - - private unsafe void VisualizeGenerations(List generations) - { - var mdReaders = generations.Select(g => g.MetadataReader).ToArray(); - var visualizer = new MetadataVisualizer(mdReaders, _writer); - - for (int generationIndex = 0; generationIndex < generations.Count; generationIndex++) - { - if (_arguments.SkipGenerations.Contains(generationIndex)) - { - continue; - } - - var generation = generations[generationIndex]; - var mdReader = generation.MetadataReader; - - if (generation.PEReaderOpt != null) - { - VisualizeDebugDirectory(generation.PEReaderOpt, _writer); - } - - visualizer.VisualizeHeaders(); - - if (generations.Count > 1) - { - _writer.WriteLine(">>>"); - _writer.WriteLine($">>> Generation {generationIndex}:"); - _writer.WriteLine(">>>"); - _writer.WriteLine(); - } - - if (_arguments.DisplayMetadata) - { - visualizer.Visualize(generationIndex); - } - - if (_arguments.DisplayIL) - { - VisualizeGenerationIL(visualizer, generationIndex, generation, mdReader); - } - - VisualizeMemberRefs(mdReader); - } - } - - private static void VisualizeDebugDirectory(PEReader peReader, TextWriter writer) - { - var entries = peReader.ReadDebugDirectory(); - - if (entries.Length == 0) - { - return; - } - - writer.WriteLine("Debug Directory:"); - foreach (var entry in entries) - { - writer.WriteLine($" {entry.Type} stamp=0x{entry.Stamp:X8}, version=(0x{entry.MajorVersion:X4}, 0x{entry.MinorVersion:X4}), size={entry.DataSize}"); - - try - { - switch (entry.Type) - { - case DebugDirectoryEntryType.CodeView: - var codeView = peReader.ReadCodeViewDebugDirectoryData(entry); - writer.WriteLine($" path='{codeView.Path}', guid={{{codeView.Guid}}}, age={codeView.Age}"); - break; - } - } - catch (BadImageFormatException) - { - writer.WriteLine(""); - } - } - - writer.WriteLine(); - } - - private static unsafe void VisualizeGenerationIL(MetadataVisualizer visualizer, int generationIndex, GenerationData generation, MetadataReader mdReader) - { - try - { - if (generation.PEReaderOpt != null) - { - foreach (var methodHandle in mdReader.MethodDefinitions) - { - var method = mdReader.GetMethodDefinition(methodHandle); - var rva = method.RelativeVirtualAddress; - if (rva != 0) - { - var body = generation.PEReaderOpt.GetMethodBody(rva); - visualizer.VisualizeMethodBody(body, methodHandle); - } - } - } - else if (generation.DeltaILOpt != null) - { - fixed (byte* deltaILPtr = generation.DeltaILOpt) - { - foreach (var generationHandle in mdReader.MethodDefinitions) - { - var method = mdReader.GetMethodDefinition(generationHandle); - var rva = method.RelativeVirtualAddress; - if (rva != 0) - { - var body = MethodBodyBlock.Create(new BlobReader(deltaILPtr + rva, generation.DeltaILOpt.Length - rva)); - - visualizer.VisualizeMethodBody(body, generationHandle, generationIndex); - } - } - } - } - } - catch (BadImageFormatException) - { - visualizer.WriteLine(""); - } - } - - private static readonly string[] s_PEExtensions = new[] { "*.dll", "*.exe", "*.netmodule", "*.winmd" }; - - private static IEnumerable GetAllBinaries(string dir) - { - foreach (var subdir in Directory.GetDirectories(dir)) - { - foreach (var file in GetAllBinaries(subdir)) - { - yield return file; - } - } - - foreach (var file in from extension in s_PEExtensions - from file in Directory.GetFiles(dir, extension) - select file) - { - yield return file; - } - } - - private void VisualizeStatistics(MetadataReader mdReader) - { - if (!_arguments.DisplayStatistics) - { - return; - } - - WriteData("> method definitions: {0}, {1:F1}% with bodies", - mdReader.MethodDefinitions.Count, - 100 * ((double)mdReader.MethodDefinitions.Count(handle => mdReader.GetMethodDefinition(handle).RelativeVirtualAddress != 0) / mdReader.MethodDefinitions.Count)); - } - - private void VisualizeAssemblyReferences(MetadataReader mdReader) - { - if (!_arguments.DisplayAssemblyReferences) - { - return; - } - - foreach (var handle in mdReader.AssemblyReferences) - { - var ar = mdReader.GetAssemblyReference(handle); - - WriteData("{0}, Version={1}, PKT={2}", - mdReader.GetString(ar.Name), - ar.Version, - BitConverter.ToString(mdReader.GetBlobBytes(ar.PublicKeyOrToken))); - } - } - - private void VisualizeMemberRefs(MetadataReader mdReader) - { - if (!_arguments.FindRefs.Any()) - { - return; - } - - var memberRefs = new HashSet( - from arg in _arguments.FindRefs - let split = arg.Split(':') - where split.Length == 3 - select new MemberRefKey(split[0].Trim(), split[1].Trim(), split[2].Trim())); - - foreach (var handle in mdReader.MemberReferences) - { - var memberRef = mdReader.GetMemberReference(handle); - - if (memberRef.Parent.Kind != HandleKind.TypeReference) - { - continue; - } - - var typeRef = mdReader.GetTypeReference((TypeReferenceHandle)memberRef.Parent); - if (typeRef.ResolutionScope.Kind != HandleKind.AssemblyReference) - { - // TODO: handle nested types - continue; - } - - var assemblyRef = mdReader.GetAssemblyReference((AssemblyReferenceHandle)typeRef.ResolutionScope); - - var key = new MemberRefKey( - assemblyNameOpt: mdReader.GetString(assemblyRef.Name), - assemblyVersionOpt: assemblyRef.Version, - @namespace: mdReader.GetString(typeRef.Namespace), - typeName: mdReader.GetString(typeRef.Name), - memberName: mdReader.GetString(memberRef.Name) - ); - - if (memberRefs.Contains(key)) - { - WriteData($"0x{MetadataTokens.GetToken(handle):X8}->0x{MetadataTokens.GetToken(memberRef.Parent):X8}:" + $" {key.ToString()}"); - } - } - } - - private struct MemberRefKey : IEquatable - { - public readonly string AssemblyNameOpt; - public readonly Version AssemblyVersionOpt; - public readonly string Namespace; - public readonly string TypeName; - public readonly string MemberName; - - public MemberRefKey(string assemblyName, string qualifiedTypeName, string memberName) - { - if (assemblyName.Length > 0) - { - var an = new AssemblyName(assemblyName); - AssemblyNameOpt = an.Name; - AssemblyVersionOpt = an.Version; - } - else - { - AssemblyNameOpt = null; - AssemblyVersionOpt = null; - } - - var lastDot = qualifiedTypeName.LastIndexOf('.'); - Namespace = (lastDot >= 0) ? qualifiedTypeName.Substring(0, lastDot) : ""; - TypeName = (lastDot >= 0) ? qualifiedTypeName.Substring(lastDot + 1) : ""; - - MemberName = memberName; - } - - public MemberRefKey( - string assemblyNameOpt, - Version assemblyVersionOpt, - string @namespace, - string typeName, - string memberName) - { - AssemblyNameOpt = assemblyNameOpt; - AssemblyVersionOpt = assemblyVersionOpt; - Namespace = @namespace; - TypeName = typeName; - MemberName = memberName; - } - - public override bool Equals(object obj) - { - return obj is MemberRefKey && Equals((MemberRefKey)obj); - } - - public override int GetHashCode() - { - // don't include assembly name/version - return Hash.Combine(Namespace, - Hash.Combine(TypeName, - Hash.Combine(MemberName, 0))); - } - - public bool Equals(MemberRefKey other) - { - return (this.AssemblyNameOpt == null || other.AssemblyNameOpt == null || this.AssemblyNameOpt.Equals(other.AssemblyNameOpt, StringComparison.OrdinalIgnoreCase)) && - (this.AssemblyVersionOpt == null || other.AssemblyVersionOpt == null || this.AssemblyVersionOpt.Equals(other.AssemblyVersionOpt)) && - this.Namespace.Equals(other.Namespace) && - this.TypeName.Equals(other.TypeName) && - this.MemberName.Equals(other.MemberName); - } - - public override string ToString() - { - return (AssemblyNameOpt != null ? $"{AssemblyNameOpt}, Version={AssemblyVersionOpt}" : "") + - $":{Namespace}{(Namespace.Length > 0 ? "." : "")}{TypeName}:{MemberName}"; - } - } - - private int RunRecursive() - { - bool hasError = false; - - foreach (var file in GetAllBinaries(_arguments.Path)) - { - using (var peReader = new PEReader(File.OpenRead(file))) - { - try - { - if (!peReader.HasMetadata) - { - continue; - } - } - catch (BadImageFormatException e) - { - _writer.WriteLine("{0}: {1}", file, e.Message); - hasError = true; - continue; - } - - _pendingTitle = file; - - try - { - var mdReader = peReader.GetMetadataReader(); - - VisualizeAssemblyReferences(mdReader); - VisualizeStatistics(mdReader); - VisualizeMemberRefs(mdReader); - } - catch (BadImageFormatException e) - { - WriteData("ERROR: {0}", e.Message); - hasError = true; - continue; - } - - if (_pendingTitle == null) - { - _writer.WriteLine(); - } - - _pendingTitle = null; - } - } - - return hasError ? 1 : 0; - } -} diff --git a/src/Tools/Source/MetadataVisualizer/project.json b/src/Tools/Source/MetadataVisualizer/project.json deleted file mode 100644 index faf4f6cf32dd6..0000000000000 --- a/src/Tools/Source/MetadataVisualizer/project.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "dependencies": { }, - "frameworks": { - "net46": { } - }, - "runtimes": { - "win": { } - } -} diff --git a/src/Tools/Source/RunTests/RunTests.csproj b/src/Tools/Source/RunTests/RunTests.csproj index fcf64800907c4..a1423579dec3c 100644 --- a/src/Tools/Source/RunTests/RunTests.csproj +++ b/src/Tools/Source/RunTests/RunTests.csproj @@ -6,7 +6,6 @@ AnyCPU Exe net472 - $(RoslynDesktopRuntimeIdentifier) true false false diff --git a/src/VisualStudio/CSharp/Test/Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests.csproj b/src/VisualStudio/CSharp/Test/Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests.csproj index e9d323932fe8d..a46f2a1c72500 100644 --- a/src/VisualStudio/CSharp/Test/Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests.csproj +++ b/src/VisualStudio/CSharp/Test/Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests.csproj @@ -7,7 +7,6 @@ Library Roslyn.VisualStudio.CSharp.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest true diff --git a/src/VisualStudio/Core/Def/Microsoft.VisualStudio.LanguageServices.csproj b/src/VisualStudio/Core/Def/Microsoft.VisualStudio.LanguageServices.csproj index f7f0350dd1ab2..028985b466222 100644 --- a/src/VisualStudio/Core/Def/Microsoft.VisualStudio.LanguageServices.csproj +++ b/src/VisualStudio/Core/Def/Microsoft.VisualStudio.LanguageServices.csproj @@ -272,5 +272,5 @@ - + \ No newline at end of file diff --git a/src/VisualStudio/Core/Test.Next/Roslyn.VisualStudio.Next.UnitTests.csproj b/src/VisualStudio/Core/Test.Next/Roslyn.VisualStudio.Next.UnitTests.csproj index b32e2ed2a1a2e..c507d04780619 100644 --- a/src/VisualStudio/Core/Test.Next/Roslyn.VisualStudio.Next.UnitTests.csproj +++ b/src/VisualStudio/Core/Test.Next/Roslyn.VisualStudio.Next.UnitTests.csproj @@ -7,7 +7,6 @@ Library Roslyn.VisualStudio.Next.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest $(DefineConstants);TESTS diff --git a/src/VisualStudio/Core/Test/Microsoft.VisualStudio.LanguageServices.UnitTests.vbproj b/src/VisualStudio/Core/Test/Microsoft.VisualStudio.LanguageServices.UnitTests.vbproj index ba615276ee529..273a86c1279ef 100644 --- a/src/VisualStudio/Core/Test/Microsoft.VisualStudio.LanguageServices.UnitTests.vbproj +++ b/src/VisualStudio/Core/Test/Microsoft.VisualStudio.LanguageServices.UnitTests.vbproj @@ -6,7 +6,6 @@ AnyCPU Library net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/VisualStudio/Setup.Dependencies/Roslyn.VisualStudio.Setup.Dependencies.csproj b/src/VisualStudio/Setup.Dependencies/Roslyn.VisualStudio.Setup.Dependencies.csproj index d0b0858e13195..7238d8a0f20cc 100644 --- a/src/VisualStudio/Setup.Dependencies/Roslyn.VisualStudio.Setup.Dependencies.csproj +++ b/src/VisualStudio/Setup.Dependencies/Roslyn.VisualStudio.Setup.Dependencies.csproj @@ -7,7 +7,6 @@ Library Roslyn.VisualStudio.Setup.Dependencies net472 - $(RoslynDesktopRuntimeIdentifier) Vsix true diff --git a/src/VisualStudio/TestUtilities2/Microsoft.VisualStudio.LanguageServices.Test.Utilities2.vbproj b/src/VisualStudio/TestUtilities2/Microsoft.VisualStudio.LanguageServices.Test.Utilities2.vbproj index 90d8b72f52c15..e331cb60b8681 100644 --- a/src/VisualStudio/TestUtilities2/Microsoft.VisualStudio.LanguageServices.Test.Utilities2.vbproj +++ b/src/VisualStudio/TestUtilities2/Microsoft.VisualStudio.LanguageServices.Test.Utilities2.vbproj @@ -6,7 +6,6 @@ AnyCPU Library net472 - $(RoslynDesktopRuntimeIdentifier) false diff --git a/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj b/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj index f013b33f14ca2..46fddbafa9ee5 100644 --- a/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj +++ b/src/Workspaces/CSharpTest/Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests.csproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.CSharp.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj b/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj index 273951dcc9df2..d485020f32459 100644 --- a/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj +++ b/src/Workspaces/CoreTest/Microsoft.CodeAnalysis.Workspaces.UnitTests.csproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Workspaces/CoreTestUtilities/Resources/ProjectFiles/CSharp/Encoding.csproj b/src/Workspaces/CoreTestUtilities/Resources/ProjectFiles/CSharp/Encoding.csproj index f0040d7ffe964..bb3b1813ca647 100644 --- a/src/Workspaces/CoreTestUtilities/Resources/ProjectFiles/CSharp/Encoding.csproj +++ b/src/Workspaces/CoreTestUtilities/Resources/ProjectFiles/CSharp/Encoding.csproj @@ -4,7 +4,6 @@ Debug - ..\..\..\..\Binaries\$(Configuration)\ AnyCPU AnyCPU 0457d095-9f74-415c-b461-dd08d4503a34 diff --git a/src/Workspaces/CoreTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj b/src/Workspaces/CoreTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj index 397270326e693..1bfeb29b3ffb9 100644 --- a/src/Workspaces/CoreTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj +++ b/src/Workspaces/CoreTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) false diff --git a/src/Workspaces/DesktopTest/Microsoft.CodeAnalysis.Workspaces.Desktop.UnitTests.csproj b/src/Workspaces/DesktopTest/Microsoft.CodeAnalysis.Workspaces.Desktop.UnitTests.csproj index cc9ccddc5e115..8fbef5be5a855 100644 --- a/src/Workspaces/DesktopTest/Microsoft.CodeAnalysis.Workspaces.Desktop.UnitTests.csproj +++ b/src/Workspaces/DesktopTest/Microsoft.CodeAnalysis.Workspaces.Desktop.UnitTests.csproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Workspaces/MSBuildTest/Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests.csproj b/src/Workspaces/MSBuildTest/Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests.csproj index 4da0a5beb4bd2..e5ff7e6717b42 100644 --- a/src/Workspaces/MSBuildTest/Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests.csproj +++ b/src/Workspaces/MSBuildTest/Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests.csproj @@ -7,7 +7,6 @@ Library Microsoft.CodeAnalysis.MSBuild.UnitTests net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj b/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj index 0172fb4f263a5..a9a73dd3c0574 100644 --- a/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj +++ b/src/Workspaces/VisualBasicTest/Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj @@ -8,7 +8,6 @@ Off Default net472 - $(RoslynDesktopRuntimeIdentifier) UnitTest diff --git a/test.sh b/test.sh old mode 100644 new mode 100755 index aec69ecdeb040..97e839065adfe --- a/test.sh +++ b/test.sh @@ -13,4 +13,4 @@ while [[ -h $source ]]; do done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" -"$scriptroot/build/scripts/build.sh" --test $@ \ No newline at end of file +"$scriptroot/eng/build.sh" --test $@ \ No newline at end of file