Инструмент за определяне на зависимостите на .NET асемблирана рамка

Търся инструмент, който може да ми каже под какви рамки ще работи .NET сборка. Или по-конкретно какви версии на BCL (библиотеки с базови класове) изискват методите в него.

Това, което ме задейства, беше следното: Днес получих доклад за грешка срещу приложение, което правим, което основно казваше: „използвате WaitOne(Int32), но това работи само за .NET 3.5 SP1, не за обикновен 3.5; използвайте WaitOne( Int32,Boolean) вместо това". И наистина потребителят беше прав. WaitOne съществува завинаги в .NET, но конкретното претоварване, което отнема само int, беше въведено в сервизни пакети за 1.0, 2.0 и т.н. Следователно нашето приложение би се провалило напр. обикновена инсталация на рамка 3.5. И честно казано не бяхме тествали за това.

Вместо да тествам/зареждам приложението на машини с инсталирани всякакви рамки, което не е много лесно, затова търся инструмент, който може просто да ми каже под какви официално пуснати версии на рамка ще работят методите в дадено събрание - или, което е по-интересно, под какви версии няма да работи и какви са методите за нарушение.


person Richard Flamsholt    schedule 14.07.2010    source източник
comment
.Net Reflector може да бъде от помощ тук, като безплатно е полезен за всякакви неща.   -  person Will A    schedule 15.07.2010
comment
Reflector изглежда няма добавка за този вид анализ, но въпреки това беше доста добро предложение.   -  person Richard Flamsholt    schedule 15.07.2010
comment
О, глупости. Тъкмо четях тази страница и сигурно случайно съм гласувал против нея, но след 4 часа тя е заключена. Съжалявам за това.   -  person Marc Bollinger    schedule 29.04.2011
comment
@Marc Без обиди. Когато видях гласуването против, бях доста озадачен, но се радвам, че беше просто грешка.   -  person Richard Flamsholt    schedule 30.04.2011


Отговори (1)


Аз лично не знам за никакъв инструмент, който може да анализира .NET сборка и да ви каже кои методи са налични/недостъпни за конкретна версия на рамката.

Мисля, че най-доброто, което можете да направите, е да стартирате кода под различни конфигурации на рамката. Например, можете да опитате да използвате VMWare или Hyper-V, за да създадете виртуални машини, които имат инсталирани различни версии на .NET framework. Може би си струва да опитаме.

Освен това ще трябва ръчно да прегледате своя .NET код и да го прегледате на ръка, като кръстосате кода с MSDN, за да разберете дали методът е валиден за конкретна версия на рамката.

Ще се интересувам от отговорите на други хора - ако има инструмент, който може да анализира .NET код, за да определи валидността на различни версии, тогава това е убийствено приложение! :)

person Jason Evans    schedule 14.07.2010
comment
Оценявам предложението и всъщност имам няколко изображения за тестване на неща. Но правенето на това за всички версии на рамката и всичките им сервизни пакети е просто твърде много ръчна работа. Вместо това предпочитам да прекарам това време в писане на инструмента сам :-) - person Richard Flamsholt; 16.07.2010