有人可以使用C#为我提供访问嵌入式资源的起点或代码吗?
我已成功嵌入了几个批处理文件,脚本和CAD图纸,我想运行批处理并将脚本和CAD文件复制到批处理文件中指定的位置。
我很难找到如何指定项目的内容并在EXE中设置路径。下面的代码是我认为可行的,但它失败了,我在网上发现的其他代码都与XML文件有关。
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + "\\Batchfile.bat";
p.Start();
老实说,我甚至不知道我是否正在查看正确的方法,因为这是我第一次使用C#或Visual Studio。
答案 0 :(得分:5)
打开解决方案资源管理器添加要嵌入的文件。右键单击文件,然后单击Properties
。在Properties
窗口中,将Build Action
更改为Embedded Resource
。
之后,您应该将嵌入的资源写入文件,以便能够运行它。
using System;
using System.Reflection;
using System.IO;
using System.Diagnostics;
namespace YourProject
{
public class MyClass
{
// Other Code...
private void StartProcessWithFile()
{
var assembly = Assembly.GetExecutingAssembly();
//Getting names of all embedded resources
var allResourceNames = assembly.GetManifestResourceNames();
//Selecting first one.
var resourceName = allResourceNames[0];
var pathToFile = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) +
resourceName;
using (var stream = assembly.GetManifestResourceStream(resourceName))
using (var fileStream = File.Create(pathToFile))
{
stream.Seek(0, SeekOrigin.Begin);
stream.CopyTo(fileStream);
}
var process = new Process();
process.StartInfo.FileName = pathToFile;
process.Start();
}
}
}