C# – Doppeltes „AssemblyVersion“-Attribut

C# – Doppeltes „AssemblyVersion“-Attribut

Problem

Sie versuchen, das AssemblyVersion-Attribut wie folgt zu Ihrem Projekt hinzuzufügen:

using System.Reflection;

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Code language: C# (cs)

Und Sie erhalten die folgenden Compiler-Fehler:

Aber Sie sehen diese Attribute nirgendwo sonst in Ihrem Projekt.

Lösung

Das Problem ist, dass Visual Studio die Assemblyinformationen standardmäßig automatisch generiert.

Um dies zu deaktivieren, fügen Sie Folgendes in Ihre .csproj-Datei ein:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
</Project>

Code language: HTML, XML (xml)

Wo sind die automatisch generierten Montageinformationen?

Meine Assembly heißt DupeAssemblyVersion und ich strebe .NET Core 3.1 an. Die automatisch generierte Assembly-Infodatei befindet sich also hier:\obj\Debug\netcoreapp3.1\DupeAssemblyVersion.AssemblyInfo.cs.

So sieht diese Datei aus:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Reflection;

[assembly: System.Reflection.AssemblyCompanyAttribute("DupeAssemblyVersion")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("DupeAssemblyVersion")]
[assembly: System.Reflection.AssemblyTitleAttribute("DupeAssemblyVersion")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

// Generated by the MSBuild WriteCodeFragment class.
Code language: C# (cs)