如何在Visual Studio中创建一个独立exe。它只是一个简单的控制台应用程序,我认为用户不会喜欢安装一个微小的控制台应用程序。我使用visual studio命令提示符编译了一个简单的cpp文件。的情况下,exe是否仍能正常工作。NET框架未安装?我用的是原生C++代码。
wztqucjr1#
在您的项目文件夹中,有一个bin文件夹。在bin文件夹中,有两个文件夹,一个是Release,一个是Debug。为了你的抛光。exe,你想进入你的发布文件夹。我不太确定你是不是在问这个
c3frrgcw2#
如果我理解正确的话,是的,你可以,但不是在Visual Studio下(据我所知)。要强制编译器生成一个真实的的、独立的可执行文件(这意味着你像使用其他语言一样使用C#),你可以使用程序mkbundle(Mono附带的)。这将把你的C#应用程序编译成一个真实的的,没有依赖的可执行文件。关于这一点,互联网上有很多误解。这并不违背其目的。net框架就像有些人说的那样,因为你怎么可能失去未来的功能呢。net framework如果你没有使用这些功能开始?当你给你的应用程序发布更新时,在构建安装程序之前通过mkbundle处理器运行它并不困难。还有一个速度好处是让你的应用以原生速度运行(因为现在它是原生的)。在C++或 Delphi 中,你有相同的系统,但没有中间的MSIL层。因此,如果您使用名称空间或源文件(在 Delphi 中称为单元),那么它将被编译并包含在最终的二进制文件中。因此,最终的二进制文件将更大(阅读:真实的应用程序的“正常”大小)。中使用的框架部分也是如此。net,这些也包含在你的app中。然而,智能链接确实有一个可考虑的数量。希望有帮助!
06odsfpq3#
使用托管环境的任何东西(包括用C#和VB编写的任何东西)。NET)需要。NET框架。你可以重新分配你的。EXE,但如果他们还没有安装适当的框架,他们就需要安装它。
fv2wmkja4#
我同意@Marlon。当你使用Release配置编译你的C#项目时,你会在项目的“bin/Release”文件夹中找到你的应用程序的可执行文件。这应该适用于简单的应用程序。但是,如果您的应用程序依赖于某些外部dll,我建议您使用VisualStudio创建SetupProject。这样,项目向导将找到应用程序的所有依赖项,并将它们(库)添加到安装文件夹中。最后,您所要做的就是在用户计算机上运行安装程序并安装软件。
oipij1gg5#
我在部署用C#原样制作的小型控制台应用程序时从未遇到过问题。您可能遇到的唯一问题是对。NET框架,但即使这样也不应该是一个大问题。您可以尝试使用版本2。0的框架,这应该已经在大多数PC上。使用本机的非托管C++,不应对。NET框架,所以你真的应该是安全的。只需抓取可执行文件和任何附带的文件(如果有的话),并按原样部署它们;如果你不想安装的话就不用安装了。
2cmtqfgy6#
你可以在你的主dll中嵌入所有的dll。参见:Embedding DLLs in a compiled executable
cwxwcias7#
发布项目时,可以将“部署模式”设置为“自包含”,然后设置“生成单个文件”选项。
djmepvbi8#
我不认为这是可能的做什么提问者要求,这是为了避免dll地狱合并成一个所有的项目文件。exe。框架问题是一个转移注意力的问题。出现的问题是,当您有多个依赖于一个库的项目时,需要PITA来保持库的同步。每次库更改时,所有。依赖它而不更新的前任会死得很惨。像一个回应那样告诉人们学习C是傲慢和无知的。
8条答案
按热度按时间wztqucjr1#
在您的项目文件夹中,有一个bin文件夹。在bin文件夹中,有两个文件夹,一个是Release,一个是Debug。为了你的抛光。exe,你想进入你的发布文件夹。
我不太确定你是不是在问这个
c3frrgcw2#
如果我理解正确的话,是的,你可以,但不是在Visual Studio下(据我所知)。要强制编译器生成一个真实的的、独立的可执行文件(这意味着你像使用其他语言一样使用C#),你可以使用程序mkbundle(Mono附带的)。这将把你的C#应用程序编译成一个真实的的,没有依赖的可执行文件。
关于这一点,互联网上有很多误解。这并不违背其目的。net框架就像有些人说的那样,因为你怎么可能失去未来的功能呢。net framework如果你没有使用这些功能开始?当你给你的应用程序发布更新时,在构建安装程序之前通过mkbundle处理器运行它并不困难。还有一个速度好处是让你的应用以原生速度运行(因为现在它是原生的)。
在C++或 Delphi 中,你有相同的系统,但没有中间的MSIL层。因此,如果您使用名称空间或源文件(在 Delphi 中称为单元),那么它将被编译并包含在最终的二进制文件中。因此,最终的二进制文件将更大(阅读:真实的应用程序的“正常”大小)。中使用的框架部分也是如此。net,这些也包含在你的app中。然而,智能链接确实有一个可考虑的数量。
希望有帮助!
06odsfpq3#
使用托管环境的任何东西(包括用C#和VB编写的任何东西)。NET)需要。NET框架。你可以重新分配你的。EXE,但如果他们还没有安装适当的框架,他们就需要安装它。
fv2wmkja4#
我同意@Marlon。当你使用Release配置编译你的C#项目时,你会在项目的“bin/Release”文件夹中找到你的应用程序的可执行文件。这应该适用于简单的应用程序。
但是,如果您的应用程序依赖于某些外部dll,我建议您使用VisualStudio创建SetupProject。这样,项目向导将找到应用程序的所有依赖项,并将它们(库)添加到安装文件夹中。最后,您所要做的就是在用户计算机上运行安装程序并安装软件。
oipij1gg5#
我在部署用C#原样制作的小型控制台应用程序时从未遇到过问题。您可能遇到的唯一问题是对。NET框架,但即使这样也不应该是一个大问题。您可以尝试使用版本2。0的框架,这应该已经在大多数PC上。
使用本机的非托管C++,不应对。NET框架,所以你真的应该是安全的。只需抓取可执行文件和任何附带的文件(如果有的话),并按原样部署它们;如果你不想安装的话就不用安装了。
2cmtqfgy6#
你可以在你的主dll中嵌入所有的dll。参见:Embedding DLLs in a compiled executable
cwxwcias7#
发布项目时,可以将“部署模式”设置为“自包含”,然后设置“生成单个文件”选项。
djmepvbi8#
我不认为这是可能的做什么提问者要求,这是为了避免dll地狱合并成一个所有的项目文件。exe。
框架问题是一个转移注意力的问题。出现的问题是,当您有多个依赖于一个库的项目时,需要PITA来保持库的同步。每次库更改时,所有。依赖它而不更新的前任会死得很惨。
像一个回应那样告诉人们学习C是傲慢和无知的。