使用资源编译独立的.exe

时间:2013-06-04 19:37:11

标签: c#

我正在尝试使用csc将我的C#程序编译为独立的.exe,但我不知道如何从该项目的资源中包含两个.exes。我需要在最终的standalone.exe中使用它们。 csc告诉我它们是二进制而不是文本文件(好吧)。 任何帮助,将不胜感激 ! :3

编辑:使用/ resource:我将其缩小到这个:

http://puu.sh/38mMq.png

如果重要的是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        bool is64bit = !string.IsNullOrEmpty(
        Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"));
        if (is64bit == true)
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("devcon64.exe");
            startInfo.Arguments = "restart =display *";
            Process.Start(startInfo);
        }
        else
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("devcon32.exe");
            startInfo.Arguments = "restart =display *";
            Process.Start(startInfo);
        }
    }
}
}

2 个答案:

答案 0 :(得分:0)

假设您希望将这些作为嵌入资源,您应该只能使用/resource标志:

csc Foo.cs /resource:Bar.exe /resource:Baz.exe

如果您希望它们不是嵌入式资源,那么您需要澄清您的要求。

答案 1 :(得分:0)

  

不是我知道的。您必须包含其他可执行文件   分开。

     

如果可执行文件是自包含的,并且没有您的依赖项   需要发货,然后你可以将可执行文件包含在中   你的主要可执行文件,然后提取并保存到磁盘并执行它   需要的时候。它仍然需要一些跨进程通信   得到结果,但你必须有一个可执行文件   船。

original answer

P.S。 你也可以阅读 similar topic