[VS2010]安裝專案設定低版的 .Net Framework 卻需要高版的 .Net Framework 或其他元件


常常在論壇看到,比如說使用 VS2008 或 VS2010 ,欲封裝只有需要 .Net 2.0 的專案時,安裝時卻通知需要 .Net 3.5 以上的版本這類問題。

這個原因是封裝部署專案預設就是用 .Net 高版號的,所以手動設定時特別需要注意,尤其是 setup.msi 這部分。

安裝時,可直接執行 setup.msi 或點選 setup.exe 來呼叫 setup.msi ,所以須分別針對這兩地方檢查。

檢查時可以只執行 setup.msi ,若只執行 setup.msi 要你裝 .Net 3.5 以上版本,就是setup.msi 設錯,否則就是 setup.exe 設錯。設定的畫面分別如下:

Setup.exe 檢查「必要條件」:

必要條件

Setup.msi 檢查「啟動條件」:

啟動條件

若是使用光碟提供部署軟體,也可以把 .Net framework 安裝程式一同放在安裝光碟內,例如上方啟動條件的 InstallUrl 就是表示在子目錄下有安裝檔,此種情況就會直接安裝子目錄內的安裝檔,一般簡單的元件也可以這樣要求安裝進去,因為必要條件的增加比較麻煩。

必要條件的增加可參考這兩篇:

  1. [VSNET] 推薦 安裝條件工具 Bootstrapper Manifest Generator
  2. [VS2008]封裝部署專案必要條件找不到 MDAC 2.81時…

我上方必要條件比別人多的原因,就是這樣加進去的,如果不熟悉的人,在啟動條件中加入自訂安裝會比較方便。

VS2010 的預設路徑為:C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages

我目前 VS2010 的必要條件可參考下圖,比標準的 VS2010 多一點東西,因為我要開舊版的專案,所以我把舊版的 VS2005/VS2008 的必要條件都放進去了:

必要條件 2

必要條件 3

Categories: 封裝部署, 技術分享 | 9 則迴響

文章分頁導航

9 thoughts on “[VS2010]安裝專案設定低版的 .Net Framework 卻需要高版的 .Net Framework 或其他元件

  1. player

    或許我遇過類似的問題
    用VS2005開發C++(MFC)的AP
    編譯成x86 (MFC動態link)
    AP出去時, 連同MFC的dll檔一起包出去
    可是就是有人的Windows不能跑該AP
    到MS官網把該版MFC的3種平台版本的RunTime的安裝檔也給對方
    還是有問題
    最後只好重新編譯成MFC靜態Link(AP的Size會變肥)
    才搞定

    • MFC 並不需要 .Net framework ,跟此篇關係不大。

      • player


        我是指開發工具對於RunTime的相關題示
        並不是那麼完整
        (並不是指.Net Framework)

        尤其是很多時候
        都要猜猜看在那一邊?

        例如 .msi檔就有Windows Installer多種版本
        (這個基本上回朔相容,還好)

        或是 MS-XML也有多種版本,有時候安裝程式就被榜死在特定的MS-XML版本上
        (這個問題比較大,因為你通常是有裝了新版的MS-XML,但是你不知道你的安裝程式需要那一版的MS-XML)

        • 我覺得這是開發者的問題。
          軟體開發前就應該設定好執行環境,所以執行環境的變更,是在設計的變化中,而不是佈署時才發現自己不知道。

  2. amanda

    請問一下,我使用相同的方法,但啟動版本設為.NET Framework 4 Client Profile,在路徑的部份填入檔名:dotNetFx40_Client_x86_x64.exe,compiler時出現錯誤

    錯誤 4 必要條件的安裝位置沒有設定為「元件廠商的網站」,且磁碟上找不到項目 ‘Microsoft .NET Framework 4 Client Profile (x86 and x64)’ 中的檔案 ‘DotNetFX40Client\dotNetFx40LP_Client_x86_x64ja.exe’。如需詳細資訊,請參閱 [說明]。 E:\Amanda\vs2010\SetupMyPhoto\SetupMyPhoto\SetupMyPhoto.vdproj SetupMyPhoto

    這看起來是去抓取jp,日本的framwork檔,但我指定的檔名是dotNetFx40_Client_x86_x64.exe,不知為何會變成這個?

    • 你的 DotNetFX40Client 目錄有拷貝到 setup.exe 目錄內嗎?
      例如:
      E:\Amanda\vs2010\SetupMyPhoto\SetupMyPhoto\Debug\DotNetFX40Client\dotNetFx40_Client_x86_x64.exe

  3. amanda

    您好,我有擺在那個位置下同樣資料夾名稱同樣檔案名稱,可是他的錯誤訊息還是找不到「dotNetFx40LP_Client_x86_x64ja.exe」,請問我還可以往那個方向查呢?

    • 我沒裝 x64 的作業系統,所以如果是 x64 造成的問題,那我就不知道了。
      另外請確認這個檔案的呼叫是 setup.exe 還是 setup.msi ,直接執行 setup.msi 是否會需要這個執行檔?

  4. 引用通告: [VS2010] 封裝部署時將必要條件一併散佈 « 鄭子璉

發表留言

在 WordPress.com 建立免費網站或網誌.