Предположим, у меня есть 2 DLL, поддерживаемые различными командами 2:Обнаружение Отсутствует Метод
Team1.dll (V1.0)
public class Foo
{
int GetValue() { return 3; }
}
Team2.dll (V1.0)
public class Bar
{
public int IncFooValue(Foo foo) { return foo.GetValue() + 1; }
}
Когда выполняются Team1.dll (v1.0) и Team2.dll (v1.0), все в порядке. Но предположим, что Team1.dll были изменены &, метод Foo.GetValue()
был удален (v1.1) и упал рядом с Team2.dll (все без восстановления Team2.dll). Если выполнено, то вы получите исключение MissingMethodException.
Вопрос: Как я могу определить, не является ли Team1.dll более несовместимым с Team2.dll без их выполнения?
Например, что-то вроде:
Foreach Class in Team2.dll
Foreach Method in Class
Foreach Instruction in Method
If Instruction not exists in Team1.dll
Throw "Does not exist"
вы должны использовать семантические управление версии. Удаление методы является нарушением изменение. –
Что вы ожидаете, когда они несовместимы, ошибка или изменение стратегии (резервное копирование)? – alexm
@ DanielA.White: Я согласен, но это не касается нумерации версий. Просто попытайтесь определить, произошедшее без восстановления – jt000