如何通过一次clickonce部署发布多个应用程序/进程?

时间:2012-05-14 20:52:07

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

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

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

那么如何通过一次clickonce安装我有两个进程?

2 个答案:

答案 0 :(得分:10)

需要从第一个(主要)项目引用第二个(工人)项目 - 然后,如果你去第一个项目属性 - >发布 - >在应用程序文件中,您应该已将第二个EXE视为依赖项。如果不是 - 只需将“发布状态”下拉菜单设置为“包括”。

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

答案 1 :(得分:3)

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

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

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

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

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

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

从当前项目复制两个级别,另一个项目,然后是bin文件夹,然后将+ mynew.exe释放到构建输出目录。我不会让目录结构完全适合其他项目 - 你需要自己设置。但这给了你一般的想法。