2014-04-17 45 views
1

我把這個作爲一個評論在WIX detect .net 4.5找不到PropertyRef NETFRAMEWORK45集?

How can I check .NET framework 4.5 prerequestics in WiX

但我覺得我需要問這個作爲一個單獨的問題。我沒有得到安裝來捕獲.NET 4.5的安裝。我安裝了.NET 4.5。我提到了說明。但是,即使4.5安裝,我仍然會得到條件彈出消息。我也跟着中的指示進行:

http://wixtoolset.org/documentation/manual/v3/customactions/wixnetfxextension.html

http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html

我使用的是最新的WiX的3.8版本,其中甚至以下就是我認爲是方向,沒有.NET 4.5是公認的。

1)與頂級威克斯標籤

xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" 

2)添加propertyRef標籤WXS更新(我相信它在產品部分去 - 可能是一個錯誤)

<WIX> 
    <PRODUCT> 

    <PropertyRef Id="NETFRAMEWORK45"/> 

3.)添加條件塊,這也是我認爲去在相同的水平PropertyRef,以產品部分

<Condition Message="This application requires .NET Framework 4.5. Please install the .NET Framework then run this installer again."> 
    <![CDATA[Installed OR NETFRAMEWORK45]]> 
</Condition> 

4)我用蠟燭光在命令行中從一個bat文件

echo running the packaging step: wix candle DEV %VERSION% 

call "candle" myproject.wxs -ext WiXNetFxExtension -ext WixUtilExtension -I.\Includes\Dev -dVersion="%VERSION%" -dShortVersion="%SHORTVERSION%" -dBuildTime="%BuildTime%" > dev1.log 

echo running the packaging step: wix light DEV 

call "light" -sice:ICE50 -sice:ICE61 -sice:ICE64 -ext WiXNetFxExtension -ext WixUtilExtension -o myproject.msi myproject.wixobj > dev2.log 

無論登錄似乎顯示出任何麻煩

dev1.log:

的Windows Installer XML工具集編譯器版本3.8.1128.0版權所有 (c)Outercurve基金會。版權所有。

myproject.wxs

dev2.log有一些警告,但沒有相關的:

的Windows Installer XML工具集鏈接器版本3.8.1128.0版權所有(C) Outercurve基金會。版權所有。

C:\ SVN \ myproject_Trunk \客戶\生成\威克斯\ myproject.wxs(251):錯誤 LGHT0204:ICE38:組件安裝NonAdvertisedShortcut到用戶 輪廓。它必須使用HKCU下的註冊表項作爲其KeyPath,而不是 文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(259): 錯誤LGHT0204:ICE38:組件NonAdvertisedShortcut2安裝到 用戶配置文件。它必須使用HKCU下的註冊表項作爲其KeyPath, 不是文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(357) :警告LGHT1076:ICE40:REINSTALLMODE在屬性 表中定義。這可能會造成困難。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(251):錯誤 LGHT0204:ICE43:組件NonAdvertisedShortcut沒有公佈 快捷方式。它應該使用HKCU下的註冊表項作爲其KeyPath,而不是 文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(259): 錯誤LGHT0204:ICE43:組件NonAdvertisedShortcut2有 未公佈的快捷方式。它應該使用HKCU下的註冊表項作爲 其KeyPath,而不是文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(30):警告 LGHT1076:ICE48:目錄'DRIVE.C'似乎在 屬性表中被硬編碼爲本地驅動器。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(254):警告 LGHT1076:ICE90:快捷方式'ScKey001'的目錄是 公共屬性(ALL CAPS)並且位於用戶配置文件目錄。如果ALLERSERS屬性的值在UI序列的 中發生更改,則此 會導致問題。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(260):警告 LGHT1076:ICE90:快捷方式'ScKey002'的目錄爲 公共屬性(ALL CAPS)並且位於用戶配置文件目錄。如果ALLERSERS屬性的值在UI序列的 中發生更改,則此 會導致問題。

我使用-v選項運行燈光,並且還刪除了ICE選項。

看來擴展沒有打包我的MSI。

運行msiexec以獲得詳細的日誌似乎也沒有透露任何東西。

我覺得我在某個地方犯了一個簡單的錯誤。

Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full的註冊表具有相應的版本和發行版值。

回答

1

回答我的問題,通過

該項目最初是由MSIbuild和維克斯暗實用程序創建工作後,用於構建WXS。它包括自定義對話框和安裝順序。

通過刪除自定義安裝順序和對話框標籤,然後添加-ext WixUIExtension,我能夠在.NET 4.5 PC和尚未安裝.NET 4.5的PC上成功查看正確的消息。