繁体   English   中英

Team Build 2010和web.config转换的问题

[英]Problem with Team Build 2010 and web.config transformation

我正在努力让web.config转换与自动构建一起使用。

我们有一个相当大的解决方案,包含一个ASP.NET Web应用程序和八个类库。 我们有三个开发人员从事该项目,到目前为止,每个人都已将解决方案“发布”到本地文件夹,然后使用文件副本部署到测试服务器。 我正在尝试使用TFS 2010实现自动构建/部署解决方案。

我创建了一个构建定义,并在构建过程模板中添加了对msdeploy.exe的调用,以将应用程序部署到测试服务器。 到现在为止还挺好!

然后我尝试实现web.config转换,我只是无法让它们工作。 如果我在PC上本地构建和发布,则“publish”文件夹具有正确的转换后的web.config文件。

使用团队构建,转换不会发生,我只有基本的web.config文件。

我尝试在Web应用程序的项目文件中添加一个构建后的步骤,正如其他人所建议的那样,类似于:

<target name="AfterBuild">
<TransformXml Source="Web.generic.config"
             Transform="$(ProjectConfigTransformFileName)"
             Destination="Web.Config" />
</target>

但是由于源web.config文件有一个“applicationSettings”部分,因此失败了。 我收到了错误

找不到元素'applicationSettings'的架构信息。

我已经看到了在构建定义中向MSBuild任务添加参数的建议

/t:TransformWebConfig /p:Configuration=Debug

但是,当构建类库项目时,这可能会失败,大概是因为它们没有web.config文件。

有任何想法吗? 像其他人一样,我认为这只会“正常工作”,但显然不是。 这是我需要工作的最后一部分,这让我很生气。 我不是一个msbuild专家,所以简单明了!

提前致谢。

道格

我刚刚经历过这个。 我们的构建有点复杂,因为我们在一个解决方案中有8个类库和9个Web应用程序。 但流程是一样的。

首先摆脱你的后建立目标。 你不需要那个。

您需要使用MSDeployPublish服务。 这将要求在目标服务器上正确安装和配置它。 有关此部分的信息,请查看以下链接:

请注意,必须使用正确的用户权限正确配置相关服务器。 以下网站帮助我正确设置。

http://william.jerla.me/post/2010/03/20/Configuring-MSDeploy-in-IIS-7.aspx
http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html
如何让TFS2010通过MSBUILD为我运行MSDEPLOY?

下一部分要求您的构建定义具有设置为执行发布的正确MSBuild参数。 这些参数在构建定义的Process> 3.Advanced> MS Build Arguments行中输入。 这是一个提示:

(don't change the following for any reason)
/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSVC 
/p:SkipExtraFilesOnServer=True
/p:AllowUntrustedCertificate=True 

(These control where it's going)

/p:MSDeployServiceUrl="https://testserver.domain:8172/msdeploy.axd" 
/p:UserName=testserver\buildaccount 
/p:Password=buildacctpassword 
/p:DeployIisAppPath="MyApp - TESTING" 

显然,必须在目标服务器上的IIS中配置用户才能访问该axd(请参阅前面的链接)。 IisAppPath是目标服务器上的网站名称。

您不必为配置转换执行任何特殊操作,因为构建本身将为您处理。 只需在Process> 1的行中设置正确的设置。必需>要构建的项目>要构建的配置。

不要试图通过添加任务扑进构建过程模板做了部署,我跟着维沙尔·乔希的博客文章建议在这里

现在整个项目都已构建和部署,web.config转换也可以工作。 辉煌!

我现在有另一个问题需要解决! Web应用程序引用Web服务,构建过程会生成XmlSerializers dll。 但是,尽管构建正常,但它不会部署到Web主机。 我认为这需要一个新帖子!

道格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM