ReSharper 2018.2 Help

ReSharper by Language: MSBuild

MSBuild is a platform that is widely used for building applications. Using specific XML tags, you can define how your project should be built or executed. Using ReSharper you can do it faster.

Code inspection

If you mistype names of predefined elements or their attributes, ReSharper informs you about such mismatch via highlighting.

ReSharper by Language MSBuild Code Highlighting 02

If you try to reference the property that is not yet defined, ReSharper detects such cases as well.

ReSharper by Language MSBuild Code Highlighting 01

To look through the list of available inspections for MSBuild, open the Code Inspection | Inspection Severity page of ReSharper options, and then expand the MSBuild node.

Examples of quick-fixes

Define property
If you have not defined the property yet, but want to, use the quick-fix. ReSharper adds a new markup element with the corresponding name above the usage.

ReSharper by Language MSBuild Quick Fixes define property 01

Add required attribute
If for some reason you have not added required attributes or even do not remember what attributes are obligatory for an element, do not bother. ReSharper highlights such elements and suggests the quick-fix to fix the problem.

ReSharper by Language MSBuild Quick Fixes add attribute 01

Code completion

Code completion features are helpful when you start typing predefined elements and their attributes. ReSharper completes them, you save your time.

ReSharper by Language MSBuild Code Completion 01

If you have custom elements and they are properly referenced, ReSharper also suggests them.
ReSharper by Language MSBuild Code Completion 02

ReSharper provides code completion capabilities for MSBuild and NAnt scripts. It suggests tags, their attributes, properties, item groups and metadata names.
Coding Assistance Code Completion Symbol build scripts 01
ReSharper distinguishes required elements and adds special icon, so you can easily find them in the completion list. The list includes all symbols visible in the current scope, so pick an item from the list or continue typing to narrow down the scope.
Coding Assistance Code Completion Symbol build scripts 02
To invoke the completion list in NAnt scripts, press Ctrl+Space or select ReSharper | Edit | Complete Symbol. In MSBuild scripts ReSharper does it for you, automatically.
In the completion list you see special icons. They help you distinguish between the types of suggested items.

ThemedIcon PropertyGroup Screen Gray

represents the PropertyGroup element only

ThemedIcon Attribute Screen Gray

represents attributes of elements

ThemedIcon ItemGroup Screen Gray

represents the ItemGroup element and its items

ThemedIcon Property Screen Gray

represents properties

ThemedIcon Target Screen Gray

represents the Target element and targets

ThemedIcon Task Screen Gray

represents tasks

ThemedIcon UsingTask Screen Gray

represents the UsingTask element only

ThemedIcon Element Screen Gray

represents all other structure elements

To get a general idea about the structure of your build file, use the File Structure window. You can also double-click an element to navigate directly from the tree to its declaration in source code.

ReSharper by Language MSBuild File Structure

Use Navigate To features to jump to the declaration of a symbol or move through found usages.
ReSharper by Language MSBuild Navigate To

ReSharper can find usages of properties, item groups and targets. All found usages are listed in the Find Results window.

ReSharper by Language MSBuild Find Usages

Refactorings

You can easily rename an element and get its usages updated correspondingly. For more information about the refactoring, see Rename refactoring.

ReSharper by Language MSBuild Refactorings Rename 01

You can delete elements safely. Before removing an element ReSharper performs a check whether the element has usages or not. If there are usages, they will be listed so that you can make necessary changes or discard the refactoring. For more information about the refactoring, see Safe Delete refactoring.

Last modified: 23 October 2018

See Also