Skip to content
Dave Sexton edited this page May 24, 2016 · 2 revisions

MSBuild Items

@(Deploy)

Provides additional items for local deployment.

  • Project output and <Content /> items are automatically included for deployment, so there's no need to add them to @(Deploy).
  • <DeployTarget /> metadata is optional. The default value is the root deployment directory and the original filename.
  • <DeployTarget /> metadata may be specified relative to the root deployment directory.

Example:

<Deploy Include="$(BuildDir)Extras\License.txt">
    <DeployTarget>Extras\License.txt</DeployTarget>
</Deploy>
@(NuGetPackage)

Additional files to be embedded in the NuGet package.

  • Include path must be specified relative to the project directory.
  • <PackageTarget /> metadata is optional. The default value is lib.
  • When <PackageTarget /> is lib, assemblies are automatically placed into an appropriate Framework subfolder based on the project's target framework. Portable libraries are also supported.
  • <PackageTarget /> metadata must be specified relative to the NuGet package's root.
  • <Exclude /> metadata is optional.

Example:

<NuGetPackage Include="$(BuildDir)tools\*.ps1">
    <PackageTarget>tools</PackageTarget>
    <Exclude>$(BuildDir)tools\not_for_nuget.ps1</Exclude>
</NuGetPackage>
@(NuGetDependency)

Dependencies to be embedded in the NuGet package.

  • <Version /> metadata is required.

Example:

<NuGetDependency Include="Rx-Main">
    <Version>2.1.30214.0</Version>
</NuGetDependency>
@(NuGetFlavor)

Project references whos output is to be embedded in the current project's NuGet package as additional target framework flavors. Note that including a project in @(NuGetFlavor) may cause the build order to change, regardless of the build order configuration in Visual Studio.

  • Projects that are referenced directly via @(ProjectReference) items can not be included as @(NuGetFlavor) items.
  • Referenced assemblies, contract assemblies, documentation files and symbols are also included (subject to the states of the various Package* properties.

Example:

<NuGetFlavor Include="..\other\other.csproj" />
@(DocumentationContent)

Files to be included in the output of the BuildDocumentation target.

  • <ExcludeFromToc /> metadata is optional.

Example:

<DocumentationContent Include="$(BuildDir)Extras\License.txt">
    <ExcludeFromToc>False</ExcludeFromToc>
</DocumentationContent>
@(DocumentationImage)

Images to be included in the output of the BuildDocumentation target.

  • <ImageId /> metadata is optional. The default value is the name of the file without its extension.
  • <AlternateText /> metadata is optional. The default value is empty.

Example:

<DocumentationImage Include="Images\Example.png">
    <ImageId>Example1</ImageId>
    <AlternateText>Example #1</AlternateText>
</DocumentationImage>
@(DocumentationNamespace)

Reference documentation for individual namespaces.

  • <Summary /> metadata is optional. The default value is empty, which causes the namespace to be excluded.

Example:

<DocumentationNamespace Include="MyApi.MyNamespace">
    <Summary>Contains my API's types.</Summary>
</DocumentationNamespace>
@(DocumentationSource)

Additional managed assemblies and documentation files to be included in the reference documentation.

  • Project output is included by default, so there's no need to add it yourself.
  • Project references are included by default, so there's no need to add them yourself.

Example:

<DocumentationSource Include="DocSources\Another.dll" />
@(DocumentationReference)

Additional managed assembly references.

  • Assembly references are included by default, so there's no need to add them yourself.

Example:

<DocumentationReference Include="Refs\Dependency.dll" />
@(DocumentationFrameworkReference)

Additional named references, typically found in the GAC.

  • Framework references are included by default, so there's no need to add them yourself.

Example:

<DocumentationFrameworkReference Include="OtherSoft.GAC.Utils, Version=1.0.0.0" />