- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下设置:ASP.Net MVC .Net 4.0 解决方案,其中包含 5 个项目,以及多个解决方案配置(Site1-Stage、Site1-Live、Site2-Stage 等)。原因很简单——我们将相同的代码库部署到具有不同配置设置的多个服务器。
为了管理这些配置,我使用了 Troy Hunt 在他的 You're deploying it wrong! TeamCity, Subversion & Web Deploy part 1: Config transforms 中描述的方法。文章。简而言之 - 我的 SVN 存储库中没有 web.config,而是在项目 AfterBuild 目标中有 Web.Base.Config、Web.Site1-Stage.Config 等和 XmlTransformation 任务。在构建期间,所需的 web.config 将根据所选配置生成:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterBuild">
<TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" StackTrace="true" />
</Target>
msbuild MySolution.sln /P:configuration=Site1-Stage /t:rebuild
msbuild MySolution.sln /P:configuration=Site1-Stage /t:rebuild /P:DeployOnBuild=True
"MySolution.sln" (rebuild target) (1) -> "MySolution\MyWebProj.csproj" (Rebuild target) (3) -> (PreTransformWebConfig target) -> C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.5\Web\Microsoft.Web.Publishing.targets(1399,5): error : Copying file Web.config to obj\Site1-Stage\TransformWebConfig\original\Web.config failed. Could not find file 'Web.config'. [MySolution\MyWebProj.csproj]
msbuild MySolution.sln /P:configuration=Site1-Stage /t:rebuild,AfterBuild /P:DeployOnBuild=True
最佳答案
也许使用“BeforeBuild”?
顺便说一句,你在 csproj 中包含了 web.config 吗?我相信大多数发布事件依赖于项目中的项目而不是文件夹中的项目。您可以在项目中包含 web.config,同时仍将其从源代码管理中排除。
关于MSBuild - 如何在部署时强制 "AfterBuild"目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933314/
我是一名优秀的程序员,十分优秀!