Giter VIP home page Giter VIP logo

project-system's Introduction

The .NET Project System for Visual Studio

Release Build Compliance Publish Localization
main MainBuild MainCompliance MainPublish MainLocalization

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.

image

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

image

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

project-system's People

Contributors

333fred avatar abpiskunov avatar adamint avatar basoundr avatar billhiebert avatar csigs avatar davidwengier avatar davkean avatar dmonroym avatar dotnet-bot avatar drewnoakes avatar jinujoseph avatar jmarolf avatar mavasani avatar melytc avatar miyanni avatar natidea avatar nguerrera avatar ocalles avatar ocallesp avatar panopticoncentral avatar pilchie avatar smitpatel avatar srivatsn avatar swesonga avatar tannergooding avatar tihan avatar tmat avatar tmeschter avatar v-zbsail avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

project-system's Issues

Project System: Find in Files should search in project files

If you do a Find in Files with a loaded project, VS doesn't search in the project file.

A couple of things to make sure:

Find In Solution works
Open from search results works.

Current State:

With this in-progess PR: https://devdiv.visualstudio.com/DevDiv/_git/VS/pullrequest/124985 (Microsofties-only sorry), the following works:

What works:

If project file is closed:

  • Find in Files/Find All set to Project or Solution

If project file is open but not active:

  • Find in Files/Find All set to Project or Solution
  • Find set to Project or Solution

If project file is open and active:

  • Find set to Solution
  • Find in Files/Find All set to Solution
  • Incremental Find

What doesn't work:

If project file is open and active (cause: issue 1):

  • Find set to Project
  • Find in Files/Find All set to Project (returns "No files were found to look in")

If project file is closed (cause: issue 2):

  • Find set to Project or Solution

If AppDesigner is open (cause: issue 3)

  • Find set to Project or Solution

Other:

Issues that need to be solved:

  • 1. If the project file is open and active, Monitor Service thinks Solution is the active hierarchy and not the project.
  • 2. FindOrOpenFile (FindUtil.cpp) is blocking opening the project file because RDT is returning RDT_ProjSlnDocument. Even if it does return, it asks ShellOpenDocumentService to OpenDocumentViaProject via LOGVIEWID_TextView.
  • 3. If AppDesigner is open, ShellOpenDocumentService wants to activate it with a different logical view IVsMultiViewDocumentView.ActivateLogicalView

Project System: Renaming project.json to [ProjectName].project.json should take immediate effect

From @davkean on April 29, 2016 17:9

Unlike csproj, which requires a project reload.

  1. Create a new project
  2. Rename the project.json to ProjectName.project.json.
  3. Edit the project.json to add a reference to your favorite package.
  4. Rebuild.

Expected: the package reference is added
Actual: it's not

Background: once the project.json is renamed, we don't have the proper logic to update the file system watcher that is watching project.lock.json.

Copied from original issue: dotnet/roslyn#10973

Project System: Items should be allowed to vary per configuration

From @davkean on April 29, 2016 18:42

