1

我正在 Visual Studio 2010 中使用 C# 4.0 制作 Word 2007 加载项。我需要通过 clickonce 安装程序将 Access 2007 数据库(一个 .accdb 文件)放置在数据目录中。不幸的是,该文件被放在其他地方,因此应用程序在运行时找不到它。我看过各种文章提到使用项目属性的“发布”选项卡上的“应用程序文件”对话框将文件标记为数据文件,但由于某种原因我没有“应用程序文件”按钮。

知道如何使“应用程序文件”对话框出现,或者以其他方式手动将我的 .accdb 文件标记为数据文件吗?

4

3 回答 3

1

在解决方案资源管理器中,如果您将文件的属性设置为复制到输出目录 = 始终复制。然后,当您转到应用程序文件时,它们应该默认为数据文件。

但是,由于这是您的数据库,因此我会考虑考虑使其在更新中安全,因此您可以考虑这篇文章

请参阅http://msdn.microsoft.com/en-us/library/dd465298.aspx

顺便说一句,“应用程序文件”按钮应该在项目属性的“发布”选项卡上。

于 2010-07-02T00:41:52.467 回答
0

VSTO 应用程序没有可用的应用程序文件按钮,您无法专门设置文件类型。如果您的文件未部署到数据目录并且您希望将其部署到数据目录,请使用由 ClickOnce 标记为数据的文件扩展名重命名它。这包括 .xml、.mdb 和 .mdf。否则,该文件将与 VSTO 应用程序一起部署,并将与其余文件位于同一位置。

可以通过以下方式以编程方式发现 VSTO 应用程序的部署文件的位置:

System.Reflection.Assembly.GetExecutingAssembly.CodeBase

但是,您可能希望移动数据库,因为除非您将其部署为数据,否则执行更新时它将丢失。或者,您可以查看这篇文章,了解将数据放在何处以防止 ClickOnce 更新

于 2010-07-02T02:32:35.623 回答
0

I was able to get things to work by using the Mage tool as described here:

http://msdn.microsoft.com/en-us/library/6fehc36e.aspx

The trick with MageUI is it's open file dialog assumes you want to open a manifest associated with a .exe; a vsto project has a .dll, so the manifest doesn't appear in the files list by default, which was really tripping me up.

Basically, this process is a pain because you have to remember to do it manually. I don't know if there's a way to make this part of the build (maybe a post-build step? But this is really a post-publish step).

于 2010-07-02T13:52:14.947 回答