【问题标题】:What decides the output files in MSBuild?什么决定了 MSBuild 中的输出文件?
【发布时间】:2016-04-11 09:44:33
【问题描述】:

从 CI-CD 的角度来看,我正在尝试查找在使用 msbuild.exepublish 选项时发布到 IIS 服务器的文件夹和文件(bin、obj、.dll 等)是什么。我不是 .NET 开发人员。在构建后发布时,哪些文件/文件夹将被推送到节点?

我的应用程序相当简单。 publish(或部署)或多或少是从 CI 服务器到 IIS 节点的一堆文件副本。用于构建和发布的命令是

bat '"C:\\MSBuild\\12.0\\Bin\\MSBuild.exe" /p:Configuration=DEV /t:Rebuild /p:DeployOnBuild=true /p:PublishProfile=DEV /m:4 src/myapp.sln'

我正在尝试在 msbuild 过程之后(发布之前)创建所需的输出文件夹和文件并将其放置到文件存储库中。然后我会将这些文件用于后续环境(使用它们的 Web 配置文件)。从而避免针对每个环境进行重建。

【问题讨论】:

  • 您可能需要查看所创建的部署包随附的 SetParameters.xml。您可以为每个部署环境自定义这些。 msdn.microsoft.com/en-us/library/ff398068(v=vs.110).aspx
  • SetParameters.xml 用于根据环境为各种项目转换 web.config 文件。这部分是通过转换完成的。我有不随环境变化的文件和文件夹。我正在寻找识别这些文件夹和文件,以便我可以在其他环境中使用相同的设置。是什么决定了 msbuild.exe 的输出? (我想我的问题很蹩脚)
  • 它只是获取项目的输出。并且可以选择对它们执行一些额外的编译步骤。
  • 看起来(至少我的应用程序),解决方案中每个项目的构建输出在发布之前都放置在临时文件夹中。 “将所有文件复制到下面的临时位置以进行打包/发布”

标签: msbuild webdeploy continuous-deployment continuous-delivery


【解决方案1】:

在这种情况下,MSBuild 实际上是在幕后使用 WebDeploy 来部署应用程序。基本上,MSBuild 编译 Web 应用程序项目中的任何 C# 或 VB 文件并在 bin 目录中创建 DLL,然后 WebDeploy 将任何 Web 服务器文件(HTML/CSS/JS/etc)和 bin 文件夹打包到目标。

以下文章描述了 WebDeploy 的工作原理。

https://dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多