使用集成访问数据库的项目部署问题

布莱恩

我的项目及其拥有的数据库一直存在问题。我创建了一个简单的项目,并在其中创建了一个访问数据库,该数据库位于项目文件夹中。这是 App.config 中指定的连接字符串:

 <connectionStrings>
        <add name="Project.My.MySettings.BaseDeDatosConnectionString"
            connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Recursos\Datos\BaseDeDatos.accdb"
            providerName="System.Data.OleDb" />
  </connectionStrings>

但是当我发布我的项目时,将它安装在我的计算机上并执行它,我得到了错误:

'C:\Users\USER_NAME\AppData\Local\Apps\2.0\Data\6QPXHXGQ.ZM0\MVT91HXD.V1B\simu..tion_0000000000000000_0001.0000_49edcdec2714f7aa\Data\Resources\Data\Database.accdb' 不是有效路径。确保路径拼写正确,并且您已连接到文件所在的服务器。

当然,该程序仍然毫无用处。我检查了文件夹,确实那里没有数据库,我什至不知道它会在那里创建一个文件(我对数据库和部署一无所知,我只是在学习教程)。我之前使用的是 SQL 数据库,安装后它运行良好,但我不得不更改它。我会错过什么?

我在西班牙语和 VB.NET 中使用 VS 2015。

约翰

如果您在 VS 中使用发布功能,那么您使用的是 ClickOnce。ClickOnce 应用程序有一个专用文件夹,"|DataDirectory|"在运行时会解析到该文件夹​​。它不是程序文件夹。如果要"|DataDirectory|"在连接字符串中使用,则必须通过属性指定数据文件确实是数据文件,以便将其放置在该文件夹中。我并没有真正使用 ClickOnce,但我相信,要做到这一点,您需要打开项目属性的“发布”页面,单击“应用程序文件”按钮,然后Publish Status将该文件设置为Data File. 我不确定源文件的子文件夹在发布后是否会受到尊重,但您可以对其进行测试。

请注意,如果您只是将应用程序文件复制到目标计算机或使用 ClickOnce 以外的某些安装程序技术,"|DataDirectory|"则将解析到程序文件夹。作为记录,它解析为 ASP.NET 应用程序的 App_Data 文件夹(可能只有 Web 窗体,不确定)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章