1

我有这个 WinForms 项目(基于这个,但针对 SharePoint 2010 进行了修改),它实际上是一个安装向导,用于安装 SharePoint 2010 解决方案包 (.wsp)。

这个项目除了安装 .wsp 之外,还在 SQL Server 数据库上运行一些 .sql 脚本。

我的问题是如何创建一个 MSI/EXE 安装程序,其中嵌入了所有资源(.wsp 文件、.sql 文件、图像),所以我只有一个文件要分发?

请记住,不能选择使用 Visual Studio 安装项目,因为它会生成安装程序来安装安装程序。我不需要那个,WinForms 项目是安装程序。

希望我足够清楚。

谢谢。

更新

需要明确的是,WINFroms 项目安装程序。它包含向导对话框并运行代码以安装 Sharepoint 解决方案、运行 SQL 脚本等。

当我编译项目时,我最终得到了一堆具有以下结构的文件:

\en-us
\Resources
SomeThirdParty.dll
AnotherThirdParty.dll
Setup.application
Setup.exe
Setup.exe.config
Setup.exe.manifest
Setup.pdb
Setup.vshost.application
Setup.vshost.exe
Setup.vshost.exe.config
Setup.vshost.exe.manifest

我需要的是一个将所有内容打包到 MSI 安装程序中的工具,该安装程序将自动提取和自动执行setup.exe不是生成安装程序本身的工具,安装程序已经编码,它是 WinForms 项目本身。

4

3 回答 3

1

Advanced Installer对此提供支持,尽管您需要的功能仅在许可版本中可用。基本上,您可以创建一个 MSI 包装器来简单地启动您的项目并执行 SQL 脚本,或者尝试使用其专用的 SharePoint 支持。

另一种方法是IExpress之类的。一个自解压的 EXE,它启动其中包含的文件。

于 2012-06-08T07:47:21.567 回答
0

I have used Wix with success in the past. http://wix.sourceforge.net/

You can embed resources in the msi so you will only have one file to distribute. Additionally any custom installation steps you need to perform can be accomplished by writing custom actions in c# or vb.net code.

于 2012-06-07T20:19:50.723 回答
0

就像 Cosmin Pirvu 提到的那样,您需要一个自解压安装程序。我过去使用的是 Chilkat Software 的免费版本,名为ZIP 2 Secure EXE

如果您的所有程序集都是 .NET,那么您也可以尝试ILMerge将它们全部放入一个程序集中。尽管这对 .manifest 和 .config 文件没有帮助。

编辑:使用 ILMerge 的替代方法是将 dll 嵌入到您的可执行文件中,如此处所述

于 2012-06-08T18:45:23.817 回答