(Moved from: https://connect.microsoft.com/VisualStudio/feedback/details/2091320/environment-variables-configuration-platform-in-csproj-wrong)

Description: Environment Variables $(Platform) in csproj always AnyCPU,
Environment Variables $(Configuration) in csproj always Debug

Repro Steps:Edit the csproj file and add this path

<ItemGroup> 
<Content Include="$(SolutionPath)\$(Platform)\$(Configuration)\Foo.dll" /> 
</ItemGroup> 

and solution and project choose release & x64.

select this file in solution explorer and prop always "SolutionPath\AnyCPU\Debug\Foo.dll"

Impact:buildbreak, can't find the lib.

Copied from original issue: dotnet/roslyn#10984

Project System: Debug properties page doesn't scale at high DPIs

From @davkean on April 29, 2016 18:9

Steps to reproduce:

  1. Run VS on a monitor with 150% DPI (not sure if DPI is related to bug)
  2. Create a C# console application
  3. In solution explorer, right click on project and choose "Properties"
  4. Click Debug tab

Result (I also attached a screenshot):
Notice that I have a ton of real estate, and the editor is using very little of it:
image

Copied from original issue: dotnet/roslyn#10981

Project System: Hosting process

From @davkean on April 29, 2016 22:23

We need to determine if we're going to implement the hosting process. We're waiting on the debugger team to provide data on how much time this saves on F5.

We'll also need an async way of initializing this - it's currently the top three of UI delays.

Copied from original issue: dotnet/roslyn#10995

Project System: Up-to-date check

CPS does not provide a project system up-to-date check out of the box - to get a similar experience to csproj/msvbproj where they only call MSBuild after they've determined that they are out of date, we should implement one.

Design

To do a fast up-to-date check, we should implement IBuildUpToDateCheckProvider, a configured level service, that is called back to determine if build should call into MSBuild.

Requirements

  • Respect <DisableFastUpToDateCheck> property to disable the build
  • Always write to output window why we ended up calling MSBuild (under which verbosity?)
  • Respect <ExcludedFromBuild> on items
  • We should drive almost all inputs/output for the up-to-date check via the items above, such as (but not limited to) XML doc files, pdb, exe.config, deps.json, runtimeconfig.json, etc) to avoid hardcoding these in the project system. We should make changes in the SDK/MSBuild to add these.
  • Respect IItemType.UpToDateCheckInput on other items (basically all known items) - see IProjectItemSchemaService
  • Respect <UpToDateCheckOutput Include=""/> and <UpToDateCheckInput Include=""/> to supplement the build. We'll need to create ProjectItemDefinitions for these (so that we see them in data flow) and set UpToDateCheckInput for the later.
  • Send telemetry to track why we ended up calling MSBuild
  • Handle situations, such as WinMDs, where the binary copied to the output directory is the same binary as csc produced.
  • Handle situations, such as <UseCommonOutputDirectory> where dependencies aren't copied to the output directory.
  • Handle <CopyToOutputDirectory> items especially when set to <Always> where the legacy project system always shells out to MSBuild.
  • Rationalize <FileWrites> vs <UpToDateCheckOutput> (should we respect the former to avoid having update all of msbuild to tell us about all the outputs?)
  • Rationalize whether we need to be run before or after draining critical tasks (BeforeDrainCriticalTasks metadata) - what if we haven't restored yet and NuGet brings down a bunch of packages, should we build or not?
  • Work with NuGet folks to make sure GeneratePackageOnBuild sets the right inputs and outputs above to play nicely with up-to-date.

Things to watch out for

  • While IBuildUpToDateCheckProvider is at each configured project level - in multi-targeting projects we only ever build the VS "active" config. We end up building all TFMs by clearing out the TargetFramework property. This is really important, and it means we need to factor in all other active configurations as to the determination of whether we need to shell out to MSBuild.
  • See VCBuildUpToDateCheck for an example of a functioning up-to-date check,

Project System: Add item build action defaults

From @davkean on March 23, 2016 17:30

Represents what happens when you add an item to a project, either by dragging it into the tree, including it, rename it or adding via Add Item dialog.

We need to set defaults, such as Build Action and Generator.

Make note that the WPF flavor has different and additional code to handle this above and beyond csproj.dll/msvbproj.dll.

Copied from original issue: dotnet/roslyn#10011

Project System: We need a compat mode to let a project be opened in csproj/msvbproj when features are not supported

From @davkean on April 12, 2016 0:54

I'm thinking that we implement a pre-req handler via IVsRetargetProject that does a check to see if the project contains a list of unsupported features, and then offers to reload via csproj/msvbproj.

As we bring up features we simply remove them from this list so that we open more and more projects via CPS.

Copied from original issue: dotnet/roslyn#10493

Project System: Conditional references should be supported

From @davkean on April 29, 2016 17:53

