xslt - WiX - 根据环境将编译后的 web.config 复制到网站根目录

标签 xslt wix guid

作为 WiX 安装的一部分,我将所有转换/编译的 web.config 文件复制到安装目录。编译后的 web.config 的名称格式为 web.{ENV}.config。在我的安装 UI 中,我创建了一个自定义对话框,在其中解析 ENV 并填充组合框,以便用户可以选择我们部署到的环境。该组合框设置一个属性 ENV。

我需要了解如何使用此属性将已安装的配置文件复制到网站根目录。

更新:@Rob_Mensching - 您的解决方案有效,但是,在编译时 WiX 强制我为每个此类组件创建一个 GUID。我有办法避免吗?问题是我将通过在我的 wxs 文件上运行 XSLT 来生成这段代码,该文件是使用热量生成的;我无法使用 XSLT 生成 GUID(或者我可以吗?)

这就是我的代码现在的样子:

<ComponentGroup Id='web.config' Directory='CONFIGLOCATION'>
  <Component Id='CopyWebConfigForDev1' Guid='{F207C26A-5D9C-4F19-96A3-D818BB226EFC}' >
    <Condition>ENV="Dev1"</Condition>
    <CopyFile Id='CopyDev1Config' FileId='fil9C4CFE42035F1A63180142352CF441BC' DestinationDirectory='CONFIGLOCATION' DestinationName='web.config'/>
  </Component>
  <Component Id='CopyWebConfigForQA1' Guid='{F207C26A-5D9C-4F19-96A3-D818BB226EFC}' >
    <Condition>ENV="QA1"</Condition>
    <CopyFile Id='CopyQA1Config' FileId='fil12F8B50F03F1BD91A579F6B6CE7195DF' DestinationDirectory='CONFIGLOCATION' DestinationName='web.config'/>
  </Component>
</ComponentGroup>

最佳答案

我会使用“组件条件”b 来执行此操作。像下面这样的东西应该可以很好地工作:

<Fragment>
  <ComponentGroup Id='web.config' Directory='ConfigFolder'>
    <Component>
      <Condition>ENV~="Production"</Condition>
      <File Source='web.Production.config'>
         <CopyFile DestinationDirectory='INSTALLFOLDER' DestinationName='web.config' />
      </File>
    </Component>

    <Component>
      <Condition>ENV~="Test"</Condition>
      <File Source='web.Test.config'>
         <CopyFile DestinationDirectory='INSTALLFOLDER' DestinationName='web.config' />
      </File>
    </Component>
  </ComponentGroup>
</Fragment>

条件语法记录如下:http://msdn.microsoft.com/en-us/library/windows/desktop/aa368012(v=vs.85).aspx

关于xslt - WiX - 根据环境将编译后的 web.config 复制到网站根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377149/

相关文章:

algorithm - GUID 或 GUID 的 SHA1 哈希值之间发生冲突的可能性更大吗?

.net - 如何在某些文本中找到所有 Guid?

php - 使用 php XSLTProcessor 的 XML/XSLT 输出编码问题

javascript - 将外部 javaScript 函数调用到 XSLT 文件中

wix - 如何使用 WiX 设置服务的恢复选项?

wix - 访问延迟的 .net 自定义操作中的 wix 属性值

rest - 使用 GUID 主键的 OData V4 REST

xml - 使用 XSL 合并后如何处理来自多个 XML 文件的所有数据

xslt - 使用 XSLT 合并 XML 节点

wix - 刻录 Bootstrap 未正确检测到Windows安装程序版本