Jak utworzyć domenę aplikacji, dodać do niej złoenia, a następnie zniszczyć domenę aplikacji? To co próbowałem:Utwórz niestandardową domenę AppDomain i dodaj do niej złoenia.
static void Main(string[] args)
{
string pathToExe = @"A:\Users\Tono\Desktop\ConsoleApplication1.exe";
AppDomain myDomain = AppDomain.CreateDomain("MyDomain");
Assembly a = Assembly.Load(System.IO.File.ReadAllBytes(pathToExe));
myDomain.Load(a.FullName); // Crashes here!
}
Próbowałem również:
myDomain.Load(File.ReadAllBytes(pathToExe));
jak mogę dodać zespół do AppDomain. Raz ja, że znajdę sposób poprzez odbicie go wykonać, a następnie zniszczyć AppDomain
wyjątkiem tego, że pojawia się:
Nie można załadować pliku lub zestawu „ConsoleApplication1, Version = 1.0.0.0, Kultura = neutralny, PublicKeyToken = null 'lub jedna z jego zależności. System nie może znaleźć określonego pliku.
Łatwiej jest załadować montaż na własnej domenie - więc zamiast próbować montaż popchnąć do innej domeny rozważyć uruchomienie kodu w inna domena, aby załadować dowolny zestaw (nie zapomnij, że konieczne może być wstępne załadowanie zależności lub poprawne skonfigurowanie ścieżki wyszukiwania złożenia). –
"Jedną z jego zależności" jest zwykle problem. Użyj Fuslogvw.exe, jeśli nie masz pojęcia, co to może być. I użyj AppDomainSetup, aby ustawić poprawną ścieżkę prywatną. –