project system

2025-12-10 0 909

The .NET Project System for Visual Studio

Release Build Compliance Publish Localization
main

This repository contains the .NET Project System for Visual Studio that is written on top of the Common Project System (CPS) framework. In Visual Studio 2017, Visual Studio 2019, and Visual Studio 2022, this project system is used for .NET Core [SDK-style] (C#, F# and Visual Basic) and Shared Projects (C# and Visual Basic) project types. In the long term, this project system will be the basis for 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 current .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.

How do I build the repository?

This repository is built on .NET Framework and requires the .NET Framework version of MSBuild to build successfully. Additionally, there is a dependency on the Visual Studio SDK as the .NET Project System is bundled as a Visual Studio Extension for deployment into Visual Studio.

Here is how to acquire the necessary components:

  • Install the latest Visual Studio
    • Select these workloads during installation:
      • .NET desktop build tools
      • Visual Studio extension development

After the necessary components are installed, simply run the build.cmd batch file at the root of the repository. This will build, test, and bundle the repository appropriately.

build.cmd flags

All the command line arguments provided to build.cmd get forwarded to MSBuild. There are some special properties we\’ve set up for building this repo.

  • For Projects:
    • /p:SrcProjects=[true or false]: Includes the projects within the src directory. Default: true
    • /p:TestProjects=[true or false]: Includes the projects within the tests directory. Default: true
    • /p:SetupProjects=[true or false]: Includes the projects within the setup directory. Default: true
  • For Targets:
    • /p:Restore=[true or false]: Runs the Restore target to acquire project dependencies. Default: true
    • /p:Build=[true or false]: Runs the Build target to compile the projects into assemblies. Default: true
    • /p:Rebuild=[true or false]: Runs the Rebuild target which cleans and builds the projects. Default: false
    • /p:Test=[true or false]: Runs the Test target to execute the xUnit test projects. Default: true
    • /p:Pack=[true or false]: Runs the Pack target to bundle the projects into NuGet packages. Default: true

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, 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.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft\’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party\’s policies.

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in \”Visual Studio Customer Experience Improvement Program\”. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.*micros**oft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

下载源码

通过命令行克隆项目:

git clone https://github.com/dotnet/project-system.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 project system https://www.zuozi.net/33555.html

dooringx
上一篇: dooringx
JUCE
下一篇: JUCE
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务