(Moved from https://connect.microsoft.com/VisualStudio/feedback/details/1322721/solution-explorer-displays-conditional-references-wrongly.)

Specifying a condition in reference one is able to reference different libraries in Debug and Release mode. It makes sense for example to reference obfuscated nuGet package in Release configuration, and reference precompiled debug binaries in Debug configuration. Consider the following extract from .csproj file:

<ItemGroup> 
<Reference Include="Lib.Core, ....." Condition="'$(Configuration)' == 'Release'"> 
<HintPath>..\..\Packages\Lib.Core.5.4\lib\net45\Lib.Core.dll</HintPath> 
<Private>True</Private> 
</Reference> 
<Reference Include="Lib.Core,...." Condition="'$(Configuration)' == 'Debug'"> 
<SpecificVersion>False</SpecificVersion> 
<HintPath>..\..\Lib Dependencies\Lib.Core.dll</HintPath> 
<Private>True</Private> 
</Reference> 
</ItemGroup> 

This is built correctly in both configurations, however the Solution Explorer displays the references with errors:

  • There are 2 Lib.Core references on project in both configurations
  • 2nd Lib.Core reference is marked with warning sign, and it's properties are empty as if typical "this reference cannot be located" situation occur
  • The physical path for 1st reference is displayed as if it is 2nd one (though switching Copy Local property on and off updates correct item in project file)

Taking into account this question ( http://stackoverflow.com/questions/1786917/is-there-a-way-to-specify-assembly-references-based-on-build-configuration-in-vi ) I assume that the display was correct in previous versions of VS.

Thank you.

Copied from original issue: dotnet/roslyn#10979

Figure out upgrade

From @davkean on May 13, 2016 2:10

While most projects don't need to upgrade from VS 2015 -> VS 15, we still have to handle project upgrade from earlier versions.

We basically need to fill out implementations of IFlavoredProjectCompatibilityProvider.IsProjectNeedBeUpgradedAsync to decide whether to delegate onto csproj.

Copied from original issue: dotnet/roslyn#11285

Project System: Post Build event does not handle spaces in paths, despite being quoted

From @davkean on April 29, 2016 18:37

(Posted on behalf of a customer)

using this:

robocopy “$(TargetDir)\” “$(SolutionDir)\Application\$(OutDir)\Modules” $(TargetName).dll $(TargetName).pdb
``

when my solution path is":

C:\Users\user\Documents\Visual Studio 2012\Foo\Foo Bar\Foo App


error message

Invalid Parameter #: "2012\Foo\Foo"

shows that it is not respecting the quotes around and split

_Copied from original issue: dotnet/roslyn#10983_

Project System: Stop opening component designer by default

From @davkean on May 11, 2016 1:57

Today if you double-click on a type that implements IComponent in Solution Explorer, we open the component designer.

While that's useful for forms, and user controls, it's not very useful for controls, or other components that contain just code and nothing "designable".

We should consider open code view by default. Let's pull the telemetry on whom double-click on a component, only to immediately close it and choose View Code.

Copied from original issue: dotnet/roslyn#11236

Project System: Split Editors.pkgdef into two

From @davkean on May 6, 2016 16:2

Editors.pkgdef is used for multiple reasons;

  1. For registering property pages, designers ,etc
  2. For registering dependent assemblies for the editor extension; Common7\IDE\CommonExtensions\Microsoft\Editor (see 343941fe645959363b33f965b6259630868cfda2 commit in VS tree).

When we delete editors internal, we should make sure we split 2) into a separate pkgdef and leave it in VS.

Copied from original issue: dotnet/roslyn#11146

Project System: Please Consider POCO as Schema for Project File/Structure

From @Mike-EEE on May 12, 2016 8:5

I (unfortunately) made a lengthy, somewhat off-topic post/rant about this in another thread yesterday so I am going to throw it down here in a dedicated issue and see how it goes.

There's talk about the new build system. There has been previous efforts over at MSBuild to examine the build system and improve upon its format. These were ultimately denied, expressing a "better safe than sorry" (huh? 😛) perspective. So, with all the energy/enthusiasm/magic over here, this appears to be the new lightning rod for developer creativity. 😄

My ask is simple: Continue to use the XML format (or even JSON), but move away from the element mapping-to-POCO strategy and make the csproj/xproj/proj file a fully (XML or JSON) serialized POCO instead, so that at the very least we know the precise POCO (and definition/schema) that we are dealing with and constructing. This helps not only developer experience (and thereby sanity 😄 ) but also any tools/designers that wish to build off of it.

Currently, the project file looks like something like the following:

<Project>
 <ItemGroup> ... </ItemGroup>
 <PropertyGroup>... </PropertyGroup>
</Project>

This is great for defining arbitrary data in a file, but it is completely useless for someone who opens up the file and wondering: "what the **** is a <Project /> element?!"

The above design requires at least three artifacts:

  1. The data file itself, expressing the data constructs (.csproj)
  2. The schema file, defining what is allowed (.xsd if in XML, and I have never seen one in my 15 years of .NET for a .csproj file!)
  3. The POCO that ultimately gets created from reading in the data file.

Oh but wait, there's more! Due to the above design, I bet you there is at least a fourth artifact!
4. The mapping class/utility that reads in the data file as an XmlDocument and laboriously reads in element by element, attribute by attribute to create and instantiate the POCO object(s) with their initialized values. OH THE INEFFICIENT HORROR!!

Conversely, if we take a page from Xaml file design, we have the data file's schema baked right into the file by way of the class definition. As a result, we only require two artifacts:

  1. The data file (.xaml)
  2. The class definition file (.cs/.vb)

This is a MUCH easier to design to produce, maintain, and manage. Tooling can tie right into the class file (using Roslyn??? 😄 ) and get all the information it needs. Developers do NOT need to hunt and chase down schemas in some arbitrary, hidden location (registry?! LOL, might as well be!) to figure out the file they are working with!

This is a very (relatively) simple design improvement that will make a world's (universe's!) difference in project look and feel. I cringe every time I have to go into the .csproj file because it is SO ARCANE AND MYSTERIOUS TO WORK WITH!

