Я использую общие атрибуты сборки, а также настраиваемые атрибуты сборки для некоторых целей отслеживания (например, уникальный идентификатор продукта / сборки для проверки обновления версии).
Я написал небольшое приложение, чтобы показать мне некоторые атрибуты сборки для. NET сборок в целях отладки.
string filepath = openFileDialog1.FileName;
Assembly assembly = Assembly.LoadFrom(filepath);
AssemblyPathLabel.Text = filepath;
string assemblyGuid = string.Empty;
try { assemblyGuid = ((GuidAttribute)assembly.GetCustomAttribute(typeof(GuidAttribute))).Value; }
catch { }
string assemblyTitle = string.Empty;
try { assemblyTitle = ((AssemblyTitleAttribute)assembly.GetCustomAttribute(typeof(AssemblyTitleAttribute))).Title; }
catch { }
string productGuid = string.Empty;
try { productGuid = ((ProductGuidAttribute)assembly.GetCustomAttribute(typeof(ProductGuidAttribute))).ProductGuid.ToString(@"D", CultureInfo.InvariantCulture); }
catch { }
string productName = string.Empty;
try { productName = ((AssemblyProductAttribute)assembly.GetCustomAttribute(typeof(AssemblyProductAttribute))).Product; }
catch { }
AssemblyLabel.Text = $"{assemblyGuid} ({assemblyTitle})";
ProductLabel.Text = $"{productGuid} ({productName})";
Для. NET Framework Framework (exe и dll) я получаю правильные атрибуты сборки.
Для a. NET Core 2.1 ASP. NET сборка (* .dll; не * .Views.dll), я ничего не нашел. Файл csproj
выглядит следующим образом:
<PropertyGroup>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<ProjectGuid>{deadbeef-dead-beef-c0de-deadbeefc0de}</ProjectGuid>
<Product>Product Title</Product>
<AssemblyTitle>Assemlby Title</AssemblyTitle>
</PropertyGroup>
<ItemGroup>
<AssemblyAttribute Include="Stackoverflow.ProductGuidAttribute">
<_Parameter1>{deadbeef-c0de-dead-beef-c0dedeadbeef}</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
Я ожидаю, что атрибуты сборки будут записаны в сборку ASP. NET (* .dll; не * .Views.dll). ), и может быть получен как все другие сборки. NET.
Как правильно хранить атрибуты сборки в ASP. NET?