以前は、AssemblyInfo.cs
ファイルは、Visual Studioによって自動作成され、AssemblyVersion、AssemblyNameなどのアセンブリ全体の属性が含まれます。
.NET CoreおよびASP.NET Coreでは、project.json
は、その情報のほとんどを保持する責任があります。
質問は、アセンブリにその属性をマークする必要がもうあるのかということです。その属性でアセンブリをマークしない場合、どのようなトラップを取得できますか?
project.json はAssemblyInfo
を置き換えました。
AssemblyVersionAttribute
はversion
プロパティに置き換えられます
version
Type: String
The Semver version of the project, also used for the NuGet package.
AssemblyNameAttribute
がname
プロパティになりました
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の発表により、.csproj
がproject.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>
project.json
はAssemblyInfo.cs
を直接置き換えるものではないため、project.json
で提供できない値を定義する必要がある場合があります。
Issue https://github.com/aspnet/dnx/issues/2715 からわかるように、最初にtitle
、description
などのいくつかのパラメーターがあります。 、copyright
など。生成されたnugetパッケージのフィールドに入力する場所。問題2715で、これらの値が「アセンブリに流れ込む」ことができるというアイデアが生まれました。したがって、これらのフィールドを2つの異なる場所で構成する必要はありません。したがって、これらのパラメーターより多くを構成したくない場合、AssemblyInfo.cs
は必要ありません。
[InternalsVisibleTo]
のような他のフィールドは、project.json
で設定できません。そのため、まだ定義する必要がある場合があります。