C#控制台应用程序部署

3

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

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

如何在.NET中实现相同的功能?

7个回答

7

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

或者您可以点击“生成”菜单并使用“发布”菜单项。这将允许您输入网络共享路径,Visual Studio会将构建的应用程序复制到该文件夹中。


2
如果你的应用程序确实很“简单”,你应该能够将文件复制到共享文件夹并从那里运行它。但是,如果你的“简单”应用程序试图执行受权限限制的操作,你可能需要使用caspol进行配置。从共享驱动器加载的程序集比从本地驱动器加载的程序集拥有更少的权限。

1
正确,但是随着Fx3.5SP1的政策变化,共享现在被认为(大多数情况下)等同于本地文件夹。 - H H
@HenkHolterman:除非您的内部IP地址实际上是可路由的:( - user7116

1

这个过程与Java程序基本相同。要部署,需要编译程序并将exe文件(以及任何依赖项)从bin文件夹复制到网络共享中。

要运行程序,用户需要打开命令提示符,导航到共享文件夹,并键入“programName.exe inputParameter1 inputParameter2”。


你甚至不需要 .exe 文件!;) 但是,这几乎与 OP 描述的 Java 版本过程完全相同,唯一的例外是您不需要调用 JVM,而是直接运行可执行文件。 - bakasan
1
@bakasan - 是的,你也可以从命令行运行 "programName inputParameter1 inputParameter2"。 - Greg
感谢您的回复。 但是,我仍然无法成功部署此应用程序。 我使用ClickOnce将其发布到网络共享文件夹中。 在共享驱动器上,我获得以下结构:1. 应用程序文件(文件夹)-> ABC_1_0_0_1->ABC(应用程序清单)ABC.exe.deploy ABC.exe.manifest Interop.DSOFile.dll.deploy 2. ABC(应用程序清单)3.设置(应用程序)。 然后,我通过RDP连接到目标计算机并导航到上述共享文件夹。 我双击Setup.exe,命令提示窗口闪烁表明程序已运行,但由于缺少输入参数而退出。 - DRags
3
如果你只是要将程序放在网络共享上,我不建议使用发布或 ClickOnce 。只需编译程序并将 bin 文件夹中的内容复制到共享文件夹即可。 - Greg

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

0

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


0
以相同的方式进行,假设他们已经安装了正确的依赖项(.net、第三方程序集等),将bin文件夹复制,然后让他们执行exe文件。

0

看一下ClickOnce部署:

ClickOnce是微软技术,用于部署基于Windows Forms或Windows Presentation Foundation的软件,也称为智能客户端。它类似于Java平台的Java Web Start。

MSDN

Wikipedia


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接