2014-04-17 15 views
9

Jakie jest praktyczne użycie atrybutu AssemblyTitle? MSDN twierdzi, że określa opis dla zespołu oraz że nazwa zespołu jest przyjazną nazwą, która może zawierać spacje.Atrybut "AssemblyTitle" w .NET Framework

Visual Studio prosi o nazwę zespołu w oknie właściwości projektu wraz z domyślną przestrzenią nazw. Istnieje atrybut AssemblyName, ale opisuje pełną tożsamość złożenia (tj. Kulturę itp.). Nie wiem, jak różni się AssemblyTitle od AssemblyProduct.

Użyłem IL Disassembler, aby zobaczyć, jak Microsoft używa AssemblyTitle. Odkryłem, że w mscorlib.dll, AssemblyTitle, AssemblyProduct i AssemblyDefaultAlias są ustawione na "mscorlib.dll".

Podsumowując, naprawdę chciałbym zobaczyć praktyczne przykłady użycia AssemblyTitle.

Odpowiedz

7

Twój produkt może składać się z kilku zestawów.

Wszystkie zestawy mają jedną nazwę produktu, a poszczególne zestawy będą miały własne tytuły.

AssemblyProduct = "MyProduct"

AssemblyTitle = "MyProduct.Utilities"

i innego zespołu

AssemblyTitle = "MyProduct.Security"

tytułowy zespół jest również we właściwościach badacz pliku itp File > Properties > Details tab

File Description = AssemblyTitle 
Product name = AssemblyProduct 
+0

A więc jeśli mam produkt single-montażowej należy po prostu pominąć lub dać dwa takie same wartości? – HelloWorld

+1

podanie wartości jest lepsze niż pomijanie. Jeśli pojedynczy zestaw jest produktem sam w sobie, może być taki sam. zazwyczaj nawet w przypadku produktów z pojedynczym montażem (np. nazwa produktu = "Johns Pizza") twój tytuł montażowy = "Johns Pizza Web App" .. i wreszcie możesz nazwać je tak samo dobrze. nic złego się nie stanie;) –

35

[AssemblyTitle] to całkiem spora sprawa, jest bezpośrednio widoczny po kliknięciu prawym przyciskiem myszy na zespole i użyciu Właściwości + Szczegóły.

Przykład, aby był bardziej widoczny. Zacznijmy od tego pliku AssemblyInfo.cs:

[assembly: AssemblyTitle("AssemblyTitle")] 
[assembly: AssemblyDescription("AssemblyDescription")] 
[assembly: AssemblyConfiguration("AssemblyConfiguration")] 
[assembly: AssemblyCompany("AssemblyCompany")] 
[assembly: AssemblyProduct("AssemblyProduct")] 
[assembly: AssemblyCopyright("AssemblyCopyright")] 
[assembly: AssemblyTrademark("AssemblyTrademark")] 
[assembly: AssemblyCulture("")] 
[assembly: Guid("7da36bdf-39fb-4a4d-b98c-ecefd99b155a")] 
[assembly: AssemblyVersion("1.2.3.4")] 
[assembly: AssemblyFileVersion("5.6.7.8")] 

I spójrz na właściwości pliku:

enter image description here

Niektóre adnotacje do tego:

  • Uwaga jak [AssemblyDescription] jest mylący, to tak naprawdę jest to tytuł, który widzisz w arkuszu właściwości.
  • Opis, konfiguracja i firma nie są wyświetlane. Prawdopodobnie chcesz połączyć nazwę firmy z widocznymi prawami autorskimi. Opis i firma są w rzeczywistości obecne w zasobach wersji niezarządzanej, ale system Windows ich nie wyświetla.
  • [AssemblyCulture] jest wyjątkowa, jest ona wykorzystywana przez zespoły satelitarnych dla lokalizacji
  • [Guid] jest wyjątkowy, to ustawia biblioteki typu GUID Jeśli utworzysz [ComVisible] montaż
  • [AssemblyVersion] jest nadzwyczajna specjalnego, naprawdę duża oferta w .NET Framework. To, że się nie wyświetla, jest głównym zawieszeniem. Możesz go zobaczyć w XP, a nie w późniejszych wersjach Windows. Ważne jest, aby wartość [AssemblyFileVersion] była taka sama.
  • Wyświetlana "Wersja produktu" jest taka sama jak "Wersja pliku". To też nie jest wspaniałe, chcesz dodać atrybut [AssemblyInformationalVersion], aby to naprawić.

To dziwaczne, grupa Windows i DevDiv nie zawsze dobrze ze sobą współpracowały.

+0

Czy myślisz to ma sens mieć AssemblyTitle tak samo jak nazwa zespołu w Properties-> Application-> Assembly name? – HelloWorld

+0

Tylko jeśli nie możesz wymyślić lepszego opisu. Z pewnością możesz. –

3

Nazwa AssemblyTitle pojawia się również jako nazwa aplikacji w menedżerze zadań (Windows 10), np. na karcie "Procesy" lub "Mniej szczegółów".

enter image description here

+0

Wygląda na to, że gdy 'AssemblyTitle' jest puste, pokazuje nazwę pliku wykonywalnego. A może to tylko dla procesów, które określa jako "tło". Nie do końca pewne. – jpmc26

Powiązane problemy