【问题标题】:ClickOnce & ReferencesClickOnce 和参考
【发布时间】:2009-05-04 12:10:49
【问题描述】:

我已经使用 VS2008 创建了 ClickOnce 解决方案。 我的主项目引用了另一个将 COM dll 引用为“链接”的项目。

当我在 VS 中构建我的解决方案时,来自其他项目的 dll 会移动到我的 bin 文件夹中,但是当我发布和启动项目时,这些文件不会出现在我的 Local Settings\Apps\2.0... 文件夹中。

我知道我可以将另一个项目的每个 dll 添加为我的主项目的参考,但我想要一个更简洁的解决方案...

有可能吗?

【问题讨论】:

    标签: c# reference clickonce


    【解决方案1】:

    首先将这些文件直接添加到您的项目中。 然后转到应用程序属性 -> 发布 -> 应用程序文件

    如果您没有看到您需要的文件,请选择“显示所有文件”,然后设置它们的 将状态发布到“包含”而不是“包含(自动)”。这很重要,否则不会被添加。

    请注意,如果您更新文件,则必须将其删除并重新添加 并再次设置他们的发布状态。这是一个小错误。

    有关详细信息,请参阅我的上一个问题: ClickOnce - Overwriting content files

    【讨论】:

    • 'Include-auto' 和 Include 有什么区别?
    • 使用 include-auto Visual Studio 将决定是否包含它们。您需要强制 VS 使用“包含”来包含它们
    【解决方案2】:

    您需要在项目的“发布”选项卡中打开“应用程序文件”对话框。从那里您可以设置每个文件的发布类型(包括、先决条件等)。

    如果它是非托管 DLL,您需要将实际的 .dll 作为文件添加到您的项目中,并将其构建操作标记为“数据”。然后,您可以将该文件的发布类型设置为包含。

    【讨论】:

    • 好的,所以我必须将每个 COM dll 添加到我的主项目中,即使它已经包含在引用的项目中?
    • 如果它实际上是作为参考包含的,那么您只需将文件的发布状态修改为“包含”即可。如果不包含它(例如,如果您通过 pinvoke 使用函数),那么您将不得不手动添加它。
    • 另外,正如蒂莫西所说,您可能需要选择“显示所有文件”才能看到它。
    • 抱歉,我检查了显示所有文件,但看不到我的 dll。 (我只能看到我其他项目的 dll,但看不到包含在这个项目中的 dll ..)
    • 如果您想要的文件不在该列表中,那么您需要手动将其作为文件添加到该项目中(在项目的根目录中)并将其构建操作标记为“内容”。如果选择了“显示所有文件”,这应该会显示出来。
    【解决方案3】:

    我遇到了同样的问题....在经历了许多选择之后解决这个问题的唯一方法是将这些 dll 添加到引用中。

    它有效,但我希望将来会有更清洁的解决方案。

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 2021-04-12
      • 2015-04-06
      相关资源
      最近更新 更多