Как использовать embedded.NET exe в библиотеке C# без восстановления файла из его байта[]?


У меня есть встроенный файл - xsd.exe - в моей библиотеке .NET.

Как я могу, не перестраивая встроенный файл из его byte[], использовать его?

Exe работает в командной строке, поэтому мне нужно иметь возможность делать вызовы, такие как: xsd /o:.. или что-то еще.

Я что-то читал о ManifestResourceStream, но я не могу найти его в рамках, и я понятия не имею, как его использовать.

Есть идеи?

1 2

1 ответ:

Если вы можете записать его во временный файл (File.WriteAllBytes), вы можете создать новый AppDomain и использовать yourAppDomain.ExecuteAssembly(...); однако, чтобы сделать это вручную из byte[], я ожидаю, что вам нужно будет загрузить его вручную с Assembly.Load(byte[],...), Посмотрите на loadedAssembly.EntryPoint и используйте отражение, чтобы вызвать его. Подход ExecuteAssembly гораздо проще...

Конечно, если вы можете записать его в файл, вы также можете просто использовать Process.Start, что даже более легко ;p

Вы также можете дважды проверить redist / deployment rights re xsd.exe.