C# 一个应用程序可以编译并创建另一个应用程序吗?

C# 一个应用程序可以编译并创建另一个应用程序吗?,c#,.net,csharpcodeprovider,C#,.net,Csharpcodeprovider,可能重复: 假设我们有一个名为Program1.exe的应用程序,所以当我点击该exe时,该程序必须创建另一个exe,比如Program2.exe,它在屏幕上写“hello world”。所以我认为可以使用visual studio的命令行工具在代码中使用csc命令,无论如何,如果可能的话,Program2.exe可以代替Program1.exe吗?我的意思是Program1.exe可以在运行时重新编译?如果确实可以这样做,请查看该类: 在本文中: 另外,你并不是真的从代码中调用csc命令,而

可能重复:


假设我们有一个名为Program1.exe的应用程序,所以当我点击该exe时,该程序必须创建另一个exe,比如Program2.exe,它在屏幕上写“hello world”。所以我认为可以使用visual studio的命令行工具在代码中使用csc命令,无论如何,如果可能的话,Program2.exe可以代替Program1.exe吗?我的意思是Program1.exe可以在运行时重新编译?

如果确实可以这样做,请查看该类:

在本文中:


另外,你并不是真的从代码中调用csc命令,而是在我的理解中,低得多的东西。。。无论怎样,这都很好,因为您使用的是托管类而不是外部工具。

当Program1.exe运行时,Windows应拒绝对文件的写入访问。。。 如果我正确理解了你的问题,我会说这肯定不是一条路要走。为了在运行时改变自身,程序应该使用某种形式的反射

如果您想高效地执行,请看,这将为您提供完全的字节码访问能力(以及相关的危险)。 几年前,我使用了CodeProject中的一个项目,它帮助我解决了细节问题。我当时正在开发.NET2.0,现在肯定有更新的东西(比如)

或者您可以使用,并构建要加载的程序集(从源代码或树表示编译)


您还可以使用csc编译程序集,并将其加载到正在运行的程序中。如果您这样做,您将需要注意程序集加载。链接可能很有用。

您可以使用命令行编译program@GabrielGM我已经说过“所以我认为可以使用VisualStudio的命令行工具在代码中使用csc命令”