Я работаю над большим решением, которое выполняет обработку изображений.У меня проблема с одним из (модульных) тестовых проектов.
У меня есть файл ресурса на диске с разрешением 96dpi / 96dpi.Но когда я загружаю его с помощью var img =Image.FromFile(fileName)
, я получаю растровое изображение с img.VerticalResolution == 120
и img.HorizontalResolution == 120
.
. Если я явно изменяю разрешение с помощью ((Bitmap)img).SetResolution(96, 96);
, разрешение меняется на 96.
Но потом, если я клонирую его var img2 = new Bitmap(img)
, тогда img2.VerticalResolution == 120
и img2.HorizontalResolution == 120
Я знаю, что это происходит только локально, потому что у других людей в команде нет этой проблемы, и тест проходит нормальномашины CI.Если я попытаюсь повторить это в консольном приложении на моем компьютере, у меня не возникнет этой проблемы - объект изображения, созданный из того же файла, имеет разрешение по вертикали и разрешение по горизонтали, равное 96 точек на дюйм.Чего мне не хватает?
ОБНОВЛЕНИЕ
Как указано, проблема возникает в модульных тестах.Тесты выполняются в конфигурации x86.Если я запускаю их с помощью стандартного окна обозревателя тестов Visual Studio, тесты проходят успешно.Проблема возникает, только когда я запускаю их с помощью окна теста ReSharper.
Итак, я провел несколько испытаний:
- Консольное приложение - правильное разрешение
- Запуск модульных тестовиз VS Test Explorer - правильное разрешение
- Модульные тесты с использованием MSTest, запускаемые из окна ReSharper - правильное разрешение
- Модульные тесты с использованием XUnit, запускаемые из окна ReSharper - правильное разрешение НЕ
Так что проблема с Resharper / XUnit