【问题标题】:How to deploy files with a clickonce application?如何使用 clickonce 应用程序部署文件?
【发布时间】:2010-07-07 09:21:49
【问题描述】:

在编码过程中,我的 bin\Debug 文件夹中有一些文件、声音文件(.wav 和 .mp3)和文本文件(.rtf),但发布后找不到它们。

我的应用程序可以播放声音文件,这些是默认声音文件,应该与应用程序一起安装在 Application.Startup 路径中。

我在应用程序的帮助表单中加载到 RichtextBox 控件中的文本 *.rtf 文件。

我将它们的属性设置为 Content and Copy if Newer。

【问题讨论】:

    标签: .net clickonce resources


    【解决方案1】:

    您需要将这些文件设置为内​​容(与您一样),以便将它们复制到 bin 文件夹中。然后打开项目属性页面,选择“发布”选项卡并单击“应用程序文件...”。您现在应该会看到与您的项目相关的文件列表和指示它们应该如何发布的值。您的文件很可能已被标记为数据,并且将发往您的 ClickOnce 应用程序数据文件夹,而不是 bin 文件夹。更改代码以使用 ClickOnce 数据文件夹(有辅助方法)或确保选择“包含”而不是“数据文件”。

    或者,如果不希望文件在客户端应用程序上发生更改,您可以考虑将文件作为资源嵌入到您的 dll 中。

    【讨论】:

    • 谢谢,@Bronumski。但我遇到的另一个问题是我将我的项目导入了一个在线 svn 存储库。然后我检查了我的工作副本。现在,在 Visual Studio 解决方案资源管理器中显示的这些文件没有文件类型特定图标,并且在“属性”窗口中,“构建操作”和“复制到输出目录”属性未显示。
    • 我只需要为 bin\Debug 文件夹中的文件副本设置“内容”和“复制到输出目录”,并将“\bin\Debug”连接到 Application.StartupPath 到我加载文件的代码。谢谢。
    【解决方案2】:

    我不清楚——您是否已将这些文件添加到您在 Visual Studio 中的项目中?如果是这样,请将它们添加到您的 csproj 文件所在的顶层,或将它们放在那里的文件夹中(它们将部署在相同的相对路径中)。我绝对不会包含 \bin\debug 文件夹中的文件。您可以轻松地清除您的 \bin 文件夹,然后它们就可以了。我不确定你是否这样做,但听起来你是。

    如果您将它们放在项目的顶层,它们将位于您的部署的顶层。如果将它们放在文件夹中,它们将位于该相对路径中。将构建操作设置为“内容”,我会将“复制到输出目录”设置为“始终复制”。

    【讨论】:

    • 我确实在顶层也有文件,但它们的“构建操作”和“复制到输出目录”属性没有出现在“属性”窗口中。在解决方案资源管理器中,这些文件也没有特定于文件类型的图标,而是默认的“带有折角右上角和虚线边框的白页”图标。这是在解决方案资源管理器中选择 Alarm_Clock_Help.rtf 文件的屏幕截图:tinyurl.com/39lqo45
    • 我之前的评论指的是。我发现原因是我使用 Windows 资源管理器复制了文件。我现在已经使用 Visual Studio 菜单中的“Project>Add Existing Item...”将文件添加到项目中,并且它们具有正确的图标和正确的属性。
    • 我在想你可能已经这样做了。我认为您可以右键单击它们并选择“包含在项目中”,在这种情况下它也会将它们添加到项目中。那么现在文件部署成功了吗?
    猜你喜欢
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多