- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Visual Studio 中制作了一个简单的 WPF 应用程序。
它使用以下连接字符串访问其自己目录中的自己的数据库文件:
System.Environment.CurrentDirectory + @"\Data\" + databaseFileName;
我点了发布,基本全部默认(CD/DVD发布,不在线更新)。
我将设置文件夹复制到另一台计算机。
在新电脑上,我双击 setup.exe。
它安装正常,在开始菜单中,但是当它运行时,它得到这个错误:
alt text http://www.deviantsart.com/upload/11jfc2c.png
我已经在 project/properties/security 中为应用程序授予了所有权限:
alt text http://www.deviantsart.com/upload/si6urj.png
我必须更改什么才能使这个使用 ClickOnce 部署的应用程序可以在 .exe 文件下的相对目录中找到它的数据库,即“Data/MainData.mdf”?
附录下面答案中的修复适用于 Windows 7,但在 Windows XP 上,我得到这个:
最佳答案
首先,您将其部署为数据,您的连接字符串显示了这一点。 DataDirectory 转换为 ClickOnce 缓存下的 Data 文件夹,这是 ClickOnce 放置文件(如果您将其标记为数据)的位置。
如果您不想在此处部署它,但希望它相对于 [exe],请进入“发布”选项卡中的“应用程序文件”对话框并将其从 Include(Data) 更改为仅 Include。然后它会把它放在一个相对于exe所在位置的位置。 (即,如果您将它放在项目的文件夹中,它将把它放在部署的 exe 下的相应文件夹中)。不要忘记更改连接字符串。
如果您将它部署在那个位置,它会在您发布更新时丢失。 (只是让你知道)。这里有一个关于您可以将数据放在其他地方以避免此问题的想法:
How to keep your data safe from ClickOnce updates
您需要动态创建连接字符串,Path.Combine(System.Windows.Forms.Application.StartupPath, "Data\mydatabase.mdf");或者它将从当前程序集的默认路径开始(在您的情况下为 .NET)。
--加法--
啊,WPF,抱歉,错过了。您基本上需要获取运行 exe 的文件夹。看看这是否有帮助:
在 System.Reflection 命名空间中:
Assembly assemblyInfo = Assembly.GetExecutingAssembly();
if (assemblyInfo != null)
{
//try Path.GetDirectoryName(assemblyInfo.Location)
//if that doesn't work, try assemblyInfo.CodeBase
}
(在 VSTO 应用程序中,由于 dll 的阴影,您必须使用 CodeBase。我认为 Location 适用于常规应用程序。)
罗宾点网
关于visual-studio - 如何使用访问本地 MDF 数据库文件的 ClickOnce 部署 WPF 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075550/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我有一个 .mdf 文件,以及同一个 mdf 文件的两个 .ndf 文件。是否可以在不丢失任何数据的情况下将这些文件合并为一个 .mdf 文件? 最佳答案 是的,您可以使用 DBCC SHRINKFI
我有一个 .mdf 文件,以及同一个 mdf 文件的两个 .ndf 文件。是否可以在不丢失任何数据的情况下将这些文件合并为一个 .mdf 文件? 最佳答案 是的,您可以使用 DBCC SHRINKFI
因为我们需要在我们的数据库中移动很多(比如用代码生成的新行更新它,然后更新它 prod db 和反向过程)。 SQL Server CE 作为一个基于文件的系统非常有帮助。 我们想升级以使用 SQL
sql server 2005 express .mdf + .ldf 的最大限制为 4 GB 还是仅适用于 .mdf?请澄清。谢谢。 最佳答案 MDF + NDF - 基本上是数据文件。 日志不算数
在我的数据库中,最初我有一个包含三列的表,当时没有数据,MDf 文件大小为 5122 KB。 然后我在这个表中插入了 500000 条记录,MDF 文件大小增加到 19456 KB 然后我更新了我的表
由于某种原因,我的 MDF 文件有 154gig,但是,我只从平面文件加载了 7GB 的数据。为什么 MDF 文件比实际源数据大很多? 更多信息: 只有几个表约有 2500 万行。没有大型 varch
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
当我转到在 mysql 中创建的数据库时,我只看到 db.opt、.frm 和 .ibd 文件类型。有没有办法创建 .mdf 数据库文件,以便我可以在 Visual Studio 中进一步创建我的项目
我在下面添加了对静态ROLES类的引用,以将角色分配给加入该网站的人员。当我按下JOIN ASP.Net控件上的按钮时,我测试了代码,并且应用程序挂起。当然,我立即尝试调试以查找问题,但我无法再访问S
我想知道当数据库未附加时如何通过 C# 创建跨表查询(开发) 我知道 .mdf 文件在您执行时会临时附加到数据库中——但这才是真正造成困惑的根源。如果您的数据库连接全部用于分隔导致它们动态附加的数据库
方法一(只有mdf没有日志文件的可以恢复) 证明有效 1.新建同名数据库。 2.把该数据库设置为脱机。 3.删除其日志文件(.LDF),不删除后边的过程执行通不过
我在一个网站上工作,该网站可以从数据库 (sql server) 访问数据。它还将添加、更新删除数据库中的记录。似乎创建了一个 MDF 文件,其中包含数据库模式和我猜的所有记录?一旦开发完成并且我想将
我正在开发一个 Web 应用程序(它在 Visual Studio 2008 中的 asp.net mvc 框架测试版中)并希望对其进行版本控制。如何版本控制 App_Data 文件夹中的数据库文件(
我正在使用 C# 为大学项目创建 .Net 应用程序,需要一些帮助! 我有一个托管在网络驱动器上的 mdf 文件,需要多个客户端才能从他们的应用程序访问该数据库。每台客户端计算机都将运行自己的 sql
我在 SQL 服务器上运行了碎片整理报告,数据库的 mdf 文件被报告为 99% 的碎片。我问了一位同事,他们说这可能是正常的,因为这正是这种文件在内部工作的方式。 这是一个问题吗?为此文件运行磁盘碎
我正在尝试自动执行分离和删除数据库的过程(通过 VBS objshell.run)如果我手动使用 SSMS 进行分离和删除,然后我可以将数据库文件复制到另一个位置...但是,如果我使用: sqlcmd
我需要在用户点击时插入数据。但是,我的代码没有这样做。即使它显示数据已插入消息,也不会插入数据。我怎样才能找到错误? private void bunifuFlatButton2_Click(obje
我正在使用 SQL Server 2008 R2 和 VS2010。我使用这个工具制作了简单的应用程序。我在我的应用程序中将数据库作为 .mdf 附加,并将该应用程序部署在其他机器上,它工作正常。现在
我有 .mdf 文件。 数据库名称 - 人 .mdf 文件路径 - D:\db\People.mdf 接下来我尝试连接到 mdf DbProviderFactory df = DbProviderFa
我是一名优秀的程序员,十分优秀!