这是一些可以大致完成此 *** 作的示例代码,减去任何形式的错误检查。另外,请确保要嵌入的程序的许可证允许这种使用。
// extracts [resource] into the the file specified by [path]void ExtractResource( string resource, string path ){ Stream stream = GetType().Assembly.GetManifestResourceStream( resource ); byte[] bytes = new byte[(int)stream.Length]; stream.Read( bytes, 0, bytes.Length ); File.WriteAllBytes( path, bytes );}string exePath = "c:tempembedded.exe";ExtractResource( "myProj.embedded.exe", exePath );// run the exe...File.Delete( exePath );
唯一棘手的部分是为的第一个参数获取正确的值
ExtractResource。它的格式应为“
namespace.name”,其中名称空间是项目的默认名称空间(在“项目” |“属性” |“应用程序”
|“默认名称空间”下查找)。第二部分是文件的名称,您需要将其包括在项目中(确保将构建选项设置为“嵌入式资源”)。如果将文件放在目录(例如资源)下,则该名称将成为资源名称的一部分(例如“
myProj.Resources.Embedded.exe”)。如果遇到问题,请尝试在Reflector中打开已编译的二进制文件,然后查看Resources文件夹。此处列出的名称是您将传递给的名称
GetManifestResourceStream。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)