如何在Visual Studio中创建一个独立的exe。它只是一个简单的控制台应用程序,我认为用户不希望安装一个小的控制台应用程序。我使用visual studio命令提示符编译了一个简单的cpp文件。即使没有安装.NET框架,exe也会工作吗?我使用了原生的C ++代码。
答案 0 :(得分:55)
在项目文件夹中,他们是一个bin文件夹。在bin文件夹中,有2个文件夹,一个Release和一个Debug。对于抛光的.exe,您需要进入Release文件夹。
我不太确定那是不是你问的是什么
答案 1 :(得分:20)
使用托管环境(包括用C#和VB.NET编写的任何内容)的任何内容都需要.NET框架。您可以在该场景中简单地重新分发您的.EXE,但如果他们还没有它,他们将需要安装相应的框架。
答案 2 :(得分:19)
如果我理解正确,是的,你可以,但不是在Visual Studio(据我所知)。 要强制编译器生成真实的独立可执行文件(这意味着您像任何其他语言一样使用C#),请使用程序mkbundle(随Mono一起提供)。这会将您的C#应用程序编译为真实的,无依赖的可执行文件。
互联网上存在很多误解。它并没有像某些人所说的那样破坏.net框架的目的,因为如果你没有使用这些功能,你怎么会失去.net框架的未来功能呢?当您向应用程序发送更新时,在构建安装程序之前通过mkbundle处理器运行它并不是一项艰难的工作。还有一个速度优势包括使您的应用程序以原生速度运行(因为现在它是原生的)。
在C ++或Delphi中,您拥有相同的系统,但没有中间的MSIL层。因此,如果您使用命名空间或源文件(在Delphi下称为单元),那么它将被编译并包含在您的最终二进制文件中。因此,您的最终二进制文件将更大(读取:真实应用程序的“正常”大小)。您在.net中使用的框架部分也是如此,这些部分也包含在您的应用程序中。但是,智能链接确实可以节省数量。
希望它有所帮助!
答案 3 :(得分:3)
我同意@Marlon。使用Release配置编译C#项目时,您将在项目的“bin / Release”文件夹中找到应用程序的可执行文件。这应该适用于简单的应用程序。
但是,如果您的应用程序对某些外部dll有依赖关系,我建议您使用VisualStudio创建一个SetupProject。这样,项目向导将找到应用程序的所有依赖项,并将它们(库)添加到安装文件夹中。最后,您所要做的就是在用户计算机上运行安装程序并安装软件。
答案 4 :(得分:1)
我从未遇到过使用C#原样部署小型控制台应用程序的问题。你可以遇到的唯一问题是对.NET框架的依赖,但即便如此也不应成为主要问题。您可以尝试使用该框架的2.0版本,该版本应该已经在大多数PC上。
使用本机非托管C ++,您不应该对.NET框架有任何依赖,所以您确实应该是安全的。只需抓取可执行文件和任何附带的文件(如果有的话)并按原样部署它们;如果您不想安装它们,则无需安装它们。
答案 5 :(得分:0)
我不认为通过将所有项目文件合并为一个.exe,可以做出提问者要求避免dll hell的内容。
框架问题是一个红色的鲱鱼。出现的问题是,当您有多个项目依赖于一个库时,PITA是保持库同步的。每次库更改时,依赖于它并且不会更新的所有.ex将会死得很厉害。
告诉人们学习C作为一个回应确实是傲慢和无知的。
答案 6 :(得分:0)
你可以在你的主dll中嵌入所有的dll。请参阅:Embedding DLLs in a compiled executable