我正在尝试使用 VS2010 和 WIX 进行 Web 应用程序设置,它工作正常,但我唯一要改进的是当您构建安装项目时,它将 Web 应用程序输出放在 bin 文件夹内的单独文件夹中,所以如果我想在服务器中安装该 Web,我需要复制 msi 文件 + Web 应用程序文件夹。
有什么方法可以构建安装项目以将该文件夹包含在 msi 包中?
这是我的 .wixproj 文件:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.7</ProductVersion>
<ProjectGuid>{7bc848bd-4069-429e-847e-4f964a148362}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Tgw.WebClient.Goodyear.Setup</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="MainConfiguration.wxs" />
<Compile Include="Tgw.WebClient.Standalone.Web.wxs" />
<Compile Include="WIXUI_Screens.wxs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\Strings.wxl" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Standalone\Source\Tgw.WebClient.Standalone.Web\Tgw.WebClient.Standalone.Web.csproj">
<Name>Tgw.WebClient.Standalone.Web</Name>
<Project>{f50a4ff0-6878-4a27-bce7-4956d1ae27db}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>
</RefProjectOutputGroups>
<RefTargetDir>TARGETINSTALLDIRECTORY</RefTargetDir>
<WebProject>True</WebProject>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixNetFxExtension">
<HintPath>$(WixExtDir)\WixNetFxExtension.dll</HintPath>
<Name>WixNetFxExtension</Name>
</WixExtension>
<WixExtension Include="WixIIsExtension">
<HintPath>$(WixExtDir)\WixIIsExtension.dll</HintPath>
<Name>WixIIsExtension</Name>
</WixExtension>
<WixExtension Include="WixUtilExtension">
<HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
<Name>WixUtilExtension</Name>
</WixExtension>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<ItemGroup>
<Content Include="Configuration\Conditions.wxi" />
<Content Include="Configuration\Settings.wxi" />
<Content Include="Resources\CommanderApp_32.ico" />
<Content Include="Scripts\CreateWebApplicationConfigFiles.ps1" />
</ItemGroup>
<ItemGroup>
<Folder Include="Configuration" />
<Folder Include="Scripts" />
<Folder Include="Resources" />
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.-->
<Import Project="$(WixTargetsPath)" />
<Target Name="BeforeBuild">
<MSBuild Projects="%(ProjectReference.FullPath)" Targets="Package" Properties="Configuration=$(Configuration);Platform=AnyCPU" Condition="'%(ProjectReference.WebProject)'=='True'" />
<PropertyGroup>
<LinkerBaseInputPaths>%(ProjectReference.RootDir)%(ProjectReference.Directory)obj\$(Configuration)\Package\PackageTmp\</LinkerBaseInputPaths>
<DefineConstants>BasePath=%(ProjectReference.RootDir)%(ProjectReference.Directory);</DefineConstants>
</PropertyGroup>
<HeatDirectory OutputFile="%(ProjectReference.Filename).wxs" Directory="%(ProjectReference.RootDir)%(ProjectReference.Directory)obj\$(Configuration)\Package\PackageTmp\" DirectoryRefId="TARGETINSTALLDIRECTORY" ComponentGroupName="%(ProjectReference.Filename)_Project" AutogenerateGuids="true" SuppressCom="true" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" ToolPath="$(WixToolPath)" Condition="'%(ProjectReference.WebProject)'=='True'" PreprocessorVariable="var.BasePath" />
</Target>
</Project>
这是我的 .wsx 自动生成的一部分:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="TARGETINSTALLDIRECTORY">
<Component Id="cmp975763C4E1B3C939E4CD1957234F6BAC" Guid="*">
<File Id="filAB034261C737C6286CB0722DB3566B4F" KeyPath="yes" Source="$(var.BasePath)\About.aspx" />
</Component>
<Component Id="cmp0ADE3CAB02CA0E4E0C08810D00C09DEB" Guid="*">
<File Id="fil2CF0D37E848154468D37906E1D0B2FB8" KeyPath="yes" Source="$(var.BasePath)\AspWebStart.aspx" />
</Component>
</Directory>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Tgw.WebClient.Standalone.Web_Project">
<ComponentRef Id="cmp975763C4E1B3C939E4CD1957234F6BAC" />
<ComponentRef Id="cmp0ADE3CAB02CA0E4E0C08810D00C09DEB" />
</ComponentGroup>
</Fragment>
</Wix>