C# 使用实体框架部署LocalDB-won';不要使用现有的数据库

C# 使用实体框架部署LocalDB-won';不要使用现有的数据库,c#,entity-framework-6,localdb,C#,Entity Framework 6,Localdb,我用C#构建了一个代码优先的实体框架应用程序,并首先在我的开发机器上成功地部署了它 现在,我已经将应用程序重新部署到一台非开发机器(运行相同的OS-W7x64)——我还安装了localdb。但它不起作用 应用程序运行时会因错误而崩溃 无法创建文件“E:\Temp\WebUtility\WebDB.mdf”,因为它已存在。更改文件路径或文件名,然后重试该操作。 创建数据库失败。无法创建列出的某些文件名。检查相关错误 它无法创建数据库,因为该文件已存在。但我希望应用程序使用现有的数据库,而不是创建一

我用C#构建了一个代码优先的实体框架应用程序,并首先在我的开发机器上成功地部署了它

现在,我已经将应用程序重新部署到一台非开发机器(运行相同的OS-W7x64)——我还安装了localdb。但它不起作用

应用程序运行时会因错误而崩溃

无法创建文件“E:\Temp\WebUtility\WebDB.mdf”,因为它已存在。更改文件路径或文件名,然后重试该操作。
创建数据库失败。无法创建列出的某些文件名。检查相关错误

它无法创建数据库,因为该文件已存在。但我希望应用程序使用现有的数据库,而不是创建一个新的!如果我删除现有的数据库文件,应用程序会启动并继续创建新的空数据库文件,这是不好的

如果我替换这些新创建的文件,它又会不高兴,因此显然它不相信它部署的数据库是有效的

我的连接字符串如下所示:

<connectionStrings>
    <add name="ModelContainer"
         connectionString="Data Source=(LocalDB)\MSSQLLocalDB;attachdbfilename=E:\Temp\WebUtility\WebDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;" 
         providerName="System.Data.SqlClient" /> 
</connectionStrings>


我在这里遗漏了什么?

事实证明,SQL的版本略有不同-VS安装SQL Express 2016 SP1,我在部署箱上安装了2014


注意-仅卸载此项并重新安装2016版本不起作用,您需要手动删除HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstances中的密钥。事实证明,SQL版本略有不同-VS安装SQL Express 2016 SP1,我在部署框中安装了2014


注意-简单地卸载此项并重新安装2016版本不起作用,您需要手动删除HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstances中的密钥,这与我试图实现的目标相反。是否要将其永久用于多种用途?您是否正在运行迁移或任何与此相关的操作?我想我想知道你是在启动时重新创建还是重新删除,因为你提到在本地运行它。OP:“但我希望应用程序使用现有数据库,而不是创建新数据库”好的-我刚刚部署到另一台安装了VS 2019的机器上,其他什么都没有。它在这里运行得很好。这与我试图实现的目标正好相反。这个想法是为了让它能够持久地用于多种用途吗?您是否正在运行迁移或任何与此相关的操作?我想我想知道你是在启动时重新创建还是重新删除,因为你提到在本地运行它。OP:“但我希望应用程序使用现有数据库,而不是创建新数据库”好的-我刚刚部署到另一台安装了VS 2019的机器上,其他什么都没有。这里的天气很好。