[英]ClickOnce With Multiple app.config Files
我們正在接近一個局面,即將有多個用戶使用我們的應用程序,每個用戶都有自己的SQL數據庫版本(在Azure中)。 他們的應用程序版本相同,數據庫不同。 每個用戶的每個數據庫的結構都將相同,但是他們將擁有自己的版本。
到目前為止,我在使用ClickOnce方面已經取得了一些成功,並希望繼續使用它來將應用程序的更新發布給所有用戶。
我在C#中使用實體框架,它生成了自己的連接字符串,該字符串存儲在我的app.config
文件中。 這是我遇到的問題。
我如何使用他們自己的數據庫將更新分發給每個用戶,而不覆蓋他們自己的app.config
文件,因此將連接字符串指向另一個(錯誤的)數據庫?
我想到的一種解決方案是不將Entity Framework連接字符串存儲在app.config
文件中,而是使用SQLlite數據庫的本地副本代替該字符串。 但是,我必須將其安裝在每個用戶的PC上,這將非常耗時。
因此,我正在尋找一個解決方案,使我可以擁有相同的應用程序代碼,並通過ClickOnce更新不同的SQL數據庫,而不更改我為該用戶存儲連接字符串的位置。
一種選擇是將連接字符串存儲在應用程序連接到的公共中央位置(例如網絡驅動器)中,並基於某個參數(例如當前用戶的用戶名)檢索用戶特定的設置。
另一個選擇是為每個已經包含了特定連接字符串的特定用戶發布一個單獨的輸出包(應用程序)。
第三種選擇可能是使用應用程序本身附帶的本地嵌入式數據庫。
如果要使用EF,請避免由於性能低下而將TransactionHandler與SQL Azure數據庫一起使用。 如果您在項目過程中發現更多性能問題,請告知我。
考慮為您的客戶數據庫使用彈性池,並使用彈性作業輕松地將更新應用於所有這些數據庫。 您可以在此處了解更多信息。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.