我有一個包含三個項目的一個Visual Studio 2010解決方案:Visual Studio解決方案有多個項目:參考路徑
- Windows服務將從一個SQLite數據庫中讀取數據來執行操作
- WinForms應用程序這將提供配置服務的行爲(通過更新SQLite數據庫)
- 一個類庫項目來抽象所有數據庫訪問從服務和配置應用程序走的方法(使它更容易在未來有任何更新處理數據庫而不必搜尋中的查詢其他兩個項目)
所有這些項目都在相同的解決方案,我已經從Winforms應用程序和服務添加到類庫的引用。在這兩個項目中,我能夠看到類庫中的類並與它們進行交互,但是我遇到了問題。我已經在我的類庫項目的/ Resources /目錄中創建了數據庫(因爲對我來說,「common」項目是存儲公共數據庫的唯一明智的地方),但是無論何時我嘗試訪問Winforms應用程序中的數據庫,它並不是返回我知道的數據。由於System.Data.SQLite具有創建一個空的數據庫文件的默認行爲,如果沒有找到該文件(在我看來這是一個奇怪的選擇),我甚至不能回去告訴數據庫是否存在。
這使我懷疑我不理解如何正確地從一個項目文件中相互參照。這裏是我的項目是什麼樣子:
WorkModeCommon包含的類SQLiteDatabase和ScheduleManager,其中ScheduleManager有一個SQLiteDatabase()和SQLiteDatabase與資源交互/ WorkModeSchedules.s3db
無論是WorkModeConfigApp和WorkModeService有一個WorkModeCommon.ScheduleManager(),理論上它應該處理所有的數據庫交互。
難道我有一個很大的缺點在我的設計,或者可能有人點我的資源,可以幫助我解決我遇到的問題?
從另一個項目中調用方法時,代碼在調用項目的上下文中運行,而不是在調用的項目中運行。這就是爲什麼,例如,當你引用'ConfigurationManager'時,你必須小心設置在當前正在執行的項目中,而不是包含引用'ConfigurationManager'的類文件的項目 - 這是一個常見的錯誤。 – mellamokb
對於如何存儲/引用資源,您是否有任何建議,以便可以在安裝該程序的任何系統上的公共位置訪問這些資源? –