2009-11-04 179 views
3

我有一个简单的C#控制台应用程序在我的本地机器上使用VS2008 Pro开发。我想知道如何将此解决方案部署到网络共享文件夹中?C#控制台应用程序部署

一个类似的Java控制台程序已经放置在同一网络共享文件夹中(作为JAR文件)。用户只需打开命令提示符,导航到共享文件夹,然后键入“java -jar programName.jar inputParameter1 inputParameter2”

如何才能实现与.NET相同的功能?

回答

7

您可以将exe复制到自己的目录中,转到源代码所在目录中的bin文件夹并将其复制到那里。

或者您可以单击BUILD菜​​单并使用PUBLISH菜单项。这将允许您输入网络共享的路径,Visual Studio会将构建的应用程序复制到您的文件夹。

0

右键单击您的项目,选择发布将生成可执行文件,您可以将其放入共享驱动器中,类似地,用户可以进入命令提示符并运行它并给出一些参数。

1

这与Java程序大致相同。要部署,编译该程序并将bin文件夹中的exe(以及任何依赖项)复制到网络共享中。

要运行该程序的用户将打开命令提示符,导航到共享文件夹,如果你的应用程序是真正的“简单的”输入“programName.exe inputParameter1 inputParameter2”

+0

你甚至不需要.exe! ;)但是,这与OP描述的Java版本几乎完全相同,除了不需要调用JVM并直接运行可执行文件之外。 – bakasan 2009-11-04 21:08:29

+1

@bakasan - 确实,您也可以从命令行运行“programName inputParameter1 inputParameter2”。 – Greg 2009-11-04 21:11:09

+0

感谢您的回复。不过,我仍然无法成功部署这个应用程序。我确实使用ClickOnce将它发布到网络共享文件夹中。在共享驱动器上,我得到以下结构1.应用程序文件(文件夹) - > ABC_1_0_0_1 - > ABC(应用程序清单)ABC.exe.deploy ABC.exe.manifest Interop.DSOFile.dll.deploy 2. ABC(应用程序清单)3.设置(应用程序) 然后我将RDP发送到目标机器并导航到上面的共享文件夹。我双击Setup.exe命令propmt屏幕指示程序已运行,但会由于没有输入参数而退出。 – DRags 2009-11-04 22:47:39

2

,你应该能够把刚才复制的文件到共享文件夹并从那里运行。但是,如果您的“简单”应用程序尝试执行受权限限制的事情,则可能需要使用caspol进行配置。从共享驱动器加载的程序集比从本地驱动器加载的程序集的权限少得多。

+1

正确,但策略已随Fx3.5SP1更改,现在认为共享(大部分)等于本地文件夹。 – 2009-11-04 21:26:25

+0

@亨克 - 没错,谢谢。 – 2009-11-04 22:46:16

+0

@HenkHolterman:除非你的内部IP地址实际可路由:( – user7116 2011-10-17 19:52:43

0

假设他们已经安装了正确的依赖关系(.net,第三方程序集等),完全一样。复制bin文件夹,然后让他们执行exe文件。

0

看看ClickOnce部署:

ClickOnce是微软技术 部署Windows窗体或Windows 基于基金会介绍 软件,也称为智能客户端。 它与Java平台上的 的Java Web Start类似。

MSDN

Wikipedia

1

您可以使用发布VS.特征请注意,您可以更改控制台应用程序项目的“发布”部分中的设置,以删除一些您不需要的功能。例如,通过将'.deploy'扩展名附加到文件的名称或每次在新的'版本'文件夹中发布来重命名.dll和.exe文件。转到“项目属性” - >“发布”,并在“发布版本”中删除“自动递增修订”复选框,单击“选项...”按钮并清除所有复选框。