0
exeはdllを呼び出しますが、削除されたインターフェイスは明示的に使用されません。古いDLLでコンパイルされたEXEを新しい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