如何利用C#语言 编写一个可以生成exe文件的文件??(不是编译源文件那个生成 谢谢!)

如何利用C#语言编写一个可以生成exe文件的文件??(不是编译源文件那个生成谢谢!)具体如下:如何实现以下思路:1。编写一个exe文件,窗体上有一个文本框和一个名为(生成... 如何利用C#语言 编写一个可以生成exe文件的文件??(不是编译源文件那个生成 谢谢!)

具体如下:
如何实现以下思路:
1。编写一个exe文件,窗体上有一个文本框和一个名为(生成)的按钮
2。用户在文本框输入任意一个字符串后点击(生成)按钮,即可在指定的文件夹内生成一个.exe文件
3。点击这个生成的exe文件弹出一个messagebox对话框显示刚才用户输入的字符串

希望高手指点!!!谢谢!!! 在线等

最好是C# 实在没有 C++也行
QQ:469102005
其他语言也行 或者思路

非常感谢大家的回答,但还是没有合适的答案.......

希望有高手帮忙..

突然有个思路: 远程控制的生成服务端是如何实现的阿?
展开
 我来答
ahao1001
2011-01-31 · TA获得超过2269个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:367万
展开全部
1 编写一个窗体程序,这个程序一运行就读取C盘某个txt文件,或读取注册表里某个值,或读取APPCONFIG文件,然后弹出一个messagebox对话框,显示刚才读取到的值。编译得到这个程序的exe文件。
2 编写一个窗体程序,有文本框和一个生成按钮。把刚才那个exe文件放到项目的文件夹中。点下按钮后就把文本框内的值保存到C盘某个txt文件,或注册表里某个值,或APPCONFIG文件。再把项目文件夹中的exe文件复制到指定文件夹内。
shuidao
2011-02-02 · 超过75用户采纳过TA的回答
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:0
展开全部
我觉得可以这样:
先写一个可以正常弹出messagebox的程序,这个并不难。 这个叫程序A吧。
然后再写你的主程序,就是有生成按钮的那个,叫B吧。
然后把A的所有源代码,作为资源发布到B的exe文件中。
点击生成按钮之后,B从自己的资源中把A的源代码读出来,(可以保存在内存中,也可以保存在系统临时目录下。)修改读出来的A源代码中的对应弹出字符串的地方。 然后调用.net FrameWork自带的Csc编译器,编译修改过后的A源代码。
最后把编译完成的exe保存到指定位置。搞定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
法术大师巴林
2011-01-30 · TA获得超过5017个赞
知道小有建树答主
回答量:1003
采纳率:25%
帮助的人:371万
展开全部
从理论上说,EXE文件也就是一种二进制文件。
就好像你写文件一样,只要是保存为.EXE,就会被当做可执行文件执行。
但,关键问题是,EXE文件有指定的格式来说明你程序如何运行,这是一个很麻烦的过程。

为了实现你的要求,有个取巧的办法(不知有没有意义),就是你先生成出你要的EXE(正常写一个弹出MSGBOX的EXE),然后当做二进制文件保存起来,等到你需要输出的时候,保存成.EXE文件就可以了(安装文件就是干这个工作)

如果是想根据指令生成不同的EXE就很麻烦了,这里就不说了,因为需要很多前置的知识
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappcwgg1p8e1w093
2011-02-07 · TA获得超过193个赞
知道小有建树答主
回答量:75
采纳率:0%
帮助的人:108万
展开全部
您可以参考CodeDom动态编译功能~

如下:(自己敲的可能有问题)
class Program
{
static void Main()
{
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameter = new CompilerParameters();
parameter.ReferencedAssemblies.Add("System.dll");
parameter.ReferencedAssemblies.Add("System.Windows.Forms.dll");
parameter.OutputAssembly = "hello.exe";
parameter.GenerateExecutable = true; //<--生成exe
parameter.GenerateInMemory = false; //<--直接在内存运行

CompilerResults result = provider.CompileAssemblyFromSource(parameter,
GenerateCodeBlocks("MessageBox.Show(\"" + Console.ReadLine() + "\");"));
if (result.Errors.Count > 0)
{
Console.WriteLine("error");
}
Process.Start("hello.exe");
Console.Read();
}
static string GenerateCodeBlocks(string _code)
{
string code =
"using System;" +
"using System.Windows.Forms;" +
"namespace YOURNAMESPACE" +
"{" +
"static class YOURCLASS" +
"{" +
"static void Main()" +
"{ " + _code +
"}}}";
return code;

}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ichrud
2011-01-31 · TA获得超过1234个赞
知道小有建树答主
回答量:1162
采纳率:0%
帮助的人:972万
展开全部

直接用vs创建项目编辑
编译时自动就会生成.exe文件了

或者 也可以用dos命令csc 文件名.cs编译 但是这个比较复杂 必须到fromwork所在目录下 (就是运行环境下才有效)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式