【问题标题】:How to Release a WPF with a Database如何使用数据库发布 WPF
【发布时间】:2016-08-01 18:32:44
【问题描述】:

我正在使用实体框架,现在想要发布软件 - 它附有一个数据实体模型,它作为本地主机托管在开发中的 PC 上。

有没有办法可以释放它,然后它会保留数据库?

每次我释放它然后打开程序崩溃;当我释放它时,我很快就会在任何数据库代码上得到一个红线错误,它出现然后消失。

我们将不胜感激。

编辑:数据库必须在线托管吗?

编辑:当我在调试模式下运行它时它不会崩溃并且工作正常

编辑:我只将 .exe 文件移动到我的桌面上(不确定我是否必须获取整个发布文件)

编辑:这是一个打印屏幕:

【问题讨论】:

  • 可以使用 localhost 进行发布。请显示您的错误。
  • 我没有错误,程序只是在登录时崩溃,我会用 Gyazo 更新。 @兰斯
  • 使用图像更新 - 当我尝试登录时,它崩溃了 - 当我删除数据库代码并释放它时,它不会在登录时崩溃 - 在我看来,数据库好像不是导出到应用程序中。
  • 如果您使用的是实体框架,您的程序将需要这些程序集以及它所依赖的任何其他程序集,这些程序集与 .exe 文件位于同一文件夹中。可能解释了为什么它在 Debug 中可以正常工作。 Visual Studio 将依赖项复制到您的输出文件夹中。
  • 正如您发布的那样,我刚刚将发布文件夹复制到桌面,它工作正常。如果您将其添加为答案-我可以接受。 @杰克休斯

标签: c# wpf entity-framework release


【解决方案1】:

如果您使用的是实体框架,您的程序将需要这些程序集以及它所依赖的任何其他程序集,这些程序集与 .exe 文件位于同一文件夹中。可能解释了为什么它在 Debug 中可以正常工作。 Visual Studio 会为您将依赖项复制到输出文件夹中。

【讨论】:

  • 现在出于好奇,我似乎可以在 Release 包中打开这个数据库文件,如果我将这个项目公开发布,这是一个很大的安全漏洞,无论如何我可以限制直接访问文件还是编译成.exe文件?它包含人们如果不小心可能会查看的敏感数据(当用户有权访问数据并从在线应用程序更新信息时,应用程序会请求 API,因此这确实需要安全)。
  • 使用 SQLite 等数据库,您可以通过密码限制使用。绝不是万无一失的,因为您的代码需要知道密码,但它可能会挫败不成熟的查看器。
  • 我使用了外部数据库,但非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多