exe вызывает в dll, но явно не использует удаленный интерфейс. Почему нельзя запускать EXE с старой DLL во время выполнения с новой DLL?Удаление интерфейса типа прерывает использование exe dll (.NET)
Компилятор должен хранить дополнительную информацию о типах, а не просто о том, что используется.
EXE
void main()
{
new Foo().PrintHello();
}
Старый DLL:
public class Foo : IOldInterface
{
public void PrintHello()
{
Console.WriteLine("Hello");
}
public int Something { get { return 123; } }
}
public interface IOldInterface
{
int Something { get; }
}
Новая DLL
public class Foo
{
public void PrintHello()
{
Console.WriteLine("Hello");
}
}
Я не могу воспроизвести проблему с кодом, который вы предоставили, но тот факт, что мне пришлось изменить его даже для его компиляции, предполагает, что вы, вероятно, тоже не тестировали этот код. Пожалуйста, предоставьте [mcve], который фактически демонстрирует проблему. –
Извините. Ты прав. Я экстраполировал с гораздо большей базы кода и не компилировал это. Обновлено сообщение, прежде чем эффективно отказаться от этой проблемы. – aitee