Skip to content
The .NET project system for Visual Studio
C# Other
  1. C# 99.7%
  2. Other 0.3%
Branch: master
Clone or download

Latest commit

drewnoakes Merge pull request #6274 from drewnoakes/remove-unused-code
Remove unused IDependencyExtensions.HasSameTarget
Latest commit f100104 Jun 10, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update action Mar 26, 2020
build Remove workaround for Microsoft.VSSDK.BuildTools May 28, 2020
docs Fix reference to removed type May 26, 2020
resources Update import tree icons Nov 14, 2019
setup Merge pull request #6261 from drewnoakes/remove-full-path-from-items Jun 2, 2020
src Remove unused IDependencyExtensions.HasSameTarget Jun 10, 2020
tests Remove unused IDependencyExtensions.HasSameTarget Jun 10, 2020
.editorconfig Make use of banned symbols a warning May 19, 2020
.gitattributes Collapse XLF files in PRs by default Aug 12, 2019
.gitignore Ignore test deployment & coverage files Jul 9, 2019
.vsconfig Depend on .NET Framework 4.8 SDK Nov 28, 2019
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT file Dec 2, 2019
CONTRIBUTING.md Add note about custom intellicode model May 20, 2019
Directory.Build.props Merge pull request #5988 from davkean/RemoveWorkarounds Mar 17, 2020
Directory.Build.targets Code cleanup and fix warnings May 26, 2020
LICENSE.md change license file Mar 10, 2020
Launch.cmd echo devenv.exe location from Launch.cmd Jul 26, 2018
ProjectSystem.sln Fix sln description Mar 12, 2020
README.md Adding 16.7 badge on Readme May 6, 2020
SECURITY.md Add SECURITY.md Feb 26, 2020
build.cmd Indicate real default for /ci Mar 17, 2020
codecov.yml Revert "remove unused pipelines" Apr 3, 2019

README.md

The .NET Project System for Visual Studio

Release Unit Tests (Debug) Unit Tests (Release) Localization Coverage (Debug)
16.0 Build Status Build Status Build Status codecov
16.5 Build Status Build Status Build Status codecov
16.6 Build Status Build Status Build Status codecov
16.7 Build Status Build Status Build Status codecov
master Build Status Build Status Build Status codecov

Join the chat at https://gitter.im/dotnet/project-system

This repository contains the new .NET Project System that has been rewritten on top of the Common Project System (CPS). In Visual Studio 2017 and Visual Studio 2019, this project system is used by default for Shared Projects (C# and Visual Basic), and .NET Core (C#, F# and Visual Basic) project types, however, long term it will be the basis of all C#, F# and Visual Basic project types. For a list of feature differences between the project systems, see Feature Comparison.

The legacy C# and Visual Basic project systems (csproj.dll and msvbprj.dll) first shipped with Visual Studio .NET in 2002. They have served us well but are:

  • Native and COM-based
  • Single threaded and bound to the UI thread
  • Hard to extend outside of aggregation via the use of <ProjectTypeGuids> and sub types (flavors)
  • Separate implementations for C# and Visual Basic projects

The new .NET Project System is:

  • Managed and managed-interface based
  • Multi-threaded, scalable, and responsive
  • Easy to extend and compose via the Managed Extensibility Framework (MEF). Many parties, including 3rd parties, can contribute to a single project system.
  • A single implementation for C#, F# and Visual Basic projects

What is a project system?

A project system sits between a project file on disk (for example, .csproj and .vbproj) and various Visual Studio features including, but not limited to, Solution Explorer, designers, the debugger, language services, build and deployment. Almost all interaction that occurs with files contained in a project file happens through the project system.

There are many technologies that come together to make up the .NET Project System:

  • MSBuild provides the build engine and file format.
  • SDK provides the command-line interface for building, running and interacting with .NET projects, along with the necessary MSBuild tasks and targets.
  • Common Project System provides the base building blocks for the project system including (but not limited to) project tree, build and debugger coordination and Visual Studio integration.
  • Roslyn provides C# and Visual Basic language support including compilers, IntelliSense, refactorings, analyzers and code fixes.
  • Visual F# tools provides F# language support.

image

How do I engage and contribute?

We welcome you to try things out, file issues, make feature requests and join us in design conversations. If you are looking for something to work on, take a look at our help wanted issues for a great place to start. Also be sure to check out our contributing guide.

This project has adopted a code of conduct adapted from the Contributor Covenant to clarify expected behavior in our community. This code of conduct has been adopted by many other projects. For more information see Contributors Code of conduct.

You can’t perform that action at this time.