.NET Core の csproj 形式に追加されたものAdditions to the csproj format for .NET Core

ここでは、project.json から csproj および MSBuild への移行に伴ってプロジェクト ファイルに追加された変更について説明します。This document outlines the changes that were added to the project files as part of the move from project.json to csproj and MSBuild. 一般的なプロジェクト ファイルの構文とリファレンスの詳細については、MSBuild プロジェクト ファイルのドキュメントを参照してください。For more information about general project file syntax and reference, see the MSBuild project file documentation.

暗黙的なパッケージ参照Implicit package references

メタパッケージは、プロジェクト ファイルの <TargetFramework> または <TargetFrameworks> プロパティに指定されている対象フレームワークに基づいて暗黙的に参照されています。Metapackages are implicitly referenced based on the target framework(s) specified in the <TargetFramework> or <TargetFrameworks> property of your project file. <TargetFramework> を指定すると、順序に関係なく <TargetFrameworks> は無視されます。<TargetFrameworks> is ignored if <TargetFramework> is specified, independent of order.

 <PropertyGroup>
   <TargetFramework>netcoreapp2.1</TargetFramework>
 </PropertyGroup>
<PropertyGroup>
  <TargetFrameworks>netcoreapp2.1;net462</TargetFrameworks>
</PropertyGroup>

推奨事項Recommendations

Microsoft.NETCore.App または NetStandard.Library メタパッケージは暗黙的に参照されるので、ベスト プラクティスとして以下が推奨されます。Since Microsoft.NETCore.App or NetStandard.Library metapackages are implicitly referenced, the following are our recommended best practices:

  • .NET Core または .NET Standard を対象とするとき、プロジェクト ファイルの <PackageReference> アイテム経由で Microsoft.NETCore.App または NetStandard.Library メタパッケージを明示的に参照しないようにします。When targeting .NET Core or .NET Standard, never have an explicit reference to the Microsoft.NETCore.App or NetStandard.Library metapackages via a <PackageReference> item in your project file.
  • .NET Core を対象にするとき、特定バージョンのランタイムが必要な場合、メタパッケージを参照するのではなく、プロジェクト内で <RuntimeFrameworkVersion> プロパティを使用します (1.0.4 など)。If you need a specific version of the runtime when targeting .NET Core, you should use the <RuntimeFrameworkVersion> property in your project (for example, 1.0.4) instead of referencing the metapackage.
    • 自己完結型の展開を使用し、特定のパッチ バージョンの 1.0.0 LTS ランタイムが必要な場合などにこの問題が発生する可能性があります。This might happen if you are using self-contained deployments and you need a specific patch version of 1.0.0 LTS runtime, for example.
  • .NET Standard を対象にするとき、特定バージョンの NetStandard.Library メタパッケージが必要な場合、<NetStandardImplicitPackageVersion> プロパティを使用し、必要なバージョンを設定できます。If you need a specific version of the NetStandard.Library metapackage when targeting .NET Standard, you can use the <NetStandardImplicitPackageVersion> property and set the version you need.
  • .NET Framework プロジェクトでは、Microsoft.NETCore.App または NetStandard.Library メタパッケージに参照を明示的に追加したり、更新したりしないでください。Don't explicitly add or update references to either the Microsoft.NETCore.App or NetStandard.Library metapackage in .NET Framework projects. .NET Standard ベースの NuGet パッケージを使用するとき、何らかのバージョンの NetStandard.Library が必要であれば、NuGet はそのバージョンを自動的にインストールします。If any version of NetStandard.Library is needed when using a .NET Standard-based NuGet package, NuGet automatically installs that version.

.NET Core プロジェクトの既定のコンパイルの includeDefault compilation includes in .NET Core projects

最新バージョンの SDK の csproj 形式に移行すると共に、コンパイル項目と、SDK プロパティ ファイルに埋め込みリソースの既定の include と exclude を SDK プロパティ ファイルに移行しました。With the move to the csproj format in the latest SDK versions, we've moved the default includes and excludes for compile items and embedded resources to the SDK properties files. つまり、これらの項目をプロジェクト ファイルに指定する必要はなくなりました。This means that you no longer need to specify these items in your project file.

