我正在努力让 web.config 转换与自动化构建一起使用。
我们有一个相当大的解决方案,包含一个 ASP.NET Web 应用程序和八个类库。我们有三名开发人员致力于该项目,到目前为止,每个人都已将解决方案“发布”到本地文件夹,然后使用文件复制来部署到测试服务器。我正在尝试使用 TFS 2010 建立自动化构建/部署解决方案。
我创建了一个构建定义,并在构建过程模板中添加了对 msdeploy.exe 的调用,以将应用程序部署到测试服务器。到目前为止,一切都很好!
然后我尝试实现 web.config 转换,但无法让它们工作。如果我在我的电脑上本地构建和发布,“发布”文件夹包含正确的、转换后的 web.config 文件。
使用团队构建,转换不会发生,我只有基本的 web.config 文件。
我尝试在 Web 应用程序的项目文件中添加构建后步骤,正如其他人所建议的那样,类似于:
<target name="AfterBuild">
<TransformXml Source="Web.generic.config"
Transform="$(ProjectConfigTransformFileName)"
Destination="Web.Config" />
</target>
但这会失败,因为源 web.config 文件有一个“应用程序设置”部分。我收到错误
找不到元素“applicationSettings”的架构信息。
我已经看到有关在构建定义中向 MSBuild 任务添加参数的建议,例如
/t:TransformWebConfig /p:Configuration=Debug
但是,当构建类库项目时,这种情况就会失败,大概是因为它们没有 web.config 文件。
有任何想法吗?和其他人一样,我认为这会“有效”,但显然不行。这是我需要开始工作的最后一部分,它让我发疯。我不是 msbuild 专家,请简单明了!
提前致谢。
Doug