我有一个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>
提前致谢!