2010-03-09 138 views
3

我想创建一个安装程序,其中的 只会将几个文件和文件夹 转储到用户指定的位置。但是 问题是这些文件是 需要从固定的 源文件夹中获取,然后安装程序 被构建。此外,这些文件可能会随时更改 ,然后安装程序的新版本 需要创建为 。在.net中创建安装程序

我想使用安装和部署项目在.Net中执行此操作。我不知道如何做到这一点。 我是否需要用安装程序创建另一个类库项目?

其实安装程序将有两种选择:

  1. 在指定位置
  2. 嵌入企业内网SharePoint网站的文件(HTML文件)简单地提取文件。

有没有人有任何想法?

+2

检出http://www.installsite.org/pages/en/msi/authoring.htm – Ravisha 2010-03-09 11:37:31

+3

我认为WiX工具箱比安装和部署项目更好。 – munissor 2010-03-09 11:38:20

回答

0

我创建了几种形式做所有需要的东西,一个Windows应用程序。这个Windows应用程序的行为像一个安装程序。

1

考虑一个自解压ZIP文件。

你可以用DotNetZip建立一个。它需要目标机器上的.NET。它将文件解压缩到用户指定的位置,然后可以选择运行您指定的程序。该程序可能是解压缩的文件之一,或者可能是其他内容。

若要使用DotNetZip一个自解压存档,这是代码:

// create the SFX 
using (ZipFile zip1 = new ZipFile()) 
{ 
    zip1.AddFile(filename1, "");  // extract to toplevel 
    zip1.AddFile(filename2, "subdir"); // extract to subdir 
    zip1.AddFile(filename3, "subdir"); 
    zip1.Comment = "This will be embedded into a self-extracting exe"; 
    zip1.AddEntry("Readme.txt", "This is Update XXX of product YYY"); 
    var sfxOptions = new SelfExtractorSaveOptions { 
     Flavor = SelfExtractorFlavor.WinFormsApplication, 
     Quiet = false, // false == show a UI 
     DefaultExtractDirectory = UnpackDirectory 
    } 
    zip1.SaveSelfExtractor(SfxFileToCreate, sfxOptions); 
} 

生成的自解压的UI看起来是这样的:

alt text http://i50.tinypic.com/349bhvc.jpg

的SFX不依赖在MSI上,所以没有卸载选项。这可能会也可能不会是一件好事。

1

建立在设置和部署项目是我的经验的痛苦,所以相反,我使用Advanced installer。它便宜且易于使用。我认为他们也有免费版本。