【发布时间】:2017-01-05 18:48:06
【问题描述】:
我创建了一个新的 ASP.NET Core Web 应用程序。我正在使用 TFS (2015 Update 2) MS Build 过程来构建我的应用程序并将其部署到我的 Dev/QA 服务器。我在窗口服务器上使用 Kesrel/IIS 配置运行我的代码。
我的构建步骤是:
- 命令行:dotnet Restore -- 恢复我的 nuget 包
- 命令行:dotnet build -c Dev -- 构建我的开发配置文件
- 命令行:dotnet publish --framework netcoreapp1.1 --runtime win7-x64 --output "C:_work\dev\svc" --configuration DEV --no-build
- 发布构建工件:从第 3 步中的输出文件夹到我的 Web 服务器。
问题: 我遇到的主要问题是新的核心应用程序都作为控制台应用程序运行,因此除了正在运行的 w3svc.exe IIS 应用程序之外,还有一个“xxx.exe”文件正在运行。当我的 Publish Build Artifacts 步骤运行时,该过程失败,因为 'xxx.exe' 文件正在使用中,并且无法修改。
据我所知,您必须使用“dotnet”CLI 来构建和发布您的 CORE 应用程序,并且您不能使用 VS Build 步骤。
我尝试将我的“dotnet publish”命令直接指向网络服务器,但这也有同样的问题。您可以在我的“dotnet publish”命令中看到我指示要使用的配置(DEV)。但是,即使我在 VS 中设置了 DEV 来进行 webdeploy,“dotnet publish”命令也会忽略它,并将代码放在默认发布位置,或者我在命令中指定的位置。所以这也不像旧的 .net 框架那样工作。
我的托管团队不允许我运行远程 powershell 脚本来停止 IIS 应用程序和控制台应用程序,而且我看不到任何其他可用于构建 CORE 应用程序的构建步骤。
我正在使用 TFS 2015 Update 2。我们很快就会使用 Update 3,但我不知道这是否会给我提供解决此问题的功能。如果有人知道,我很想听听!
如果我停止 IIS 应用程序池并确保控制台应用程序也停止,我上面的构建和部署步骤可以完美运行,但我不希望每次在构建之前都手动停止 IIS 应用程序池。
【问题讨论】:
标签: iis asp.net-core tfs-2015 continuous-deployment msbuild-4.0