使用Visual Studio 2012部署时如何移除ConnectionString

4
我正在处理一个涉及两个Web应用程序的项目,其中一个以长时间运行的进程方式托管(使用appfabric),另一个则是普通的MVC应用程序。 它们共享相同的datacontext,因此具有相同的connectionString。 appfabric应用程序作为主要应用程序的子应用程序部署,利用了web.config的继承(我们不希望在web config中重复连接字符串)。
我的问题是,在新的Visual Studio 2012发布向导中,即使我取消选中“在运行时使用此连接字符串”框,连接字符串也会自动添加。
我还尝试使用以下web config变换:
  <connectionStrings>
      <add xdt:Transform="RemoveAll" />
  </connectionStrings>

发布后,连接字符串仍然在我的Web配置文件中。

有什么建议吗?我考虑彻底删除该子应用程序的Web配置文件,但这不是理想的解决方案。


其他的变换是否被应用?它们全部被跳过了吗,还是只有这一个被跳过了? - Heather
1
你把转换逻辑放在了 Web.config.Release 中(假设你是在名为“Release”的配置中发布),对吗? - Middas
是的,对于你们两个都是可以的。使用Release和transform是可行的: 例如,以下内容可以正常应用: <system.web><compilation xdt:Transform="RemoveAttributes(debug)" /> </system.web> - Etienne
我不能确切地说你需要做什么,但是当我在我的一个项目中解决转换问题时,这个工具非常有帮助。它允许我预览转换的结果,以便我可以进行更改并立即查看影响。这个工具 - Brian S
我打算在微软论坛上试一试,因为对我来说,这似乎是他们发布向导中的一个错误。我的猜测是,他们的发布向导首先应用配置转换,然后将与项目中使用的任何数据上下文相对应的所有连接字符串放置在其中。 - Etienne
1个回答

6

答案可以在这里找到: Web Deploy /发布是否添加了未知的连接字符串?

通过编辑XML将此项目属性添加到.csproj文件中:

<Project>
    <PropertyGroup>

         <AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>

   ...
    </PropertyGroup>
...
</Project>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接