我在尝试使用自动化构建实现web.config转换,但是遇到了困难。
我们有一个相当大的解决方案,包含一个ASP.NET Web应用程序和八个类库。我们有三名开发人员在项目上工作,迄今为止,每个人都将解决方案“发布”到本地文件夹,然后使用文件复制部署到测试服务器。我正在尝试使用TFS 2010实现自动化构建/部署解决方案。
我创建了一个构建定义,并在构建过程模板中添加了对msdeploy.exe的调用,以将应用程序部署到测试服务器。目前为止,一切顺利!
然后,我尝试实现web.config转换,但我无法让它们起作用。如果我在我的PC上本地构建和发布,"发布"文件夹会有正确的转换后的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专家,请保持简单明了!谢谢您提前的帮助。
道格