2011-11-24 61 views
2

我已经构建了发布配置文件,并在我的项目的release目录中创建了一个可执行的版本。发布windows窗体项目,没有安装程序

我想知道的是如何最好地从这个可执行文件分发给客户端?该文件夹中有很多文件在通过安装程序安装时不会显示,例如mainifest,一个名为application.exe.xml(当Windows隐藏Windows资源管理器中的扩展名时会引起混淆)。

这些都是必需的吗?我可以只发送可执行文件吗?或者我需要发送所有文件?有没有办法建立没有所有这些文件?

谢谢

+1

在开始之前,如果不使用安装程序,则需要确保客户端安装了正确版本的.NET。 – Oded

+0

我想你想要一个文件来安装项目/解决方案。我的建议是使用HM NIS编辑器。使用它并选择所有的.exe和.dll文件。当运行HM NIS程序时,安装程​​序将会被制作为 – Moonlight

+0

您好! :p –

回答

3

您必须将.exe和你本地引用任何DLL。如果您使用COM引用等,则需要在安装过程中注册它们。我认为GAC同样如此,但我自己并未将其用于独立应用程序。

application.exe.config包含应用程序设置(app.config的一个副本)。如果您不使用设置,或者用户通常不关心它们,则可以省略该文件,并使用您构建应用程序的默认值。

不需要vshost文件(如果有的话)。它们被Visual Studio的调试器使用。 .pdb文件包含调试数据,用于帮助dll进行源代码匹配。除非您打算将调试器附加到应用程序,否则没有意义。

+0

我忘记了任何文件吗? –

+0

嗨凯文,你似乎对这个问题非常了解。我的应用程序引用的唯一外部框架是OpenXML框架(我相信)。我需要使用可执行文件将此DLL包含在文件夹中吗?我已经将它添加到项目中引用的库文件夹中。 –

+0

好的答案,真的很有帮助,真的很简洁,容易理解。只是为了澄清“你必须发送exe文件和你在本地引用的任何dll” - >对我而言,真正将dll文件放入'release'目录。 –

1

通常你在Xcopy部署来部署(复制字面上没有安装/安装程序中的所有文件部署)的输出是什么文件夹(如调试或释放)无内容:

  • * .PDB - 调试符号
  • * .xml - xml文档
  • ?vshost? - Visual Studio托管文件

事实上,无论如何也取决于您的具体应用程序,因为开发人员需要知道您正在生产什么;如果您使用的不是.NET文档编译器的结果而是在输出文件夹中复制了静态文件的xml文件,那么请不要忘记部署它。

最后要注意:开发人员通常禁止以隐藏文件扩展名选项Windows资源管理器;-)

+0

嗨达维德。我的扩展程序没有隐藏,但我正在考虑可能没有扩展程序的客户端。无论如何,这是我所做的,所以我们会看看是否需要尽快包含任何dll或类似的东西! :p –

+0

您应该在部署到客户端之前进行测试,只需将要分发的文件放在另一台不带Visual Studio的计算机上,该计算机与客户端将使用的计算机类似,并在此处测试您的应用程序:) –

+0

是的,这是我目前正在做的。 :)原来我需要OpenXML dll。 –

0

您需要了解安装者或安装的原因是很重要的。

安装人员负责基本环境。安装程序可以携带相关的程序集/模块。它还可以在运行之前检查是否需要某些东西,例如目标机器上的.NET。它也可以在桌面或开始菜单上创建快捷方式。另外它还在目标机器上提供足够的选项来卸载它。

如果您希望单独发布可执行文件,则可能会错过某些可执行文件依赖的程序集。目标机器可能安装有或没有正确的.NET版本。

+0

嗨,谢谢你的info,但不幸的是,客户端的计算机没有正确的权限来安装不在允许的软件列表中的程序,所以我们必须自己发布可执行文件。 –

+0

那么你打破了这个政策?它更加严重和危险。您正在运送的物品可能不在安全列表中,并且您正在绕过安装策略! – Kangkan

+0

我们不打破政策。我们正在创建一个不需要访问系统文件,注册表,受保护目录等的程序。这属于公司提供的政策范围,我们正在与公司及其IT部门密切合作,以确保我们已经找到了最简单和最安全的方式来提供一个可执行程序,供他们的系统使用。 –

0

使用程序:从HM软件NIS编辑。

生成项目 运行NIS编辑 从向导中进行新的脚本(按Ctrl W) 运行所有 stelect所有.dll和.exe文件 生成安装文件

我希望这个作品

步骤
相关问题