Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.
/ ProjFileTools Public archive

Tools for enhanced editing of MSBuild proj files in Visual Studio 2017 and 2019

License

Notifications You must be signed in to change notification settings

dotnet/ProjFileTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

04a8c62 · Mar 17, 2025
Aug 16, 2017
Oct 4, 2021
Jun 22, 2022
Aug 11, 2019
Dec 10, 2016
Jan 9, 2020
Jul 7, 2019
Apr 2, 2020
Dec 10, 2016
May 4, 2017
Dec 10, 2016
Feb 28, 2017
Sep 22, 2021
Oct 4, 2021
Mar 17, 2025
Oct 1, 2021
Sep 23, 2017

Repository files navigation

ProjFileTools Archived

This project was an experiment for older versions of Visual Studio that we have not carried forward in the same manner.

As part of creating transparency of the state of the repo, we are archiving this repo in current state. All issues will remain unresolved with regard to this source code.

For alternative extensions that are more recent we recommend looking at MSBuild Editor.

In addition, you may log feature suggestions on Developer Community that can be upvoted by others to help us in our prioritization of different features that go into Visual Studio.


Project File Tools

Build status

Download this extension from the VS Gallery.


Provides Intellisense and other tooling for XML based project files such as .csproj and .vbproj files.

See the change log for changes and road map.

Features

  • Intellisense for NuGet package name and version
  • Hover tooltips for NuGet packages
  • Go To Definition (F12) for MSBuild imports
  • Go To Definition (F12) for MSBuild properties

Intellisense

Full Intellisense for NuGet package references is provided for both packages that are locally cached as well as packages defined in any feed - local and online.

Tooltip

Tooltip

Hover tooltips

Hovering over a package reference shows details about that package.

Tooltip

Go To Definition (F12) for MSBuild imports

Set the caret on any import statement and press F12, Visual Studio will automatically open the imported file.

It supports both the traditional Import Project construct

<Import Project="foo.targets" />

as well as the new SDK attribute used by .Net Core projects:

<Project Sdk="Microsoft.NET.Sdk">
   ...
</Project>

It supports evaluation of MSBuild properties and globs.

When the import statement covers multiple files (which is typically the case with the SDK attribute or when using globs), it opens the a window that displays the set of files included. In that list you can:

  • click on a file to open it in Visual Studio
  • hover the file name and the tooltip will display the full path

Tooltip

Go To Definition (F12) for MSBuild properties

Pressing F12 when caret is on the usage of a MSBuild property will open the location where that property is defined. If multiple definitions are found, it opens a window that lists all the definitions and their evaluated values.

For example:

<PropertyGroup>
    <Foo>abc</Foo>
    <Foo>def</Foo>
    <Bar>$(Foo)</Bar>
</PropertyGroup>

Pressing F12 on $(Foo) in this case will lists both places where Foo is defined, including the evaluated values that get set (abc, def).

Tooltip

Selecting an item from the list, will open the corresponding location in the editor.

Contribute

Check out the contribution guidelines if you want to contribute to this project.

For cloning and building this project yourself, make sure to install the Extensibility Tools 2015 extension for Visual Studio which enables some features used by this project.

License

MIT