已打包的UWP应用如何修改Resources.resw中的SQL Server连接字符串?
解决方案:修改UWP应用部署后的数据库连接字符串
嗨,这个问题我碰到过不少次,UWP的Resources.resw编译后是嵌入到应用安装包中的,部署到其他电脑后,应用运行在沙箱环境里,包内的文件是只读状态,没法直接修改已安装的资源文件。给你两个可行的解决方案:
方法一:改用应用本地设置存储连接字符串(推荐)
这种方法不需要重新打包,用户可以直接在应用内修改连接字符串,是更灵活的方案:
- 调整代码逻辑:原来从
Resources.resw读取连接字符串的地方,改成优先读取ApplicationData.LocalSettings中的值;如果本地设置里没有,再读取Resources.resw中的默认值。示例代码大概是这样:var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; string connectionString = localSettings.Values["DbConnectionString"] as string; if (string.IsNullOrEmpty(connectionString)) { // 读取Resources.resw中的默认值 var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView(); connectionString = resourceLoader.GetString("DbConnectionString"); } - 在应用内添加一个设置界面:让用户可以输入新的连接字符串,并保存到
LocalSettings中。比如用一个文本框和保存按钮,点击保存时执行:localSettings.Values["DbConnectionString"] = txtConnectionString.Text; - 这样其他电脑的用户打开应用后,就能通过这个设置界面修改连接字符串,修改后重启应用即可生效。
方法二:修改资源文件后重新打包部署
如果不想改动代码,只能重新生成包含新连接字符串的安装包:
- 回到Visual Studio 2017的项目中,打开
Resources.resw文件,修改里面的连接字符串值。 - 重新生成整个项目(确保编译通过)。
- 右键项目 → 选择「应用商店」→「创建应用包」,按照向导重新生成安装包。
- 将新生成的安装包部署到其他电脑,覆盖原有的安装即可。
注意:UWP应用的沙箱机制限制了对安装包内文件的修改,所以直接去已安装目录找
Resources.resw是行不通的,上面两种方法是目前最可靠的解决方式。
内容的提问来源于stack exchange,提问作者hmak.soft
相关产品推荐
相关产品推荐

