Генерировать идентификатор Guid при сборке проекта -.net core

#c# #iis #.net-core

#c# #iis #.net-core

Вопрос:

Я использую точку. сетевое ядро 5. У меня есть сервис, который должен генерировать уникальный идентификатор Guid каждый раз, когда я его создаю. До сих пор я использовал для этого файл startup.cs, но потом я заметил, что он недостаточно хорош.

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, ILogger<Startup> logger)
{
...
   KeyGenerator.GenerateNewGuidKeys();
   engine.Startup(KeyGenerator.BusinessKey);
...
}
 

Причина в том, что что-то вроде IISRESET также запускает его, и мне нужно генерировать ключ только при сборке проекта.

Мне было интересно, как я могу добиться чего-то подобного?

Комментарии:

1. сделайте это в program.cs

2. program.cs не доступен для чего-то вроде IISRESET?

3. о, я пропустил IISRESET. IISRESET — перезапускает iis, поэтому все ваши сайты перезапускаются, а после перезапуска iis запускает ваши сайты, поэтому на самом деле не имеет значения, где вы создаете новый идентификатор guid, он будет вызываться при каждом запуске приложения

Ответ №1:

  1. Сгенерируйте идентификатор GUID перед сборкой в качестве предварительного шага, например, используя guidgen.exe , вывод в файл
  2. Включить файл в сборку в качестве ресурса
  3. Считывать идентификатор GUID из ресурса во время выполнения