Finally, by using a class definition as the schema, another headache that this eradicates is the inconsistency between camelCase and PascalCase when declaring/using symbols/attribute names within the file (ALL THE INCONSIST!).

Anyways, thank you for any consideration and dialogue around this idea.

Copied from original issue: dotnet/roslyn#11263

Project System: Remove the cruft from project files and templates

From @davkean on May 11, 2016 1:35

Want to go from something like:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>0a5fdbad-1d09-4833-a0b4-cf17a684fb2e</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>ClassLibrary1</RootNamespace>
    <AssemblyName>ClassLibrary1</AssemblyName>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System"/>

    <Reference Include="System.Core"/>
    <Reference Include="System.Xml.Linq"/>
    <Reference Include="System.Data.DataSetExtensions"/>


    <Reference Include="Microsoft.CSharp"/>

    <Reference Include="System.Data"/>

    <Reference Include="System.Net.Http"/>

    <Reference Include="System.Xml"/>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Class1.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->

 </Project>

To something like:

<?xml version="1.0" encoding="utf-8"?>
<Project>

  <PropertyGroup>
    <OutputType>Library</OutputType>
    <RootNamespace>ClassLibrary22</RootNamespace>
    <AssemblyName>ClassLibrary22</AssemblyName>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include="System"/>
    <Reference Include="System.Core"/>
    <Reference Include="System.Xml.Linq"/>
    <Reference Include="System.Net.Http"/>
    <Reference Include="System.Xml"/>
  </ItemGroup>

  <ItemGroup>
    <Compile Include="**\*.cs" />
  </ItemGroup>

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

</Project>

Copied from original issue: dotnet/roslyn#11235

Enable XBAP specific WPF Property pages

From @davkean on March 23, 2016 18:9

WPF flavor swaps in property pages, we need to decide what we'll do around this:

        if (pageReplacements == null)
        {
            // Populate the page replacements list
            pageReplacements = new List<PageReplacementItem>();
            if (IsHostInBrowser)
            {
                // For XBAPs, swap in the new security and signing pages:
                pageReplacements.Add(new PageReplacementItem(
                    "{DF8F7042-0BB1-47D1-8E6D-DEB3D07698BD}",   // Security property page
                    "{00a2c8fe-3844-41be-9637-167454a7f1a7}"    // WPF Security property page
                ));
                pageReplacements.Add(new PageReplacementItem(
                    "{F8D6553F-F752-4DBF-ACB6-F291B744A792}",   // Signing property page
                    "{e4b54061-084d-4484-9d21-ecae95a78a56}"    // WPF Signing property page
                ));
            }
            if (GetLanguage() == Language.VisualBasic)
            {
                // For all VB WPF apps, swap in the new application page:
                pageReplacements.Add(new PageReplacementItem(
                    "{8998E48E-B89A-4034-B66E-353D8C1FDC2E}",   // VB Application property page
                    "{00aa1f44-2ba3-4eaa-b54a-ce18000e6c5d}"    // VB WPF Application property page
                ));
            }
        }

Copied from original issue: dotnet/roslyn#10017

Project System: Changes to project file are not reflected in the Properties page tab (no * appears)

From @davkean on April 29, 2016 17:56

  1. Create a new project (say WPF project).
  2. Right click on the project an click on properties, keep it open.
  3. Right click and add reference to the project.

Actual : No * appears next to the file name in the tab header. It appears if I close the tab and open it again via Right click -> properties on the project.

Expected : * should appear indicating that there are unsaved changes to the project file.

Copied from original issue: dotnet/roslyn#10980

Project System: VSHost replacement

From @davkean on April 11, 2016 22:56

Currently csproj/msvbproj uses vshost.exe to "speed up" F5 debugging for desktop client apps.It is also used for immediate window evaluation without starting a debugging session. We need to figure out if we are going to bring this forward to CPS or not.

Copied from original issue: dotnet/roslyn#10484

Support linked files so solution can Zipped

From @paul1956 on May 7, 2016 19:5

Version Used:
Feature Request
Steps to Reproduce:

  1. ZIP a solution with Linked Files using underlying OS
  2. Copy ZIP file to another computer and unZIP
  3. build solution

Expected Behavior:
It has all the source files to build
Actual Behavior:
All linked files are missing

There needs to be a way to find and replace all linked files with physical files and then reverse it. I am looking for an easy solution other then to stop using linked files. I also don't want to have to find all the linked files in file system, manually copy them, ZIP then delete. This seems very error prone. The ability to highlight all Linked Files in Project system and convert linked to physical and visa versa, or a built in source packaging command could help. I am no proposing any specific solution.

Copied from original issue: dotnet/roslyn#11164

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.