У меня проблема со встроенными ресурсами для проекта C # на сервере сборки с использованием MSBuild в командной строке. Проект отлично работает при сборке и запуске тестов в Visual Studio, но при запуске MSBuild из командной строки при запуске теста возникают следующие проблемы:
System.Resources.MissingManifestResourceException: не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что ".Properties.Resources.resources" был правильно внедрен или связан со сборкой "" во время компиляции, или что все требуемые спутниковые сборки загружаемы и полностью подписаны.
System.Resources. запрашиваемая культура, логическое createIfNotExists, логическое tryParents, StackCrawlMark & stackMark) в System.Resources.ResourceManager.InternalGetResourceSet (CultureInfo culture, логическое createIfNotExists, логическое tryParents) в System.Resources.ResourceStribution_resource_ringeryomeringGringer) () в \ Properties \ Resources.Designer.cs: строка 87
Я отследил проблему до сгенерированного IL (я использую ildasm). При сборке в Visual Studio в манифесте сборки указывается следующее:
.mresource public <PROJECTNAME>.Properties.Resources.resources
{
// Offset: 0x00000000 Length: 0x00000236
}
но при сборке с использованием MSBuild генерируется следующий вывод:
.mresource public '../..//Build/<PROJECTNAME>_AnyCPU_Debug_Obj/<PROJECTNAME>.Properties.Resources.resources'
{
// Offset: 0x00000000 Length: 0x00000236
}
поскольку можно увидеть, что путь к ресурсу внезапно становится частью имени ресурса.
У кого-нибудь есть идеи, как это исправить?