1
  1. 我有一个使用 C# 开发的 Excel 插件应用程序,并使用来自 VS2010 的 ClickOnce 发布到网络位置。

  2. 该应用程序假定我在其中使用的所有 xml 文件都与应用程序本身位于同一文件夹中。

  3. 但是当用户使用 ClickOnce 安装我的应用程序时

应用程序文件被复制到一个文件夹中(C:\Users\myUser\AppData\Local\Apps\2.0\4THJAWJK.HYG\5N2YL58D.X55\ical..vsto_d6a691f9c1918311_0006.0000_ac7a074687bf4c5e

将数据文件作为 xml 复制到其他位置(C:\Users\myUser\AppData\Local\Apps\2.0\4THJAWJK.HYG\5N2YL58D.X55\ical...dll_d6a691f9c1918311_0006.0000_none_a70d8116aa98d903

问题是我在 Visual Studio 中是否有任何配置会在安装后强制将所有文件复制到一个文件夹中,还是有其他方法可以做到这一点?

谢谢你。

4

1 回答 1

1

我认为根据您的 XML 文件的意图,有几个解决方案可以解决您的问题。

选项 #1 如果您希望每次发布应用程序时都将 XML 文件复制到应用程序的根安装目录,您只需打开项目属性对话框,转到发布选项卡并打开“应用程序文件...”对话框。

默认情况下,当项目中包含 XML 文件时,ClickOnce 指定这些文件应作为“数据文件”发布(在“发布状态”选项下。)

将发布状态更改为包含,XML 文件将被复制到您的安装文件夹,而不是数据文件夹。

选项 #2 如果您希望创建一个 XML 文件,该文件将用于缓存用户特定的设置,这些设置应该在应用程序更新中持续存在,我建议输出一个默认的 XML 文件,如步骤 #1 中所述,但是,当应用程序开始检查时查看 XML 文件是否位于您在用户配置文件文件夹中创建的设置文件夹中。应用程序首次启动时,您还需要检查您的文件夹是否存在于用户配置文件中。如果没有,请创建它并复制您的默认 XML 文件。

在您的应用程序中,您可以使用以下代码行获取用户的数据文件夹:

string folder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.UserProfile);

您应该拥有对用户个人资料文件夹的完全访问权限以创建文件夹和复制内容,因此您应该担心管理员或特殊权限。

于 2011-06-16T13:19:59.027 回答