[英]MsBuild deletes dependency dlls when I build, then debug in Visual Studio
[英]How do I get a smooth debug experience in Visual Studio 2008 when using dependency injection?
在使用依賴注入(DI)時,在Visual Studio 2008中提供平滑調試體驗的最佳實踐是什么?
具體來說,假設我有一個包含3個項目的解決方案:
MySolution: - ConsoleApp - ServiceInterface - ConcreteService
ConsoleApp具有對ServiceInterface項目的引用,並使用DI容器來解析具體類型(來自ConcreteService項目)。
當我開始調試時,ConsoleApp將無法加載具體類型,除非ConsoleApp bin \\ debug目錄中存在ConcreteService.dll。
所以問題是,如何將ConcreteService.dll導入ConsoleApp的bin \\ debug文件夾?
我想到的一些選項是構建后的腳本,在ConsoleApp中將項目引用添加到ConcreteService並手動復制dll。
所有這些方法都有一些優點/缺點,所以我很想知道是否有其他方法,如果沒有,人們更喜歡哪種方法。
只需添加對具體實現的引用即可。
順便提一下,在同一個程序集中使用接口和實現在架構上是完全可行的。 你可能有充分的理由不這樣做,但人們似乎本能地回避這一點,但沒有充分的理由。
您可以將每個項目的輸出目錄更改為同一目錄。 我使用MySolution \\ Debug來調試DI項目以避免添加引用。
解決第一條評論
如果您有多個使用DI來獲得相同依賴關系的應用程序,該怎么辦? 例如,如果我有多個應用程序使用的公共數據訪問層?
可能的問題是將所有內容一起轉儲到同一個調試文件夾中以獲得解決方案。 您只能一次調試一個應用程序,只要您測試Release版本,就應該沒問題。
您還可以為解決方案中的各種應用程序創建不同的構建配置,並為每個配置將輸出文件夾設置為MySolution \\ ConfigurationXDebug (或類似的東西)。 這有額外的好處,您可以明確選擇構建適當的項目,但更多的工作要設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.