2016-08-26 67 views
15

以前は、AssemblyVersion、AssemblyNameなどのアセンブリ全体の属性を含めるために、Visual StudioによってファイルがAssemblyInfo.csに自動作成されました。.NET Coreで作業中にAssemblyInfoが必要ですか?

.NETコアおよびASP.NETコアでは、project.jsonがその情報のほとんどを保持します。

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

+0

あなたはあなたが見逃している属性と恐れている属性を特定することはできますか? –

+0

実際には、AssemblyVersion'( 'version')、' AssemblyTitle'( 'title')、' AssemblyDescription'( 'copyright')という属性を冗長に探しています。 これらのアセンブリをUWPまたはクロスプラットフォームのソリューションで使用する場合、必要な属性のいくつかを考えるのは怖いです。一般に、私は 'project.json'だけを使いたいと思います。 – brutallord

答えて

16

project.jsonは、AssemblyInfoの代わりになりました。

AssemblyVersionAttribute

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

AssemblyNameAttrinbuteは今


Updateで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. 

とそうでversionプロパティに置き換えられ :.NETコアツールMSBuildの発表と同様に、.csprojproject.jsonに置き換えられ、AssemblyInfo.csファイルもありますが、ほとんどの設定は直接.csprojに移動されています。詳細については、関連のSOの質問を参照してください:Equivalent to AssemblyInfo in dotnet core/csproj

project.json
<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> 
7

AssemblyInfo.csの直接代わるものではありませんので、あなたがproject.jsonに提供することはできませんいくつかの値を定義したい場合に必要性が依然として存在します。あなたが見ることができるhttps://github.com/aspnet/dnx/issues/2715号から

、その初めにいくつかのパラメータ、生成されたnugetパッケージのフィールドを埋めるために取らなど titledescriptioncopyright、などです。問題2715によって、これらの価値が「議会に流れ込む」という考えが生まれました。したがって、これらのフィールドを2つの異なる場所に設定する必要はありません。したがって、これらのパラメータを超える設定をしたくない場合は、 AssemblyInfo.csは必要ありません。

[InternalsVisibleTo]などのフィールドは、project.jsonには設定できません。したがって、まだ定義する必要があるケースがあります。

関連する問題