在.NET 4.0中使用msbuild,我可以使用“Package”目标构建Web项目,并且将该包放在一个zip文件中做得很好.但是,当我看到那里的web.config,它没有转换,它有“$(ReplacableToken_Web_SiteConnection-Web.config Connection String_0)”
我可以运行“TransformWebConfig”目标,它将做适当的转换,但只是在自己的仓库中.
我还可以运行“Build”目标并传递“DeployOnBuild = True; DeployTarget = MSDeployPublish”属性,它将在我的服务器上部署包,并完成正确的web.config转换.
但是,如果我要手动将软件包部署到服务器上,那么如何使用“TransformWebConfig”来执行“Package”,以便zip文件中有最终的web.config?
解决方法
如果你想跳过这个发生,那么你需要在你的构建中设置一个属性.你可以通过两种方法来实现
我会推荐#2.对于这种情况,在名称为{ProjectName} .wpp.targets的项目文件的同一目录中创建一个新文件,其中{ProjectName}是项目的名称.然后在这个文件的内部,你应该放置以下内容.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup> <AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings> </PropertyGroup> </Project>
在这种情况下,您正在设置AutoParameterizationWebConfigConnectionStrings属性,该属性告诉Web发布管道不将这些{}占位符插入到连接字符串的web.config中.