如何在IIS上的虚拟机上部署使用dll文件的应用程序

76次阅读
没有评论

问题描述

在使用Azure DevOps将应用程序部署到IIS上的虚拟机时遇到了问题。他已经成功地将应用程序重构为使用类库(语言:C#,.NET 4.8),但目前卡在了部署阶段。
他在Azure DevOps中使用Azure CI构建将应用程序部署到IIS上的虚拟机。提交代码后会触发流水线。
流水线大致如下:
– NuGet还原
– 构建解决方案
– 测试程序集(Visual Studio Tests)
– 发布符号路径
– 发布构件

应用程序的.dll文件位于应用程序的专用文件夹中。用户已经在应用程序中引用了这些.dll文件,并将它们的”复制到输出目录”属性更改为”如果较新则复制”。在本地构建应用程序时,所需的自定义.dll文件按预期被复制到bin文件夹中。然而,在分析部署日志时,用户注意到自定义.dll文件没有被更新/复制。

用户想知道如何确保自定义.dll文件能够正确部署(与标准.dll文件相同)。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据Stack Overflow上的这个帖子,似乎没有其他办法,只能从这些构建所需的.dll文件创建NuGet包。

方案2

如果你不想创建NuGet包,你可以尝试以下方法来确保自定义.dll文件能够正确部署:
1. 确保在构建解决方案步骤中,自定义.dll文件的”复制到输出目录”属性设置为”如果较新则复制”。
2. 在发布构件步骤中,确保自定义.dll文件被包含在构建的输出中。
3. 检查部署日志,确认自定义.dll文件是否被正确复制到目标服务器上的相应位置。

如果上述方法仍然无法解决问题,你可以尝试以下额外的步骤:
1. 在构建解决方案步骤之后,添加一个自定义的PowerShell脚本步骤。
2. 在脚本中使用Copy-Item命令将自定义.dll文件复制到目标服务器上的相应位置。

请注意,这些解决方案可能会因为不同的环境和工具链而有所差异。你可能需要根据你的具体情况进行调整和测试。

希望这些解决方案能够帮助你解决问题!

正文完