CoreResGen создает различные ресурсы миграции EF в зависимости от формата файла проекта - PullRequest
0 голосов
/ 16 октября 2019

Мы конвертировали наши файлы csproj в новый формат, чтобы нам было проще многоцелевым образом и уменьшить конфликты слияния.

Однако мы столкнулись с проблемой в сборках, содержащих миграции EF. Со старым форматом файла проекта мы получаем следующее:

enter image description here

Но как только мы конвертируем в новый формат csproj, имена ресурсов меняются и включают префикс даты и времени:

enter image description here

Это приводит к взрыву нашего процесса развертывания, потому что когда мы запускаем миграцию, он ищет ресурсы без префикс.

Я посмотрел подробный результат сборки обоих. Когда он генерирует ресурсы без префикса, журнал показывает:

Целевой объект «CoreResGen» в файле «C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin»\ Microsoft.Common.CurrentVersion.targets "из проекта" D: \ Development \ ipseity \ src \ Ipseity.Server.Repositories \ Ipseity.Server.Repositories.csproj "(от него зависит целевой объект" ResGen "):

Использование задачи «GenerateResource» из сборки «Microsoft.Build.Tasks.Core, версия = 15.1.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a".

Когда он генерирует ресурсы с префиксом, ониспользует:

Target CoreResGen:

Использование задачи «GenerateResource» из сборки «Microsoft.Build.Tasks.Core, Version = 15.1.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a».

Корень проблемы в том, как генерируется вызов resgen.exe, т.е.

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\resgen.exe" /useSourcePath /compile
  CommonMigrations\201805082252464_Initial.resx,obj\Debug\Ipseity.Server.Repositories.CommonMigrations.Initial.resources
  CommonMigrations\201805310033457_RemoveUnusedTablesAndColumns.resx,obj\Debug\Ipseity.Server.Repositories.CommonMigrations.RemoveUnusedTablesAndColumns.resources

против

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\resgen.exe" /useSourcePath /compile 
  CommonMigrations\201805082252464_Initial.resx,obj\Debug\net48\Ipseity.Server.Repositories.CommonMigrations.201805082252464_Initial.resources 
  CommonMigrations\201805310033457_RemoveUnusedTablesAndColumns.resx,obj\Debug\net48\Ipseity.Server.Repositories.CommonMigrations.201805310033457_RemoveUnusedTablesAndColumns.resources
...