diff --git a/.gitignore b/.gitignore index 21ad03fd2577..cdcaf4ef74e9 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,10 @@ obj/ .tools/ .packages/ +# Locally-customizable build props import +/LocalDev.Build.props +/LocalDev.Packages.props + # OS X Device Services Store .DS_Store diff --git a/Directory.Build.props b/Directory.Build.props index c72b4a0cee9e..547e54a30dab 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -96,4 +96,9 @@ + + + $(MSBuildThisFileDirectory)LocalDev.Build.props + + diff --git a/Directory.Packages.props b/Directory.Packages.props index 8b7dd4136423..e6c593f8b9aa 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -157,4 +157,10 @@ + + + + $(MSBuildThisFileDirectory)LocalDev.Packages.props + + diff --git a/documentation/local-dev/roslyn/LocalDev.Build.props b/documentation/local-dev/roslyn/LocalDev.Build.props new file mode 100644 index 000000000000..bd17b543a344 --- /dev/null +++ b/documentation/local-dev/roslyn/LocalDev.Build.props @@ -0,0 +1,19 @@ + + + + $(MSBuildThisFileDirectory)..\roslyn + $(RestoreAdditionalProjectSources);$(RoslynRoot)\artifacts\packages\Debug\Shipping + + + $(MSBuildThisFileDirectory).packages\ + $(UserProfile)\.nuget\packages + + + + + + + diff --git a/documentation/local-dev/roslyn/LocalDev.Packages.props b/documentation/local-dev/roslyn/LocalDev.Packages.props new file mode 100644 index 000000000000..21bcc42615ca --- /dev/null +++ b/documentation/local-dev/roslyn/LocalDev.Packages.props @@ -0,0 +1,24 @@ + + + + + 4.14.0-dev + 3.12.0-dev + + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynVersion) + $(RoslynAnalyzers) + + + + + + + diff --git a/documentation/local-dev/roslyn/readme.md b/documentation/local-dev/roslyn/readme.md new file mode 100644 index 000000000000..7ad472c117a7 --- /dev/null +++ b/documentation/local-dev/roslyn/readme.md @@ -0,0 +1,37 @@ +# Instructions for Roslyn developers + +1. Check out a working copy of dotnet/roslyn, e.g. to the directory next to this repo's root `..\roslyn`. + Make sure the current working directory is the checkout of this repo. + +2. Copy LocalDev.Build.props to the root and set `RoslynRoot` property in the copied file to local Roslyn repo. + + `cp documentation\local-dev\roslyn\LocalDev.Build.props LocalDev.Build.props` + +3. Copy LocalDev.Packages.props.roslyn to the root + + `cp documentation\local-dev\roslyn\LocalDev.Packages.props LocalDev.Packages.props` + +4. Build Roslyn with: + + `..\roslyn\Build.cmd -restore -pack` + +5. Clear the customized packages cache in `.packages` + + `git clean -dxf .packages/` + +6. Restore packages + +7. Open solution and work normally + +8. Following another change to Roslyn.sln, repeat steps 4-6 to pick up those changes in sdk. + +Tip to speed up restore if .\packages starts containing more than just the Roslyn development packages. Clear the +packages cache, and restore packages without using the customized local developer settings to update the per-user +NuGet global package cache with the default packages used for Conversations. Then run a second restore to pick up +just the local development packages for Roslyn. + +``` +git clean -dxf .packages/ +restore /p:SkipLocalDevSettings=true +restore +``` \ No newline at end of file