web-dev-qa-db-ja.com

.NET Coreで作業しているときにAssemblyInfoが必要ですか?

以前は、AssemblyInfo.csファイルは、Visual Studioによって自動作成され、AssemblyVersion、AssemblyNameなどのアセンブリ全体の属性が含まれます。

.NET CoreおよびASP.NET Coreでは、project.jsonは、その情報のほとんどを保持する責任があります。

質問は、アセンブリにその属性をマークする必要がもうあるのかということです。その属性でアセンブリをマークしない場合、どのようなトラップを取得できますか?

22
brutallord

project.jsonAssemblyInfoを置き換えました。

AssemblyVersionAttributeversionプロパティに置き換えられます

version
Type: String
The Semver version of the project, also used for the NuGet package.

AssemblyNameAttributenameプロパティになりました

name
Type: String
The name of the project, used for the Assembly name as well as the name of the package. The top level folder name is used if this property is not specified.

等々


Update:.NET Core Tools MSBuildの発表により、.csprojproject.jsonに置き換わりました。 AssemblyInfo.csファイルは戻りましたが、ほとんどの設定は.csprojに直接移動されました。関連するSOの質問を参照してください: dotnet core/csprojのAssemblyInfoと同等

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <Version>1.2.3.4</Version>
    <Authors>Author 1</Authors>
    <Company>Company XYZ</Company>
    <Product>Product 2</Product>
    <PackageId>MyApp</PackageId>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <FileVersion>3.0.0.0</FileVersion>
    <NeutralLanguage>en</NeutralLanguage>
    <Description>Description here</Description>
    <Copyright>Copyright</Copyright>
    <PackageLicenseUrl>License URL</PackageLicenseUrl>
    <PackageProjectUrl>Project URL</PackageProjectUrl>
    <PackageIconUrl>Icon URL</PackageIconUrl>
    <RepositoryUrl>Repo URL</RepositoryUrl>
    <RepositoryType>Repo type</RepositoryType>
    <PackageTags>Tags</PackageTags>
    <PackageReleaseNotes>Release</PackageReleaseNotes>
  </PropertyGroup>
24
Set

project.jsonAssemblyInfo.csを直接置き換えるものではないため、project.jsonで提供できない値を定義する必要がある場合があります。

Issue https://github.com/aspnet/dnx/issues/2715 からわかるように、最初にtitledescriptionなどのいくつかのパラメーターがあります。 、copyrightなど。生成されたnugetパッケージのフィールドに入力する場所。問題2715で、これらの値が「アセンブリに流れ込む」ことができるというアイデアが生まれました。したがって、これらのフィールドを2つの異なる場所で構成する必要はありません。したがって、これらのパラメーターより多くを構成したくない場合、AssemblyInfo.csは必要ありません。

[InternalsVisibleTo]のような他のフィールドは、project.jsonで設定できません。そのため、まだ定義する必要がある場合があります。

9
Ralf Bönning