如何使用Wix更改LightSwitch web.config文件中的默认GUID连接字符串?

时间:2016-01-14 05:05:17

标签: wix visual-studio-lightswitch

我有一个LightSwitch HTMLClient应用程序,必须使用Wix作为部署解决方案。

设置Wix项目,以便外部转换文件将修改web.config文件中使用的默认连接字符串:

<util:XmlFile Id="SetConnectionString"
    File="[#web.config]"
    Action="setValue"
    ElementPath="configuration/connectionStrings/add[\[]@name = 'Example_App_DatabaseData'[\]]"
    Name="connectionString"
    Value="[CONFIG_CONNECTIONSTRING]" />

以前我的web.config文件中有三个连接字符串:

<connectionStrings>
  <add name="_IntrinsicData" connectionString="Data Source=|SqlExpressInstanceName|;AttachDbFilename=|ApplicationDatabasePath|;Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=True" />
  <add name="Example_App_DatabaseData" connectionString="Data Source=db_server\sql01;Initial Catalog=Example.App.Database;Integrated Security=True" />
  <add name="5f204b97-b94a-4154-b050-2f3f6d863ea4" connectionString="Data Source=db_server\sql01;Initial Catalog=Example.App.Database;Integrated Security=True" />
</connectionStrings>

但是我最近发现默认的LightSwitch GUID connectionString在构建时变成了重复的“Example_App_DatabaseData”connectionString,所以我最终在web.config文件中找到了重复的条目。

问题在于,如果我删除'Example_App_DatabaseData'connectionString,那么当我尝试应用我的转换文件时,因此设置值ConnectionsString实际上不存在。

有没有办法通过Wix设置默认的GUID connectionString而不需要硬编码的connectionString名称?或者只是让最终的web.config看起来像这样:

<connectionStrings>
  <add name="_IntrinsicData" connectionString="Data Source=|SqlExpressInstanceName|;AttachDbFilename=|ApplicationDatabasePath|;Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=True" />
  <add name="Example_App_DatabaseData" connectionString="Data Source=db_server\sql01;Initial Catalog=Example.App.Database;Integrated Security=True" />
</connectionStrings>

提前致谢!

0 个答案:

没有答案