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

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

Это приводит к взрыву нашего процесса развертывания, потому что когда мы запускаем миграцию, он ищет ресурсы без префикс.
Я посмотрел подробный результат сборки обоих. Когда он генерирует ресурсы без префикса, журнал показывает:
Целевой объект «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