我正在研究包含兩個C#項目的Visual Studio 2010 Ultimate中的解決方案:Forms項目和控制檯項目。以編程方式,它們是完全獨立的;兩個項目的主要部分都可能沒有其他項目。我想要做的是通過按下Forms應用程序中的按鈕來調用控制檯應用程序,並根據Forms應用程序設置某些選項。因此,您可以將Forms應用程序視爲基本上只是一個「啓動器」應用程序。以編程方式調用第二個Visual Studio項目
我現在執行的方式是使用System.Diagnostics.Process.Start
和"cmd"
作爲第一個參數,並將控制檯應用程序可執行文件的路徑(加上CLI參數)作爲第二個參數。但這是一個糟糕的解決方案,因爲使用安裝程序將其部署到其他機器時會中斷。
我也嘗試創建控制檯項目中窗體對象的引用,使得Program
在控制檯項目的公共和靜態的,並調用控制檯項目的Main
方法,但因爲沒有有效的輸出處理,這最終會導致拋出異常。
我已經做了很多谷歌搜索,一些在SO搜索,甚至在提交頁面上檢查了「類似問題」,似乎沒有人知道如何去做我想做的事情。任何可能讓我走上正軌的指針?
僅供參考:我知道可能有一千萬以上的方法可以做到這一點,但我有幾個理由需要這樣做。我知道我可以爲CLI程序創建一個單獨的GUI並複製相關代碼,或者將所有內容合併到一個項目中,並創建一個單獨的輸出窗口或其他各種解決方案。但我需要這個解決方案的原因有兩個:(1)我有一個相當複雜的CLI程序,作爲一個CLI程序運行良好,現在需要用戶友好的方式來啓動它,(2)以其他方式解決問題doesn回答「如果你不能從另一箇中調用一個,爲什麼還要在同一個解決方案中首先安排好幾個可執行項目?」
Ack!爲什麼微軟不能讓事情變得更簡單?非常感謝答覆和建議。 – Mrrvomun