加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:59:15 所属栏目:asp.Net 来源:网络整理
导读:我正在努力让web.config转换与自动构建一起使用. 我们有一个相当大的解决方案,包含一个ASP.NET Web应用程序和八个类库.我们有三个开发人员从事该项目,到目前为止,每个人都已将解决方案“发布”到本地文件夹,然后使用文件副本部署到测试服务器.我正在尝试使用
我正在努力让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
How can I get TFS2010 to run MSDEPLOY for me through MSBUILD?

下一部分要求您的构建定义具有设置为执行发布的正确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=testserverbuildaccount 
/p:Password=buildacctpassword 
/p:DeployIisAppPath="MyApp - TESTING"

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读