簡體   English   中英

在Visual Studio中編譯為獨立的可執行文件(.exe)

[英]Compile to a stand-alone executable (.exe) in Visual Studio

如何在Visual Studio中創建一個獨立的exe。 它只是一個簡單的控制台應用程序,我認為用戶不希望安裝一個小的控制台應用程序。 我使用visual studio命令提示符編譯了一個簡單的cpp文件。 即使沒有安裝.NET框架,exe也會工作嗎? 我使用原生C ++代碼。

在項目文件夾中,它們是bin文件夾。 在bin文件夾中,有2個文件夾,一個Release和一個Debug。 對於你的拋光.exe,你想進入你的Release文件夾。

我不太確定那是不是你問的問題

使用托管環境(包括用C#和VB.NET編寫的任何東西)的任何東西都需要.NET框架。 您可以在該場景中簡單地重新分發.EXE,但如果他們還沒有,則需要安裝相應的框架。

如果我理解正確,是的,你可以,但不是在Visual Studio下(據我所知)。 要強制編譯器生成真實的獨立可執行文件(這意味着您像任何其他語言一樣使用C#),請使用程序mkbundle(隨Mono一起提供)。 這會將您的C#應用​​程序編譯為真實的,無依賴的可執行文件。

互聯網上存在很多誤解。 它並沒有像某些人所說的那樣破壞.net框架的目的,因為如果你沒有使用這些功能,你怎么會失去.net框架的未來功能呢? 當您向應用程序發送更新時,在構建安裝程序之前通過mkbundle處理器運行它並不是一項艱難的工作。 還有一個速度優勢包括使您的應用程序以原生速度運行(因為現在它是原生的)。

在C ++或Delphi中,您擁有相同的系統,但沒有中間的MSIL層。 因此,如果您使用命名空間或源文件(在Delphi下稱為單元),那么它將被編譯並包含在您的最終二進制文件中。 因此,您的最終二進制文件將更大(讀取:真實應用程序的“正常”大小)。 您在.net中使用的框架部分也是如此,這些部分也包含在您的應用程序中。 但是,智能鏈接確實可以節省數量。

希望能幫助到你!

我同意@Marlon。 使用Release配置編譯C#項目時,您將在項目的“bin / Release”文件夾中找到應用程序的可執行文件。 這應該適用於簡單的應用程序。

但是,如果您的應用程序對某些外部dll有任何依賴性,我建議您使用VisualStudio創建一個SetupProject。 這樣,項目向導將找到應用程序的所有依賴項,並將它們(庫)添加到安裝文件夾中。 最后,您只需在用戶計算機上運行安裝程序並安裝軟件即可。

我從來沒有遇到過用C#原樣部署小型控制台應用程序的問題。 你可以遇到的唯一問題是對.NET框架的依賴,但即便如此也不應成為主要問題。 您可以嘗試使用該框架的2.0版本,該版本應該已經在大多數PC上。

使用本機非托管C ++,您不應該對.NET框架有任何依賴性,因此您確實應該是安全的。 只需抓取可執行文件和任何附帶的文件(如果有的話)並按原樣部署它們; 如果你不想,就沒有必要安裝它們。

我不認為通過將所有項目文件合並為一個.exe,可以做出提問者要求避免dll地獄的問題。

框架問題是一個紅色的鯡魚。 出現的問題是,當您有多個項目依賴於一個庫時,PITA是保持庫同步的。 每次庫更改時,所有依賴於它並且不更新的.ex將會死得很厲害。

告訴人們學習C作為一個回應確實是傲慢和無知的。

你可以在你的主dll中嵌入所有的dll。 請參閱:將DLL嵌入已編譯的可執行文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM