2013-10-28 45 views
0

我是軟件開發新手(雖然不是編程)。我正在交付我的第一個商業版應用程序,我需要單擊安裝程序包。我研究了許多解決方案 - 我使用C#編寫了自己的代碼(它基本上只是抓住我的三個文件夾到各自的目的地),但遇到了捆綁一些IO庫的一些問題。由於我使用的是Visual Studio Express 2012,因此我無法使用InstallShield模塊。我發現了WiX,雖然它有一些在線教程,但這項服務的學習曲線非常高 - 可以肯定地說我很困惑。WiX爲我的C#應用​​程序創建一個簡單的安裝程序和合並模塊

我有三個文件夾:

  1. myApplication2013文件夾
  2. myApplication2014文件夾
  3. System.Data.SQLite.dll

我的C#代碼的邏輯如下:

public static void installer(){ 
     deleteLegacyFiles(); // deletes legacy myApplication directories and files 
     moveSQLite(); // moves system.data.sqlite database to directory 
     if(checkRevit2013()){ // install myApplication 2013 if Revit 2013 is installed 
      moveMyApplication2013(); 
     }else if(checkRevit2014()){ // if Revit 2014 is installed, install myApplication 2014 
      moveTally2014(); 
     }else{ // tell user both Revit 2014 and Revit 2013 is not installed 
      System.out.println("It does not look like you have either Revit 2013 or Revit 2014 installed."); 
     } 
    } 

目標位置將由的.msi指定,作爲目標位置:

  1. 所有MyApplication-2013是:C:\\ProgramData\\Autodesk\\REVIT\\Addins\\2013
  2. 所有MyApplication-2014是:C:\\ProgramData\\Autodesk\\REVIT\\Addins\\2014
  3. System.Data.SQLite.dll是:C:\\Windows\\Microsoft.NET\\assembly\\GAC_64

安裝程序的真正用處是源文件夾/文件(來自上述3)並將它們複製到目標位置。這也是我的C#腳本所做的(儘管它使用IO庫)。我需要爲WiX做些什麼?我感到很困惑。

我還需要創建一個合併模塊。

謝謝。

+1

僅僅在你的文件夾結構上運行[Heat](http://wixtoolset.org/documentation/manual/v3/overview/heat.html)還不足以開始嗎? – rene

+0

對不起 - 什麼是熱,它有什麼作用? – theGreenCabbage

+0

熱是收割機。如果你按照我提供的鏈接,你會發現它會根據它在文件夾結構中找到的文件爲你生成一個wxs文件。然後可以將wxs文件鏈接(使用燈光)和編譯(使用蠟燭)到msi文件。通過查看生成的wxs文件,您可以學到很多東西,並且可以輕鬆擴展 – rene

回答

2

我的開源工具ISWIX在Visual Studio中具有項目模板以幫助將安裝程序剔除。還有一個用於將文件創作到合併模塊的圖形用戶界面。這裏有一個article,帶有步驟和視頻,向您展示了體驗。

+0

嗨克里斯托弗。我對軟件開發行業相當陌生(所以這是我第一次創建安裝程序)。你能告訴我合併模塊是什麼,我怎樣才能通過Visual Studio Express 2012創建它?爲了我的需要,您認爲我應該參考哪些代碼示例? – theGreenCabbage

+0

VS Express被鎖定。但是,如果你安裝VS Isolated Shell,那麼我會註冊我的項目模板。因此,請在Visual Studio Express中維護您的.NET代碼,並在Visual Studio Isolated Shell中維護您的安裝程序代碼。 http://blog.iswix.com/2011/03/installation-collaboration-workflows.html –

+0

謝謝你的回答@Christopher Painter。但是,您能否向我解釋合併模塊是什麼以及它做了什麼?我很快將此應用程序提交給Autodesk,並且與msi安裝程序一起,我還需要提交一個msm合併模塊。 – theGreenCabbage

相關問題