2011-12-16 115 views
2

可能重复:
How to programatically build and compile another c# project from the current project应用程序可以编译并创建另一个应用程序吗?

假设我们有一个名为Program1.exe的应用程序,所以当我点击该程序必须创建另一个EXE,它的exe让说Program2.exe其写“你好世界”在屏幕上。所以我认为它可能使用Visual Studio的命令行工具在代码中使用csc命令,无论如何,如果它的可能可以Program2.exe替换Program1.exe?我的意思是Program1.exe可以在运行时重新编译?

+0

您可以使用命令行编译程序 – 2011-12-16 12:40:34

回答

1

当Program1.exe正在运行时,Windows应该拒绝对该文件的写入权限... 如果我正确理解了您的问题,我会说绝对不是要走的路。要在运行时更改自己,程序应该使用某种形式的Reflection。

如果你想高效地做,看Emit,这让您完全的字节码接入电力(以及相关的危险)。 几年前,我使用了CodeProject的一个项目,它帮助我计算出细节。我正在研究.NET 2.0,现在肯定会有更新的东西(比如this)。

或者你可以使用CSharpCodeProvider,并建立被加载的程序集(无论是从源或树表示编译)。

你还可使用CSC编译组件,并将其加载到您正在运行的程序。如果你这样做,你需要在装配加载中注意一些。 This链接可能是有用的。

相关问题