Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Эти данные хранятся в атрибуте TargetFramework.
КД>Но этот атрибут отсутствует в сборках, откомилированных под FW3.5.
КД>В тоже время, "JetBrain dotPeak" показывает для этих сборок сведения о платформе. И показывает правильно — ".Net Framework v3.5"
КД>Есть предположения — как он получает эти данные?
Сдается мне, он это читает из PE Header. И в эти дебри я точно не полезу
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
— хочу замутить хранилище сборок.
КД>Хочу программно узнать под какую версию Framework откомпилирована сборка. Пишу под FW4.6.2 КД>Эти данные хранятся в атрибуте TargetFramework. КД>Но этот атрибут отсутствует в сборках, откомилированных под FW3.5.
Только он показывает версию CLR, а не версию Framework. Т.е. для Framework 2.0, 3.0, 3.5 значение может оказаться одинаковым.
КД>В тоже время, "JetBrain dotPeak" показывает для этих сборок сведения о платформе. И показывает правильно — ".Net Framework v3.5" КД>Есть предположения — как он получает эти данные? КД>UPD. В файлах с ресурсами (для FW4+) TargetFramework тоже отсутствует и "JetBrain dotPeak" всегда говорит, что они для ".Net Framework v4.0".
Здравствуйте, hardcase, Вы писали:
КД>>Но этот атрибут отсутствует в сборках, откомилированных под FW3.5.
H>1) Версия mscorlib должна быть 2.0.0.0 H>2) Должна быть ссылка на System.Core.dll
Да, у меня потом возникла идея — посмотреть в ссылки сборки. У System.Core она как раз версия 3.5
Но потом я обнаружил, что сборки с одними ресурсами вообще какие-то анонимные (можно только версию Runtime определить) и решил забить
В целом, у меня версия FW включена прямо в название сборки, поэтому все это для меня не сильно критично.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --