2011-03-14 89 views
1

我只是在Visual Studio 2010,Windows 7中使用Wix 3.5。我無法自定義Preprocessor Extension運行。我在.NET 3.5中創建了擴展項目。和編譯的.dll文件複製到維克斯3.5程序文件,加上設置在擴展項目屬性參考路徑維克斯項目構建還是失敗,我的擴展名「未定義預處理功能」。Wix 3.5預處理器擴展 - undefined預處理函數

例子: 擴建工程:WixFileVersionExtension(從wixfileversionext.codeplex.com) 維克斯程序文件: 「C:\ Program Files文件\的Windows Installer XML v3.5版本\ BIN」

我缺少的東西? Google無法回答我。


更新: 這是一個錯誤,並已在這裏報道http://sourceforge.net/tracker/?func=detail&atid=642714&aid=3212304&group_id=105970


更新: 不要使用參考路徑在VS項目屬性作爲這裏所說http://wix.sourceforge.net/manual-wix3/votive_property_pages.htm「引用路徑」部分允許您定義要在查找引用時使用的路徑(WiX擴展和維克斯庫)

或複製擴展DLL到維克斯文件夾作爲這裏所說http://wix.sourceforge.net/manual-wix3/extension_development_intro.htm與其他所有的WiX擴展DLL

解決方案旁邊放置的WiX的EXE一起:添加引用瀏覽擴展dll文件 INSTEAD OF添加引用項目即使您在一個解決方案中有這些項目。如果你想跟着配置,調試發佈,卸載維克斯項目,編輯.wixproj文件並更改..\WixExtension\bin\Debug\WixExtension.dll..\WixExtension\bin\$(Configuration)\WixExtension.dll所以它會變成這個樣子:

<ItemGroup> 
    <WixExtension Include="WixExtension"> 
     <HintPath>..\WixExtension\bin\$(Configuration)\WixExtension.dll</HintPath> 
     <Name>WixExtension</Name> 
    </WixExtension> 
    </ItemGroup> 

注: Wix Visual Studio項目只會假設它是Wix Extension,無論何時您只要添加引用dll文件(瀏覽)並且也只假定它是一個應用程序將包含在安裝程序每當您增加引用項目

回答

2

您需要添加對實際擴展程序集(.dll)的引用,以便Candle.exe加載它。命令行相當於-ext。

+0

我明白了...首先我嘗試添加引用,但不工作。然後我意識到我需要將dll複製到wix文件夾中,但我刪除了該引用。讓我試試兩個添加引用,並將該DLL在明天的wix文件夾中。我使用的是Visual Studio Wix Project,而不是命令行中的MSBuild,它是否與Candle.exe相關? – CallMeLaNN 2011-03-14 17:17:25

+2

Candle.exe是WiX編譯器。擴展不必位於WiX二進制文件目錄中;您可以在Visual Studio中的.wixproj中添加引用。 – 2011-03-14 21:01:24

+0

是最後一次我在VS項目和Wix文件夾中設置**參考路徑**來仔細檢查,但沒有成功。現在我嘗試添加引用和設置路徑(+複製到wix文件夾),但也無法正常工作。它仍然沒有識別自定義前綴。 ------------------- 等一下,我看到沒有-ext,我在VS中設置的** Reference Path **沒有包含在Build輸出中。 Wix 3.5中的Wix Votive版本似乎存在缺陷。我想在SourceForge中發送錯誤報告,但他們轉移到了CodePlex。 – CallMeLaNN 2011-03-15 00:58:13