これを行う主な理由は、プロジェクト ファイルを見やすくするためです。The main reason for doing this is to reduce the clutter in your project file. SDK の既定値は、最も一般的な使用例に対応しているので、作成するプロジェクトごとに繰り返す必要はありません。The defaults that are present in the SDK should cover most common use cases, so there is no need to repeat them in every project that you create. その結果、プロジェクト ファイルが小さくなり、わかりやすく、編集が必要な場合に編集しやすくなります。This leads to smaller project files that are much easier to understand as well as edit by hand, if needed.

次の表は、SDK に含まれる、および除外される要素と glob の一覧です。The following table shows which element and which globs are both included and excluded in the SDK:

要素Element 含まれる globInclude glob 除外される globExclude glob glob の削除Remove glob
CompileCompile **/*.cs (または他の言語拡張機能)**/*.cs (or other language extensions) **/*.user; **/*.*proj; **/*.sln; **/*.vssscc**/*.user; **/*.*proj; **/*.sln; **/*.vssscc N/AN/A
EmbeddedResourceEmbeddedResource **/*.resx**/*.resx **/*.user; **/*.*proj; **/*.sln; **/*.vssscc**/*.user; **/*.*proj; **/*.sln; **/*.vssscc N/AN/A
なしNone **/* **/*.user; **/*.*proj; **/*.sln; **/*.vssscc**/*.user; **/*.*proj; **/*.sln; **/*.vssscc **/*.cs; **/*.resx**/*.cs; **/*.resx

注意

除外される glob では、./bin./obj フォルダーが常に除外されます。これらはそれぞれ MSBuild プロパティ $(BaseOutputPath)$(BaseIntermediateOutputPath) で表されます。Exclude glob always excludes the ./bin and ./obj folders, which are represented by the $(BaseOutputPath) and $(BaseIntermediateOutputPath) MSBuild properties, respectively. 全体として、すべての除外は $(DefaultItemExcludes) で表されます。As a whole, all excludes are represented by $(DefaultItemExcludes).

プロジェクトに glob があり、最新の SDK を使用してビルドしようとすると、次のエラーが発生します。If you have globs in your project and you try to build it using the newest SDK, you'll get the following error:

重複するコンパイル項目が含まれていました。Duplicate Compile items were included. .NET SDK には、既定でプロジェクト ディレクトリのコンパイル項目が含まれています。The .NET SDK includes Compile items from your project directory by default. これらの項目をプロジェクト ファイルから削除するか、プロジェクト ファイルに明示的に含める場合は 'EnableDefaultCompileItems' プロパティを 'false' に設定することができます。You can either remove these items from your project file, or set the 'EnableDefaultCompileItems' property to 'false' if you want to explicitly include them in your project file.

このエラーを回避するには、前の表にあるものと一致する明示的な Compile 項目を削除するか、次のように <EnableDefaultCompileItems> プロパティを false に設定します。In order to get around this error, you can either remove the explicit Compile items that match the ones listed on the previous table, or you can set the <EnableDefaultCompileItems> property to false, like this:

<PropertyGroup>
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>

このプロパティを false に設定すると、暗黙的に含める動作が無効になり、以前の SDK の動作に戻り、プロジェクトに既定の glob が指定されます。Setting this property to false will disable implicit inclusion, reverting to the behavior of previous SDKs where you had to specify the default globs in your project.

この変更で、他の include の主なしくみは変わりません。This change does not modify the main mechanics of other includes. ただし、たとえばアプリで発行する一部のファイルを指定する場合は、csproj で既知のしくみ (たとえば <Content> 要素) を使用することができます。However, if you wish to specify, for example, some files to get published with your app, you can still use the known mechanisms in csproj for that (for example, the <Content> element).

<EnableDefaultCompileItems>Compile glob のみを無効にし、*.cs 項目にも適用される暗黙的 None glob など、他の Glob には影響しません。<EnableDefaultCompileItems> only disables Compile globs but doesn't affect other globs, like the implicit None glob, which also applies to *.cs items. そのため、ソリューション エクスプローラーは *.cs 項目を None 項目として含まれた、プロジェクトの一部として引き続き表示します。Because of that, Solution Explorer will continue show *.cs items as part of the project, included as None items. 同様に、<EnableDefaultNoneItems> を利用して暗黙的 None glob を無効にできます。In a similar way, you can use <EnableDefaultNoneItems> to disable the implicit None glob.

暗黙的 glob をすべて無効にするには、<EnableDefaultItems> プロパティを false に設定します。次の例をご覧ください。To disable all implicit globs, you can set the <EnableDefaultItems> property to false as in the following example:

<PropertyGroup>
    <EnableDefaultItems>false</EnableDefaultItems>
</PropertyGroup>

MSBuild と同じようにプロジェクト全体を表示する方法How to see the whole project as MSBuild sees it

これらの csproj 変更でプロジェクト ファイルが大幅に簡素化されますが、SDK とそのターゲットが追加されたとき、MSBuild と同様にプロジェクト全体を表示すると便利なことがあります。While those csproj changes greatly simplify project files, you might want to see the fully expanded project as MSBuild sees it once the SDK and its targets are included. dotnet msbuild コマンドの /pp スイッチでプロジェクトを事前処理します。インポートされるファイル、そのソース、ビルドに対するその貢献が、実際にプロジェクトをビルドすることなく、表示されます。Preprocess the project with the /pp switch of the dotnet msbuild command, which shows which files are imported, their sources, and their contributions to the build without actually building the project:

dotnet msbuild -pp:fullproject.xml

プロジェクトにターゲット フレームワークが複数存在する場合、MSBuild プロパティとして指定し、1 つだけにコマンドの結果を集中させてください。If the project has multiple target frameworks, the results of the command should be focused on only one of them by specifying it as an MSBuild property:

dotnet msbuild -p:TargetFramework=netcoreapp2.0 -pp:fullproject.xml

追加Additions

SDK 属性Sdk attribute

.csproj ファイルのルート <Project> 要素には、Sdk という新しい属性があります。The root <Project> element of the .csproj file has a new attribute called Sdk. Sdk は、プロジェクトで使用される SDK を指定します。Sdk specifies which SDK will be used by the project. レイヤー化のドキュメントで説明されているように、SDK は、.NET Core コードをビルドできる MSBuild タスクおよびターゲットのセットです。The SDK, as the layering document describes, is a set of MSBuild tasks and targets that can build .NET Core code. .NET Core ツールには主に 3 つの SDK が付属しています。We ship three main SDKs with the .NET Core tools:

  1. ID が Microsoft.NET.Sdk の .NET Core SDKThe .NET Core SDK with the ID of Microsoft.NET.Sdk
  2. ID が Microsoft.NET.Sdk.Web の .NET Core Web SDKThe .NET Core web SDK with the ID of Microsoft.NET.Sdk.Web
  3. ID が Microsoft.NET.Sdk.Razor の .NET Core Razor クラス ライブラリ SDKThe .NET Core Razor Class Library SDK with the ID of Microsoft.NET.Sdk.Razor

.NET Core ツールを使用し、コードをビルドするには、Sdk 属性を <Project> 要素の ID のいずれかに設定する必要があります。You need to have the Sdk attribute set to one of those IDs on the <Project> element in order to use the .NET Core tools and build your code.

PackageReferencePackageReference

<PackageReference> 項目要素では、プロジェクトでの NuGet の依存関係を指定します。A <PackageReference> item element specifies a NuGet dependency in the project. Include 属性は、パッケージ ID を指定します。The Include attribute specifies the package ID.

<PackageReference Include="<package-id>" Version="" PrivateAssets="" IncludeAssets="" ExcludeAssets="" />

VersionVersion

必須の Version 属性では、復元するパッケージのバージョンを指定します。The required Version attribute specifies the version of the package to restore. この属性は、NuGet バージョン管理スキームの規則に従います。The attribute respects the rules of the NuGet versioning scheme. 既定の動作では、バージョンを正確に一致させます。The default behavior is an exact version match. たとえば、Version="1.2.3" を指定すると、パッケージのバージョンが正確に 1.2.3 であることを表す NuGet 表記の [1.2.3] と同じになります。For example, specifying Version="1.2.3" is equivalent to NuGet notation [1.2.3] for the exact 1.2.3 version of the package.

IncludeAssets、ExcludeAssets、PrivateAssetsIncludeAssets, ExcludeAssets and PrivateAssets

IncludeAssets 属性は、<PackageReference> で指定されているパッケージに属するアセットのうち、使う必要があるものを指定します。IncludeAssets attribute specifies which assets belonging to the package specified by <PackageReference> should be consumed. 既定では、パッケージのすべてのアセットが含まれます。By default, all package assets are included.

ExcludeAssets 属性は、<PackageReference> で指定されているパッケージに属するアセットのうち、使う必要がないものを指定します。ExcludeAssets attribute specifies which assets belonging to the package specified by <PackageReference> should not be consumed.

PrivateAssets 属性は、<PackageReference> で指定されているパッケージに属するアセットで、使う必要はあるが、次のプロジェクトに渡してはならないものを指定します。PrivateAssets attribute specifies which assets belonging to the package specified by <PackageReference> should be consumed but not flow to the next project. この属性が存在しない場合、AnalyzersBuildContentFiles アセットは既定でプライベートになります。The Analyzers, Build and ContentFiles assets are private by default when this attribute is not present.

注意

PrivateAssetsproject.json/xproj SuppressParent 要素と同等です。PrivateAssets is equivalent to the project.json/xproj SuppressParent element.

これらの属性には以下の項目を 1 つ以上含めることができ、複数ある場合はセミコロン ; 文字で区切ります。These attributes can contain one or more of the following items, separated by the semicolon ; character if more than one is listed:

  • Compile - コンパイルで使用できる lib フォルダーの内容です。Compile – the contents of the lib folder are available to compile against.
  • Runtime - 配布する runtime フォルダーの内容です。Runtime – the contents of the runtime folder are distributed.
  • ContentFiles - 使用する contentfiles フォルダーの内容です。ContentFiles – the contents of the contentfiles folder are used.
  • Build - 使用する build フォルダーのプロパティ/ターゲットです。Build – the props/targets in the build folder are used.
  • Native - ランタイムの output フォルダーにコピーするネイティブ アセットの内容です。Native – the contents from native assets are copied to the output folder for runtime.
  • Analyzers - アナライザーが使用されます。Analyzers – the analyzers are used.

代わりに、次の値を属性に含めることもできます。Alternatively, the attribute can contain:

  • None - いずれのアセットも使用されません。None – none of the assets are used.
  • All - すべてのアセットが使用されます。All – all assets are used.

DotNetCliToolReferenceDotNetCliToolReference

<DotNetCliToolReference> 項目要素は、プロジェクトのコンテキストでユーザーが復元を望む CLI ツールを指定します。A <DotNetCliToolReference> item element specifies the CLI tool that the user wants to restore in the context of the project. project.jsontools ノードに代わるものです。It's a replacement for the tools node in project.json.

<DotNetCliToolReference Include="<package-id>" Version="" />

VersionVersion

Version は、復元するパッケージのバージョンを指定します。Version specifies the version of the package to restore. この属性は、NuGet バージョン管理スキームの規則に従います。The attribute respects the rules of the NuGet versioning scheme. 既定の動作では、バージョンを正確に一致させます。The default behavior is an exact version match. たとえば、Version="1.2.3" を指定すると、パッケージのバージョンが正確に 1.2.3 であることを表す NuGet 表記の [1.2.3] と同じになります。For example, specifying Version="1.2.3" is equivalent to NuGet notation [1.2.3] for the exact 1.2.3 version of the package.

RuntimeIdentifiersRuntimeIdentifiers

<RuntimeIdentifiers> プロパティ要素では、プロジェクトのランタイム識別子 (RID) のセミコロン区切りリストを指定できます。The <RuntimeIdentifiers> property element lets you specify a semicolon-delimited list of Runtime Identifiers (RIDs) for the project. RID により、自己完結型の展開を発行できます。RIDs enable publishing self-contained deployments.

<RuntimeIdentifiers>win10-x64;osx.10.11-x64;ubuntu.16.04-x64</RuntimeIdentifiers>

RuntimeIdentifierRuntimeIdentifier

<RuntimeIdentifier> プロパティ要素では、プロジェクトのランタイム識別子 (RID) を 1 つだけ指定できます。The <RuntimeIdentifier> property element allows you to specify only one Runtime Identifier (RID) for the project. RID により、自己完結型の展開を発行できます。The RID enables publishing a self-contained deployment.

<RuntimeIdentifier>ubuntu.16.04-x64</RuntimeIdentifier>

複数のランタイムに対して発行する必要がある場合、代わりに <RuntimeIdentifiers> (複数) を使用します。Use <RuntimeIdentifiers> (plural) instead if you need to publish for multiple runtimes. <RuntimeIdentifier> では、必要なランタイムが 1 つだけのとき、ビルドが速くなります。<RuntimeIdentifier> can provide faster builds when only a single runtime is required.

PackageTargetFallbackPackageTargetFallback

<PackageTargetFallback> プロパティ要素では、パッケージの復元時に使用する、互換性のある一連のターゲットを指定できます。The <PackageTargetFallback> property element allows you to specify a set of compatible targets to be used when restoring packages. dotnet TxM (Target x Moniker) を使用するパッケージに、dotnet TxM を宣言しないパッケージで動作することを許可するように設計されています。It's designed to allow packages that use the dotnet TxM (Target x Moniker) to operate with packages that don't declare a dotnet TxM. プロジェクトで dotnet TxM を使用せず、依存するすべてのパッケージに dotnet TxM を与える必要がある場合、非 dotnet プラットフォームを dotnet 対応にするためにプロジェクトに <PackageTargetFallback> を追加します。If your project uses the dotnet TxM, then all the packages it depends on must also have a dotnet TxM, unless you add the <PackageTargetFallback> to your project in order to allow non-dotnet platforms to be compatible with dotnet.

次の例では、プロジェクトのすべてのターゲットにフォールバックを提供しています。The following example provides the fallbacks for all targets in your project:

<PackageTargetFallback>
    $(PackageTargetFallback);portable-net45+win8+wpa81+wp8
</PackageTargetFallback >

次の例では、netcoreapp2.1 ターゲットにのみフォールバックを指定しています。The following example specifies the fallbacks only for the netcoreapp2.1 target:

<PackageTargetFallback Condition="'$(TargetFramework)'=='netcoreapp2.1'">
    $(PackageTargetFallback);portable-net45+win8+wpa81+wp8
</PackageTargetFallback >

NuGet メタデータ プロパティNuGet metadata properties

MSBuild への移行に伴い、project.json ファイルから csproj ファイルに NuGet パッケージをパックするときに使用される入力メタデータを移動しました。With the move to MSBuild, we have moved the input metadata that is used when packing a NuGet package from project.json to .csproj files. 入力は MSBuild プロパティなので、<PropertyGroup> グループ内で行う必要があります。The inputs are MSBuild properties so they have to go within a <PropertyGroup> group. 次に示すのは、dotnet pack コマンドまたは SDK の一部である Pack MSBuild ターゲットを使用するときに、パッキング プロセスへの入力として使用されるプロパティの一覧です。The following is the list of properties that are used as inputs to the packing process when using the dotnet pack command or the Pack MSBuild target that is part of the SDK.

IsPackableIsPackable

プロジェクトをパックできるかどうかを示すブール値。A Boolean value that specifies whether the project can be packed. 既定値は true です。The default value is true.

PackageVersionPackageVersion

結果のパッケージのバージョンを指定します。Specifies the version that the resulting package will have. すべてのフォームの NuGet バージョン文字列を受け入れます。Accepts all forms of NuGet version string. 既定値は $(Version) です。つまり、プロジェクトのプロパティ Version の値です。Default is the value of $(Version), that is, of the property Version in the project.

PackageIdPackageId

結果のパッケージの名前を指定します。Specifies the name for the resulting package. 指定しない場合、pack 操作の既定では、AssemblyName またはディレクトリ名をパッケージ名として使用します。If not specified, the pack operation will default to using the AssemblyName or directory name as the name of the package.

TitleTitle

人が読みやすいパッケージのタイトル。通常、nuget.org と、Visual Studio のパッケージ マネージャーの UI 画面で使用されます。A human-friendly title of the package, typically used in UI displays as on nuget.org and the Package Manager in Visual Studio. 指定しない場合、パッケージ ID が代わりに使用されます。If not specified, the package ID is used instead.

AuthorsAuthors

nuget.org のプロファイル名と一致するパッケージ作成者をセミコロンで区切った一覧。これらは nuget.org の NuGet ギャラリーに表示され、同じ作成者によるパッケージの相互参照に使用されます。A semicolon-separated list of packages authors, matching the profile names on nuget.org. These are displayed in the NuGet Gallery on nuget.org and are used to cross-reference packages by the same authors.

PackageDescriptionPackageDescription

UI 画面用のパッケージの長い説明。A long description of the package for UI display.

説明Description

アセンブリの長い説明。A long description for the assembly. PackageDescription が指定されていない場合、このプロパティはパッケージの説明としても使用されます。If PackageDescription is not specified then this property is also used as the description of the package.

パッケージの著作権の詳細。Copyright details for the package.

PackageRequireLicenseAcceptancePackageRequireLicenseAcceptance

クライアントがユーザーに対して、パッケージのインストール前にパッケージ ライセンスに同意することを必須にするかどうかを示すブール値。A Boolean value that specifies whether the client must prompt the consumer to accept the package license before installing the package. 既定値は、false です。The default is false.

PackageLicenseExpressionPackageLicenseExpression

SPDX ライセンス識別子、または式です。An SPDX license identifier or expression. たとえば、Apache-2.0 のようにします。For example, Apache-2.0.

SPDX ライセンス識別子の完全な一覧はこちらをご覧ください。Here is the complete list of SPDX license identifiers. ライセンス タイプ式を使用する場合、NuGet.org では OSI または FSF で承認されたライセンスのみが受け付けられます。NuGet.org accepts only OSI or FSF approved licenses when using license type expression.

ライセンス式の正確な構文については、ABNF をご覧ください。The exact syntax of the license expressions is described below in ABNF.

license-id            = <short form license identifier from https://spdx.org/spdx-specification-21-web-version#h.luq9dgcle9mo>

license-exception-id  = <short form license exception identifier from https://spdx.org/spdx-specification-21-web-version#h.ruv3yl8g6czd>

simple-expression = license-id / license-id”+”

compound-expression =  1*1(simple-expression /
                simple-expression "WITH" license-exception-id /
                compound-expression "AND" compound-expression /
                compound-expression "OR" compound-expression ) /
                "(" compound-expression ")" )

license-expression =  1*1(simple-expression / compound-expression / UNLICENSED)

注意

一度に指定できるのは、PackageLicenseExpressionPackageLicenseFilePackageLicenseUrl のどれか 1 つだけです。Only one of PackageLicenseExpression, PackageLicenseFile and PackageLicenseUrl can be specified at a time.

PackageLicenseFilePackageLicenseFile

SPDX 識別子が割り当てられていないライセンス、またはカスタム ライセンスを使用している場合、パッケージ内のライセンス ファイルへのパス (それ以外の場合は、PackageLicenseExpression が優先されます)Path to a license file within the package if you are using a license that hasn’t been assigned an SPDX identifier, or it is a custom license (Otherwise PackageLicenseExpression is prefered)

PackageLicenseUrl を置き換えるもので、PackageLicenseExpression と組み合わせることはできず、Visual Studio 15.9.4、.NET SDK 2.1.502 または 2.2.101 以降が必要です。Replaces PackageLicenseUrl, can't be combined with PackageLicenseExpression and requires Visual Studio 15.9.4, .NET SDK 2.1.502 or 2.2.101, or newer.

プロジェクトに明示的に追加することによって、ライセンス ファイルをパックする必要があります。使用例を次に示します。You will need to ensure the license file is packed by adding it explicitly to the project, example usage:

<PropertyGroup>
  <PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
</PropertyGroup>
<ItemGroup>
  <None Include="licenses\LICENSE.txt" Pack="true" PackagePath="$(PackageLicenseFile)"/>
</ItemGroup>

PackageLicenseUrlPackageLicenseUrl

パッケージに適用されるライセンスの URL。An URL to the license that is applicable to the package. ("Visual Studio 15.9.4、.NET SDK 2.1.502 および 2.2.101 以降では非推奨")(deprecated since Visual Studio 15.9.4, .NET SDK 2.1.502 and 2.2.101)

PackageIconUrlPackageIconUrl

UI 画面のパッケージのアイコンとして使用する背景が透明な 64x64 の画像の URL。A URL for a 64x64 image with transparent background to use as the icon for the package in UI display.

PackageReleaseNotesPackageReleaseNotes

パッケージのリリース ノート。Release notes for the package.

PackageTagsPackageTags

パッケージを指定するタグのセミコロン区切りの一覧。A semicolon-delimited list of tags that designates the package.

PackageOutputPathPackageOutputPath

パックされたパッケージをドロップする出力パスを指定します。Determines the output path in which the packed package will be dropped. 既定値は $(OutputPath) です。Default is $(OutputPath).

IncludeSymbolsIncludeSymbols

このブール値は、プロジェクトをパックするときに、パッケージが追加のシンボル パッケージを作成するかどうかを指定します。This Boolean value indicates whether the package should create an additional symbols package when the project is packed. このパッケージの拡張子は .symbols.nupkg になります。DLL や他の出力ファイルと共に PDF ファイルがコピーされます。This package will have a .symbols.nupkg extension and will copy the PDB files along with the DLL and other output files.

IncludeSourceIncludeSource

このブール値は、パック プロセスでソース パッケージを作成するかどうかを示します。This Boolean value indicates whether the pack process should create a source package. ソース パッケージには、ライブラリのソース コードと PDB ファイルが含まれます。The source package contains the library's source code as well as PDB files. ソース ファイルは、結果のパッケージ ファイルの src/ProjectName ディレクトリに置かれます。Source files are put under the src/ProjectName directory in the resulting package file.

IsToolIsTool

すべての出力ファイルを lib フォルダーではなく tools フォルダーにコピーするかどうかを指定します。Specifies whether all output files are copied to the tools folder instead of the lib folder. .csproj ファイルに PackageType を設定することで指定される DotNetCliTool とは異なります。Note that this is different from a DotNetCliTool which is specified by setting the PackageType in the .csproj file.

RepositoryUrlRepositoryUrl

パッケージのソース コードがある、またはビルド元のリポジトリの URL を指定します。Specifies the URL for the repository where the source code for the package resides and/or from which it's being built.

RepositoryTypeRepositoryType

リポジトリの種類を指定します。Specifies the type of the repository. 既定値は "git" です。Default is "git".

NoPackageAnalysisNoPackageAnalysis

パッケージのビルド後に、パックでパッケージの分析を実行しないことを指定します。Specifies that pack should not run package analysis after building the package.

MinClientVersionMinClientVersion

nuget.exe および Visual Studio パッケージ マネージャーで強制する、このパッケージをインストールできる NuGet クライアントの最小バージョンを指定します。Specifies the minimum version of the NuGet client that can install this package, enforced by nuget.exe and the Visual Studio Package Manager.

IncludeBuildOutputIncludeBuildOutput

このブール値は、ビルド出力アセンブリを .nupkg ファイルにパックするかどうかを指定します。This Boolean values specifies whether the build output assemblies should be packed into the .nupkg file or not.

IncludeContentInPackIncludeContentInPack

このブール値は、種類が Content の項目を結果のパッケージに自動的に含めるかどうかを指定します。This Boolean value specifies whether any items that have a type of Content will be included in the resulting package automatically. 既定値は、true です。The default is true.

BuildOutputTargetFolderBuildOutputTargetFolder

出力アセンブリを配置するフォルダーを指定します。Specifies the folder where to place the output assemblies. 出力アセンブリ (および他の出力ファイル) は、各フレームワーク フォルダーにコピーされます。The output assemblies (and other output files) are copied into their respective framework folders.

ContentTargetFoldersContentTargetFolders

このプロパティには、PackagePath が指定されていない場合に、すべてのコンテンツ ファイルを配置する既定の場所を指定します。This property specifies the default location of where all the content files should go if PackagePath is not specified for them. 既定値は "content;contentFiles" です。The default value is "content;contentFiles".

NuspecFileNuspecFile

パックに使用する .nuspec ファイルの相対パスまたは絶対パス。Relative or absolute path to the .nuspec file being used for packing.

注意

.nuspec ファイルを指定すると、情報のパッケージにのみ使用され、プロジェクト内の情報は使用されません。If the .nuspec file is specified, it's used exclusively for packaging information and any information in the projects is not used.

NuspecBasePathNuspecBasePath

.nuspec ファイルのベース パス。Base path for the .nuspec file.

NuspecPropertiesNuspecProperties

キー=値ペアのセミコロン区切りの一覧。Semicolon separated list of key=value pairs.

AssemblyInfo プロパティAssemblyInfo properties

通常、AssemblyInfo ファイル内に存在していたアセンブリ属性は、プロパティから自動的に生成されるようになりました。Assembly attributes that were typically present in an AssemblyInfo file are now automatically generated from properties.

属性ごとのプロパティProperties per attribute

次の表に示すように、各属性にはコンテンツを制御するプロパティと生成を無効にするプロパティがあります。Each attribute has a property that control its content and another to disable its generation as shown in the following table:

属性Attribute プロパティProperty 無効にするプロパティProperty to disable
AssemblyCompanyAttribute Company GenerateAssemblyCompanyAttribute
AssemblyConfigurationAttribute Configuration GenerateAssemblyConfigurationAttribute
AssemblyCopyrightAttribute Copyright GenerateAssemblyCopyrightAttribute
AssemblyDescriptionAttribute Description GenerateAssemblyDescriptionAttribute
AssemblyFileVersionAttribute FileVersion GenerateAssemblyFileVersionAttribute
AssemblyInformationalVersionAttribute InformationalVersion GenerateAssemblyInformationalVersionAttribute
AssemblyProductAttribute Product GenerateAssemblyProductAttribute
AssemblyTitleAttribute AssemblyTitle GenerateAssemblyTitleAttribute
AssemblyVersionAttribute AssemblyVersion GenerateAssemblyVersionAttribute
NeutralResourcesLanguageAttribute NeutralLanguage GenerateNeutralResourcesLanguageAttribute

メモ:Notes:

  • AssemblyVersionFileVersion の既定値は、サフィックスなしで $(Version) の値を受け取ることです。AssemblyVersion and FileVersion default is to take the value of $(Version) without suffix. たとえば、$(Version)1.2.3-beta.4 の場合、値は 1.2.3 です。For example, if $(Version) is 1.2.3-beta.4, then the value would be 1.2.3.
  • InformationalVersion の既定値は、$(Version) の値です。InformationalVersion defaults to the value of $(Version).
  • プロパティが存在する場合、InformationalVersion の末尾には $(SourceRevisionId) が付加されます。InformationalVersion has $(SourceRevisionId) appended if the property is present. IncludeSourceRevisionInInformationalVersion を使用して無効にすることができます。It can be disabled using IncludeSourceRevisionInInformationalVersion.
  • NuGet メタデータには、Copyright および Description プロパティも使用されます。Copyright and Description properties are also used for NuGet metadata.
  • Configuration はすべてのビルド プロセスで共有され、設定には dotnet コマンドの--configuration パラメーターを使用します。Configuration is shared with all the build process and set via the --configuration parameter of dotnet commands.

GenerateAssemblyInfoGenerateAssemblyInfo

すべての AssemblyInfo 生成を有効または無効にするブール値。A Boolean that enable or disable all the AssemblyInfo generation. 既定値は true です。The default value is true.

GeneratedAssemblyInfoFileGeneratedAssemblyInfoFile

生成されたアセンブリ情報ファイルのパス。The path of the generated assembly info file. 既定値は $(IntermediateOutputPath) (obj) ディレクトリ内のファイルです。Default to a file in the $(IntermediateOutputPath) (obj) directory.