6

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

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

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

4

2 回答 2

11

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

另外-我不确定您的目标是什么,但请在此处查看我的帖子:强制应用程序具有管理员权限-与从 ClickOnce 应用程序调用具有管理员权限的应用程序的问题非常相似。可能会为您节省几分钟。

于 2012-05-14T23:32:27.693 回答
3

如果您不希望用户安装多个应用程序,那么您不希望有多个 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,复制到构建输出目录。我不会让目录结构与其他项目完全正确——您需要自己设置。但这给了你大致的想法。

于 2012-05-14T23:34:37.023 回答