我目前擁有單個項目的單個解決方案,並生成可執行的A.EXE。該項目由幾十個C#源文件,表單等組成。Visual Studio中單個C#項目中的多重可執行文件
我現在需要生成可執行文件B.EXE和C.EXE。 B.EXE將使用大約95%的A.EXE代碼庫(即功能子集)。 C.EXE將使用B.EXE的約80%的代碼庫(即另一個子集)。
爲此設置Visual Studio和我的項目/解決方案的建議方法是什麼?我使用2010年,但我認爲這可能是一個通用的Visual Studio問題。
我的顧慮:
與預處理似乎沒有要改變輸出可執行文件的名稱的方式。也排除整個文件可能是不可能的,我必須離開類接口並定義代碼?
爲B.EXE和C.EXE創建項目並鏈接源文件我擔心這會讓三個項目變得非常容易失去同步。假設我將一個新文件foo.cs添加到一個項目中,我可能需要記住將其添加到其他項目中,並記住爲此使用鏈接,以免文件被複制。
我擔心的是,將我的項目分成多個組件會使其難以管理,調試和記憶什麼是定義在哪裏。我擔心最終會有十幾個令人困惑的議會,而不僅僅是一小撮議員。
想法和建議表示讚賞。我確定這是一個常見問題。
謝謝,安迪
共識是我應該使用庫。我已經開始將代碼分解成它們,並且我已經遇到了循環依賴。我想解決方案是重構這兩個庫來創建具有公共代碼的第三個庫。現在我感覺有點像我正在追蹤一個洞裏的一隻兔子...... – Andy 2010-09-10 20:22:12
當你遇到循環依賴問題時,通常是因爲你的類型耦合過於緊密。有許多技術可以將類型從它的使用中分離出來 - 例如,通過從類型中提取接口,以及僅在類庫中使用接口 - 其他項目可以從接口派生自己的類型,並簡單地告訴類庫在遇到接口(依賴注入)時使用此特定類型。如果您願意發佈一些代碼示例(只是最低限度顯示問題),我會回顧一些可以幫助您的技術。 – 2010-09-10 20:44:05
謝謝。因爲它有點偏離主題,所以我在這裏發佈了一個新問題:http://stackoverflow.com/questions/3688622/handling-events-in-c-assembly – Andy 2010-09-10 21:52:45