asp.net-core.net-corecsprojassemblyinfo

Do I need AssemblyInfo while working with .NET Core?


Previously, AssemblyInfo.cs file was autocreated by Visual Studio to contain assembly-wide attributes, like AssemblyVersion, AssemblyName and so on.

In .NET Core and ASP.NET Core, project.json is responsible for holding most of that information.

So the question is: do I need to mark my assemblies with that attributes anymore? What traps can I get in if I will not mark assembly with that attributes?


Solution

  • project.json has replaced the AssemblyInfo.

    AssemblyVersionAttribute is replaced by version property

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

    AssemblyNameAttribute is now the name property

    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.
    

    and so on


    Update: With the announcement of .NET Core Tools MSBuild, the .csproj has replaced the project.json. The AssemblyInfo.cs file is back, but most of the settings have been moved directly to .csproj. See related SO question for more details: Equivalent to AssemblyInfo in dotnet core/csproj :

    <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>