【问题标题】:How do I publish multiple applications / processes with one clickonce deployment?如何通过一键部署发布多个应用程序/进程?
【发布时间】:2012-05-14 20:52:06
【问题描述】:

我需要一个具有管理员权限的进程。从this question and answers 看来,没有比启动单独进程更好的方法了。因为我宁愿有一个专门用于此的过程,而不是仅仅为这种方法在第二个过程中启动我的原始应用程序——我想我会在 VS2010 中的一个解决方案中简单地创建两个项目。但是——在尝试部署它时——似乎我一次只能发布其中一个。那是不行的,因为我不希望客户端必须安装多个 - 然后还会出现找出相对路径等问题。

我不希望这两个进程都作为启动应用程序。我想要一个作为启动应用程序,它只为一种方法调用(如果需要)第二个。

那么如何一键安装两个进程呢?

【问题讨论】:

    标签: .net visual-studio-2010 deployment clickonce publish


    【解决方案1】:

    需要从第一个(主)项目中引用第二个(工作者)项目 - 然后,如果您转到第一个项目属性 -> 发布 -> 应用程序文件,您应该会看到第二个 EXE作为一个依赖已经。如果没有 - 只需将“发布状态”下拉菜单设置为“包含”。

    另外 - 我不确定你的目标是什么,但请查看我的帖子:Forced the application to have the administrator privileges - 与从 ClickOnce 应用调用具有管理员权限的应用的问题非常相似。可能会为您节省几分钟。

    【讨论】:

    • 这会创建两个桌面图标吗?
    • @ZacharyCanann 不,只有一个。
    • 这不起作用。是的,第二个EXE在那里,它甚至被发布了,但是发布的应用程序的Application Files子目录中没有.deploy文件,所以第二个EXE永远不会安装。
    【解决方案2】:

    如果您不希望用户安装多个应用程序,那么您不希望有多个 ClickOnce 部署。你真正想要的是一个部署。因此,ClickOnce 应用程序需要成为您的主应用程序,并且您需要在 ClickOnce 部署中包含来自辅助应用程序的 exe。我会这样做:

    将 exe 副本添加到 ClickOnce 项目,将构建操作设置为“内容”并将复制到输出目录设置为“始终复制”。然后进行构建并检查发布属性中的应用程序文件对话框并确保它显示出来。

    现在,如果您可以构建解决方案并且它同时构建了两个项目,请确保它正在构建首先创建 exe 的项目。然后将构建后命令添加到 ClickOnce 项目,该命令会将其从第一个项目的输出目录复制到第二个项目的输出目录。

    会发生什么,它将构建第一个项目,然后它将构建 C/O 项目(并将 ClickOnce 项目的 exe 版本复制到输出目录),然后它将复制最新版本的 exe从另一个项目到 ClickOnce 项目的输出目录,然后它将创建部署。

    我不是 msbuild 专家,但 post-build 命令应该是这样的。

    COPY/Y "$(ProjectDir)....\otherproject\bin\release\mynew.exe" "$TargetDir)\mynew.exe"

    这会从当前项目向上复制两个级别,另一个项目,然后是 bin 文件夹,然后是 release + mynew.exe,到构建输出目录。我不会让目录结构与其他项目完全正确——您需要自己设置。但这给了你大致的想法。

    【讨论】:

    • 谢谢。这看起来很有希望。
    • 如果您的其他可执行文件有更多文件需要复制到输出目录,那么维护它会变得很麻烦。对于更大的事情,这不是解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2017-05-06
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多