【问题标题】:Vs 2010 Click Once application written in c# copies the xml files into other directoryVs 2010 Click Once 用 c# 编写的应用程序将 xml 文件复制到其他目录
【发布时间】:2011-09-15 07:42:01
【问题描述】:
  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中是否有任何配置会在安装后强制将所有文件复制到一个文件夹中,还是有其他方法可以做到这一点?

谢谢。

【问题讨论】:

    标签: c# visual-studio-2010 clickonce excel-addins


    【解决方案1】:

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

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

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

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

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

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

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

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

    【讨论】:

    • 关于你的第一个解决方案:我看不到应用程序文件对话框可能是什么问题,使用 vs2010 专业版
    • 选项二是office插件唯一允许的,谢谢!
    • 啊,对不起。我从未使用过 Office 插件,但我已经发布了许多 ClickOnce 应用程序。
    • VSTO 应用程序没有应用程序文件对话框,它只会将 XML 部署为数据文件。您可以从 ApplicationDeployment.DataDirectory 位置以编程方式获取它们,如果您需要它们,将它们复制回与您的 exe 相同的文件夹。
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多