我来自Java Web应用程序的持续集成和持续交付(CI-CD)实现项目背景。现在我正在为基于.NET的项目工作。微软技术对我来说是全新的。它通过Jenkins为构建过程使用了MsBuild。我正在学习MsBuild。我读得越多,我对微软的这种做法就越困惑。带有各种环境中代码进度的msbuild
我注意到,将使用各种基于部署环境的配置和配置文件部署应用程序的每个环境都会执行msbuild。下面是
C:\\Program Files (x86)\\MSBuild\\12.0\\Bin\\MSBuild.exe" /p:Configuration=PIE /m:4 /nr:false src/myapp.sln
C:\\Program Files (x86)\\MSBuild\\12.0\\Bin\\MSBuild.exe" /p:Configuration=TEST /t:Rebuild /m:2 /p:DeployOnBuild=true /p:PublishProfile=TEST src/myapp.sln
C:\\Program Files (x86)\\MSBuild\\12.0\\Bin\\MSBuild.exe" /p:Configuration=STAGE /t:Rebuild /p:DeployOnBuild=true /p:PublishProfile=STAGE /m:2 SprintA/src/myapp.sln
我可能是错的2个不同的环境(PIE & TEST)一些MSBuild的命令,但我觉得代码被部署到两个环境(当从PIE编码进度进行测试)正在为每个不是真正的代码进度概念的环境构建。恕我直言,构建只需完成一次,并且只要代码中没有错误,就可以将其发展到后续测试/验证环境。各种环境特定设置通过包内的配置文件处理,容器(用于java应用程序的tomcat)通过读取/解析confif文件的参数启动。
有没有办法在.NET中处理这个问题?该应用程序部署在IIS
UPDATE: 我做的研究性阅读各种文档和博客的越多,我碰到使用msbuild
每个配置和部署/发布配置Web发布方法。这只是大众对.net项目的CICD所遵循的标准方式吗?
是的,这是一个反模式。你可以这样做,如果你使用可憎的MSDeploy,那么它会推动你走下去。进行单一构建的方式要好得多。您需要分离构建位和部署位。 –