Entwickler-Ecke

Sonstiges (.NET) - Assembly-Infos via Attribute ändern


Saiwaa - Mi 13.07.11 17:30
Titel: Assembly-Infos via Attribute ändern
Hallo zusammen,

ich habe eine Anfängerfrage, die sich mir im Rahmen meiner FIAE-Ausbildung und meiner Einarbeitung in Visual Studio 2010 (C#) stellt.
Es geht um das Ändern/Konfigurieren der Assembly-Informationen. In diversen Quellen (Bücher, Internet) ist Quelltext zu finden, der in etwa so ausschaut:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Beispiel-Titel")]
[assembly: AssemblyDescription("Bla blubb...")]
[assembly: AssemblyCompany("Company@2011")]
// und noch mehr Einträge...
// ... weiterer Quelltext...


Beim Kompilieren wird der Fehler ausgegeben, dass doppelte Einträge vorhanden sind ("Doppeltes Assembly ...-Attribut").
Das ist soweit nachvollziehbar, da ja automatisch eine AssemblyInfo.cs angelegt wird, die unter Properties erscheint und schon diese Infos enthält.
Aber irgendwie muss es doch möglich sein, diese Infos mit o.a. Code zu überschreiben, denn sonst ergibt es IMHO auch keinen Sinn, dass sowas in Lehrbüchern gelehrt wird.

Wenn ich in der AssemblyInfo.cs die entsprechenden Attribute auskommentiere/lösche, lässt sich zwar der Quelltext fehlerlos kompilieren, die Infos stehen jedoch nicht in der Datei drin.

Was muss ich tun, um die Attribute in der Datei zu überschreiben?


Vielen Dank für eure Hilfe jetzt schon an dieser Stelle :-)


Saiwaa

Moderiert von user profile iconKha: C#-Tags hinzugefügt


gfoidl - Mi 13.07.11 18:05

Hallo,

die Werte in der AssemblyInfo.cs anpassen.

Den Rest kannst du vergessen :-)

mfG Gü


Trashkid2000 - Mi 13.07.11 18:12

Hallo,
habe auch grad mal was ausprobiert:
Bei den Eigenschaften von "AssemblyInfo" einfach die Aktion beim Buildvorgang auf "Keine" stellen.
Oder diese gleich ganz löschen... Ist aber nicht die feine Art.
LG


Saiwaa - Do 14.07.11 09:25

Danke für die Antworten u. die Kennzeichnung des Quelltextes mit Tags durch den Mod.

Mir stellt sich die Frage, warum sowas in Lehrbüchern vorkommt ohne zu erwähnen, was rundherum noch zu beachten ist. :roll:
Ich werde bzgl. Attribute die Anpassung der Infos zukünftig in der AssemblyInfo.cs vornehmen.

Sollte doch noch jemand eine weitere Lösung parat haben --> her damit.
Ich lasse das Thema daher noch als "nicht beantwortet" deklariert.

Gruß Saiwaa :D


Kha - Do 14.07.11 10:35

Was genau ist jetzt noch die Frage? Die AssemblyInfo.cs ist auf jeden Fall die richtige Zieldatei für solche Änderungen, sie trägt ihren Namen nicht zum Spaß ;) .


Ralf Jansen - Do 14.07.11 11:16

Zitat:
Aber irgendwie muss es doch möglich sein, diese Infos mit o.a. Code zu überschreiben, denn sonst ergibt es IMHO auch keinen Sinn, dass sowas in Lehrbüchern gelehrt wird.


Was für ein Lehrbuch? Die Assembly.cs ist eine reine Visual Studio Konvention hätte also nur was in einem speziellen Visual Studio Buch zu suchen. Wo du die Assembly Attribute unterbringst ist in .Net dir überlassen. Mit ein paar Einschränkungen wie zum Beispiel das die nur einmal auftauchen dürfen oder das die nicht in einem Namespace definiert sein dürfen. Das sollte aber in einem .Net Lehrbuch stehen. Insofern ist das gezeigten Beispielfragment korrekt.


Saiwaa - Do 14.07.11 13:25

Es handelt sich um ein Lehrbuch für Visual C# 2010 und im Internet habe ich mehrfach auf Seiten zum Thema C# ähnliche Codefragmente gefunden.

Die Frage lautet wie folgt:
Wenn in einem Lehrbuch solche Codebeispiele zum Konfigurieren der Assembly-Infos vorgestellt werden ohne zu erwähnen, dass offensichtlich die AssemblyInfo.cs gelöscht resp. die entsprechenden Zeilen darin auskommentiert werden müssen, dann muss das doch irgendwie machbar sein und der Fehler aufgrund falscher Bedienung u./o. Unkenntnis meinerseits zu suchen sein.

Was mache ich falsch, wie geht´s richtig o. einfach nur als unwichtig vermerken und stets in der AssemblyInfo.cs zumfrickeln? 8)


Ralf Jansen - Do 14.07.11 17:21

In dem Fall würde ich sagen solltest du als Projektvorlage in Visual Studio für solche Beispiele immer 'Empty Project' (oder eben das deutsche Äquivalent davon) auswählen. Davon geht vermutlich dein Lehrbuch aus.


Trashkid2000 - Do 14.07.11 18:08

user profile iconSaiwaa hat folgendes geschrieben Zum zitierten Posting springen:
[...] einfach nur als unwichtig vermerken und stets in der AssemblyInfo.cs zumfrickeln?
Naja, Du musst ja nicht unbedingt direkt die werte in die AssemblyInfo.cs schreiben.
Es gibt auch unter Properties -> Anwendung -> Assemblyinformationen einen Dialog, um die Werte zu setzen (die aber natürlich dann auch nur in die AssemblyInfo geschrieben werden).