WIX - 如何解决错误LGHT0094:未解析的符号引用

时间:2014-03-20 07:55:26

标签: wix

我正在使用WIX 3.8来创建我的设置文件。这是我的Product.wxs

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="{D16E42B5-3C6F-4EE5-B2F4-727BF8B74A92}" Name="My setup" Language="1033" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="9279b740-8419-45c4-9538-6a45f8e949c7">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <Media Id="1" Cabinet="WCF.cab" EmbedCab="yes" />
        <Feature Id="ProductFeature" Title="Wcf.Setup" Level="1">
            <ComponentGroupRef Id="WCFComponents" />
        </Feature>
        <Property Id="WIXUI_INSTALLDIR" Value="INETPUB" />
    </Product>
    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="INETPUB" Name="Inetpub">
                <Directory Id="INSTALLFOLDER" Name="WCF">
                </Directory>
            </Directory>
        </Directory>
    </Fragment>
</Wix>

这是构建文件

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <WebSiteSource>..\WCF\</WebSiteSource>
        <SetupF>..\Setup\</SetupF>
        <PublishF>publish\</PublishF>
        <Publish>$(SetupF)$(PublishF)</Publish>
        <WebSiteContentCode>WebSiteContent.wxs</WebSiteContentCode>
        <WebSiteContentObject>WebSiteContent.wixobj</WebSiteContentObject>
        <MsiOut>bin\Release\WCF.msi</MsiOut>
        <WixPath>C:\PROGRA~2\WIXTOO~1.8\bin\</WixPath>
    </PropertyGroup>
    <ItemGroup>
        <WebSiteContent Include="$(WebSiteContentCode)" />
    </ItemGroup>
    <ItemGroup>
        <WixCode Include="Product.wxs" />
        <WixCode Include="$(WebSiteContentCode)" />
    </ItemGroup>
    <ItemGroup>
        <WixObject Include="Product.wixobj" />
        <WixObject Include="$(WebSiteContentObject)" />
    </ItemGroup>
    <Target Name="Build">
        <MSBuild
            Projects="..\TMS.sln"
            Targets="ReBuild"
            Properties="Configuration=Release" />
    </Target>
    <Target Name="PublishWebsite">
        <Message Text="Removing publish directory: $(SetupF)"/>
        <RemoveDir Directories="$(SetupF)" ContinueOnError="false" />
        <Message Text="Start to publish website" Importance="high" />
        <MSBuild
            Projects="..\\WCF\WCF.csproj"
            Targets="ResolveReferences;_CopyWebApplication"
            Properties="OutDir=$(Publish)bin\;WebProjectOutputDir=
                        $(Publish);Configuration=Release" />
    </Target>
    <Target Name="Harvest">
        <Exec
            Command='$(WixPath)heat dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg WCFComponents -var var.publishDir -gg -out $(WebSiteContentCode)'
            ContinueOnError="false"
            WorkingDirectory="." />
    </Target>
    <Target Name="WIX">
        <Exec
            Command='"$(WixPath)candle" -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -dpublishDir=$(Publish) -dMyWebResourceDir=. @(WixCode, &apos; &apos;)'
            ContinueOnError="false"
            WorkingDirectory="." />
        <Exec
            Command='"$(WixPath)light" -ext WixIISExtension -ext WixUIExtension -ext WixUtilExtension -ext WixSqlExtension -out $(MsiOut) @(WixObject, &apos; &apos;)'
            ContinueOnError="false"
            WorkingDirectory="." />
        <Message Text="Install package has been created." />
    </Target>
    <Target Name="DeleteTmpFiles">
        <RemoveDir Directories="$(Publish)" ContinueOnError="false" />
        <RemoveDir Directories="$(SetupF)" ContinueOnError="false" />
        <Delete Files="@(WixObject);@(WebSiteContent)" />
    </Target>
</Project>

我总是收到错误消息:Product.wxs(10):error LGHT0094:“Product:{D16E42B5-3C6F-4EE5-B2F4-727BF8B74A92}”一节中对符号'WixComponentGroup:WCFComponents'的未解析引用。

我将此主题http://blog.bartdemeyer.be/2013/10/create-an-installer-for-website-with-wix-part-1/中的源代码完全复制到我的项目中,但此处的源代码运行属性但我的不起作用。

你能帮我解决这个问题吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

我通过从命令行中删除Build参数解决了这个问题。

应该是:

msbuild setup.build /t:Build;PublishWebSite;Harvest;WIX;DeleteTmpFiles

原因是您无法构建解决方案,因为无法构建MyProject.Setup