我有一个连接字符串到MS Access数据库文件Foo.accdb,在我的项目中定义和使用。它被定义为项目属性的“设置”部分中的连接字符串“设置”。该程序引用了连接字符串设置,一切正常。
然后我决定用两个不同的DB文件替换Foo.accdb,A.accdb和B.accdb,每个文件都将在不同情况下使用。我在“设置”中为它们添加了连接字符串,并删除了Foo.accdb连接字符串的设置定义。
我的应用程序的名称是Foo,Foo.accdb连接字符串的名称是FooConnectionString。
但是现在当我在调试器和发布中构建程序时,我收到以下错误消息:
'FooConnectionString' is not a member of 'Foo.My.MySettings'.
文件FooDataSet.Designer.vb中的违规参考是:
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Private Sub InitConnection()
Me._connection = New Global.System.Data.OleDb.OleDbConnection
Me._connection.ConnectionString = Global.Foo.My.MySettings.Default.FooConnectionString
End Sub
这里发生了什么? FooConnectionString不在项目目录中的任何其他文件中,也不在My Project子目录中。我完全摆脱了我的代码和我的项目属性,但它仍然存在于FooDataSet.Designer.vb(无论是什么)。
在网上研究这个时,我看到了建议选择FooDataSet.xsd文件,右键单击它并执行“运行自定义工具”选项。我做了这个,它似乎重建了FooDataSet.Designer.vb(时间戳更改)但问题仍然存在。
我还尝试通过手动编辑FooDataSet.Designer.vb来删除有问题的引用,但这给了我一些其他错误消息。
为什么这个旧参考留在身边,我该怎么办呢?
这是一个独立的应用程序。我正在使用VS2008 Standard Ed。,VB.Net 3.5
感谢。
答案 0 :(得分:1)
在文本编辑器中打开FooDataSet XSD文件。右键单击解决方案资源管理器中的数据集,然后选择“打开方式...”和选择XML(文本)编辑器,或在解决方案外部打开它。
查找文件顶部附近的<Connections>
标记。删除看起来像这样的行
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="FooConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="FooConnectionString(Settings)" ...