using System;
using System.Collections .Generic ;
using System.Linq ;
using System.Windows .Forms ;
using System.Security .Policy ;
using System.Reflection ;
using System.Threading ;
using System.IO ;
namespace WindowsFormsApplication1
{
public class MyClass
{
public string callBackTest = "CallBackTest" ;
}
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[ STAThread]
static void Main( )
{
AppDomainSetup setup = new AppDomainSetup( ) ;
setup.ApplicationBase = @"D:\T est" ;
setup.ConfigurationFile = @"D:\T est\T est.exe.config" ;
setup.LoaderOptimization = LoaderOptimization.MultiDomainHost ;
Evidence baseEvidence = AppDomain.CurrentDomain .Evidence ;
Evidence evidence = new System.Security .Policy .Evidence ( baseEvidence) ;
var ap = AppDomain.CreateDomain ( "TestAppDomain" , evidence, setup) ;
var loadedAssembly1 = ap.Load ( Assembly.GetEntryAssembly ( ) .GetName ( ) ) ; // ダメ?
var loadedAssembly2 = ap.Load ( File.ReadAllBytes ( Application.ExecutablePath ) ) ; // ダメ?
//ap.SetupInformation.ApplicationBase = @"D:\Test";
// ↓ap.Loadで読み込んだはずなのになぜ??
// ファイルまたはアセンブリ
// 'WindowsFormsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'、
// またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
ap.DoCallBack ( new CrossAppDomainDelegate( ( ) => MessageBox.Show ( new MyClass( ) .callBackTest ) ) ) ;
ap.ExecuteAssembly ( @"D:\T est\T est.exe" , new[ ] { "a" , "b" , "c" , "d" } ) ;
var ts = new ThreadStart( ( ) => ap.ExecuteAssembly ( @"D:\T est\T est.exe" , new[ ] { "a" , "b" , "c" , "d" } ) ) ;
var th = new Thread( ts) ;
th.SetApartmentState ( ApartmentState.STA ) ;
th.Start ( ) ;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5XaW5kb3dzLkZvcm1zOwp1c2luZyBTeXN0ZW0uU2VjdXJpdHkuUG9saWN5Owp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsKdXNpbmcgU3lzdGVtLlRocmVhZGluZzsKdXNpbmcgU3lzdGVtLklPOwoKbmFtZXNwYWNlIFdpbmRvd3NGb3Jtc0FwcGxpY2F0aW9uMQp7CiAgICBwdWJsaWMgY2xhc3MgTXlDbGFzcwogICAgewogICAgICAgIHB1YmxpYyBzdHJpbmcgY2FsbEJhY2tUZXN0ID0gIkNhbGxCYWNrVGVzdCI7CiAgICB9CiAgICBzdGF0aWMgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8g44Ki44OX44Oq44Kx44O844K344On44Oz44Gu44Oh44Kk44OzIOOCqOODs+ODiOODqiDjg53jgqTjg7Pjg4jjgafjgZnjgIIKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtTVEFUaHJlYWRdCiAgICAgICAgc3RhdGljIHZvaWQgTWFpbigpCiAgICAgICAgewogICAgICAgICAgICBBcHBEb21haW5TZXR1cCBzZXR1cCA9IG5ldyBBcHBEb21haW5TZXR1cCgpOwogICAgICAgICAgICBzZXR1cC5BcHBsaWNhdGlvbkJhc2UgPSBAIkQ6XFRlc3QiOwogICAgICAgICAgICBzZXR1cC5Db25maWd1cmF0aW9uRmlsZSA9IEAiRDpcVGVzdFxUZXN0LmV4ZS5jb25maWciOwogICAgICAgICAgICBzZXR1cC5Mb2FkZXJPcHRpbWl6YXRpb24gPSBMb2FkZXJPcHRpbWl6YXRpb24uTXVsdGlEb21haW5Ib3N0OwogICAgICAgICAgICBFdmlkZW5jZSBiYXNlRXZpZGVuY2UgPSBBcHBEb21haW4uQ3VycmVudERvbWFpbi5FdmlkZW5jZTsKICAgICAgICAgICAgRXZpZGVuY2UgZXZpZGVuY2UgPSBuZXcgU3lzdGVtLlNlY3VyaXR5LlBvbGljeS5FdmlkZW5jZShiYXNlRXZpZGVuY2UpOwogICAgICAgICAgICB2YXIgYXAgPSBBcHBEb21haW4uQ3JlYXRlRG9tYWluKCJUZXN0QXBwRG9tYWluIiwgZXZpZGVuY2UsIHNldHVwKTsKCiAgICAgICAgICAgIHZhciBsb2FkZWRBc3NlbWJseTEgPSBhcC5Mb2FkKEFzc2VtYmx5LkdldEVudHJ5QXNzZW1ibHkoKS5HZXROYW1lKCkpOyAvLyDjg4Djg6HvvJ8KICAgICAgICAgICAgdmFyIGxvYWRlZEFzc2VtYmx5MiA9IGFwLkxvYWQoRmlsZS5SZWFkQWxsQnl0ZXMoQXBwbGljYXRpb24uRXhlY3V0YWJsZVBhdGgpKTsgLy8g44OA44Oh77yfCiAgICAgICAgICAgIC8vYXAuU2V0dXBJbmZvcm1hdGlvbi5BcHBsaWNhdGlvbkJhc2UgPSBAIkQ6XFRlc3QiOwoKICAgICAgICAgICAgLy8g4oaTYXAuTG9hZOOBp+iqreOBv+i+vOOCk+OBoOOBr+OBmuOBquOBruOBq+OBquOBnO+8n++8nwogICAgICAgICAgICAvLyDjg5XjgqHjgqTjg6vjgb7jgZ/jga/jgqLjgrvjg7Pjg5bjg6ogCiAgICAgICAgICAgIC8vICdXaW5kb3dzRm9ybXNBcHBsaWNhdGlvbjEsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsJ+OAgQogICAgICAgICAgICAvLyDjgb7jgZ/jga/jgZ3jga7kvp3lrZjplqLkv4Ljga4gMSDjgaTjgYzoqq3jgb/ovrzjgoHjgb7jgZvjgpPjgafjgZfjgZ/jgILmjIflrprjgZXjgozjgZ/jg5XjgqHjgqTjg6vjgYzopovjgaTjgYvjgorjgb7jgZvjgpPjgIIKICAgICAgICAgICAgYXAuRG9DYWxsQmFjayhuZXcgQ3Jvc3NBcHBEb21haW5EZWxlZ2F0ZSgoKSA9PiBNZXNzYWdlQm94LlNob3cobmV3IE15Q2xhc3MoKS5jYWxsQmFja1Rlc3QpKSk7CgogICAgICAgICAgICBhcC5FeGVjdXRlQXNzZW1ibHkoQCJEOlxUZXN0XFRlc3QuZXhlIiwgbmV3W10geyAiYSIsICJiIiwgImMiLCAiZCIgfSk7CgogICAgICAgICAgICB2YXIgdHMgPSBuZXcgVGhyZWFkU3RhcnQoKCk9PiBhcC5FeGVjdXRlQXNzZW1ibHkoQCJEOlxUZXN0XFRlc3QuZXhlIiwgbmV3W117ImEiLCJiIiwgImMiLCAiZCJ9KSk7CiAgICAgICAgICAgIHZhciB0aCA9IG5ldyBUaHJlYWQodHMpOwogICAgICAgICAgICB0aC5TZXRBcGFydG1lbnRTdGF0ZShBcGFydG1lbnRTdGF0ZS5TVEEpOwogICAgICAgICAgICB0aC5TdGFydCgpOwogICAgICAgIH0KICAgICAgICAKICAgIH0KfQo=
compilation info
prog.cs(4,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
Compilation failed: 1 error(s), 0 warnings
stdout