Как использовать embedded.NET exe в библиотеке C# без восстановления файла из его байта[]?
У меня есть встроенный файл - xsd.exe
- в моей библиотеке .NET.
Как я могу, не перестраивая встроенный файл из его byte[]
, использовать его?
Exe работает в командной строке, поэтому мне нужно иметь возможность делать вызовы, такие как: xsd /o:..
или что-то еще.
Я что-то читал о ManifestResourceStream
, но я не могу найти его в рамках, и я понятия не имею, как его использовать.
Есть идеи?
1 ответ:
Если вы можете записать его во временный файл (
File.WriteAllBytes
), вы можете создать новыйAppDomain
и использоватьyourAppDomain.ExecuteAssembly(...)
; однако, чтобы сделать это вручную изbyte[]
, я ожидаю, что вам нужно будет загрузить его вручную сAssembly.Load(byte[],...)
, Посмотрите наloadedAssembly.EntryPoint
и используйте отражение, чтобы вызвать его. ПодходExecuteAssembly
гораздо проще...Конечно, если вы можете записать его в файл, вы также можете просто использовать
Process.Start
, что даже более легко ;pВы также можете дважды проверить redist / deployment rights re
xsd.exe
.