簡體   English   中英

在Visual Studio項目中創建“控制台”和“窗口”配置

[英]Create “console” and “window” configurations in Visual Studio project

我在Visual Studio 2008中有一個項目。我想有兩種不同的方式運行它-作為常規Windows應用程序(這樣它將獲得一個窗口並且我可以做圖形工作)或作為控制台應用程序(因此它不會)沒有窗口,不做圖形)。 有沒有辦法設置它,以便我在運行它時可以使用命令行選項或在這兩個選項之間進行切換的方法? 有沒有一種方法可以在同一Visual Studio項目中設置兩個不同的配置,以便我可以構建一個? 還是我需要創建兩個完全獨立的項目,一個用於窗口應用程序,一個用於控制台應用程序。

是的,您可以使用Configuration Manager創建新配置。 每個配置的項目設置可以不同。 因此,您可以創建兩個配置,然后在項目設置中將“輸出類型”設置為“ Windows應用程序”或“控制台應用程序”。

這樣做的方法是:在“構建類型”下拉列表中(默認情況下具有“調試”和“發布”選項的那個),選擇“配置管理器”。 添加一個新配置,並將其稱為“調試(控制台)”-選中此新配置,轉到項目屬性,並將“輸出類型”設置為“控制台應用程序”。 重復添加Windows窗體配置。

推薦的(非hacky)方法是將所有邏輯放在類庫中,然后為控制台和Window應用程序創建兩個單獨的項目。 然后添加類庫,以作為Chris建議的對這些項目的引用。

您不能擁有同時充當控制台 Window應用程序的單個應用程序。 基本上是因為控制台和窗口應用程序在二進制級別上不同,PE標頭中的標志也不同。

盡管有一些技巧可以使您使用Windows API函數( AttachConsoleCreateConsole )來偽造此類行為。 有關詳細信息,請參見

C#:是否可能有單個應用程序作為控制台或Windows應用程序運行,具體取決於開關?

但是請注意,常規控制台或Window應用程序的行為可能會有某些差異

您可能要考慮將項目分成三個部分。

  1. 完成工作的程序集/ dll(取決於您的語言)。
  2. 控制台應用程序。
  3. Windows應用程序。

后兩個只是完成所有工作的Assembly / dll上的兩個不同接口。

就像您具有默認的“調試”和“發布”配置一樣,您可以創建自己的配置。 右鍵單擊該項目,選擇“配置管理器”,單擊“活動解決方案配置”下拉框,然后選擇“新建”。 輸入“ CmdLine Debug”和“ Windowed Release”等名稱,然后刪除其他配置。 現在,右鍵單擊該項目,選擇“屬性”,然后為適當的配置調整所需的設置。

TP可以使您的生活更輕松:將所有配置通用的屬性放在屬性表中,並在所有地方使用這些表。 這樣,如果您想更改適用於所有配置的選項,則只需執行一次。

暫無
暫無

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

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