我正在尝试使用Appveyor代理在服务器上部署项目。但是,如果我在部署前不重新启动或停止应用程序,则无法正常工作。
Web Deploy cannot modify the file 'TestProject.Application.dll' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.
有没有一种简单的方法可以处理app_offline.htm文件?使用“app_offline”功能的appveyor.yml配置在这种环境下不起作用。
我在“之前/之后”部分中正在寻找某些东西。这是我的appveyor.yml:
version: '1.0.{build}'
os: Visual Studio 2015
install:
- "SET PATH=C:\\Program Files\\dotnet\\bin;%PATH%"
branches:
only:
- master
assembly_info:
patch: true
file: '**\AssemblyInfo.*'
assembly_version: '{version}'
assembly_file_version: '{version}'
assembly_informational_version: '{version}'
build_script:
- nuget sources add -name "VNext" -source https://dotnet.myget.org/F/cli-deps/api/v3/index.json
- nuget sources add -name "nugetv3" -source https://api.nuget.org/v3/index.json
- dotnet restore
- dotnet build */*/project.json
after_build:
- ps: Remove-Item -Path src\TestProject.Web\web.config
- ps: Move-Item -Path src\TestProject.Web\web.$env:APPVEYOR_REPO_BRANCH.config -Destination src\TestProject.Web\web.config
- dotnet publish src\TestProject.Web\ --output %appveyor_build_folder%\publish
artifacts:
- path: .\publish
name: TestProject.Web
test: off
deploy:
- provider: Environment
name: east-webhost
artifact: TestProject.Web
remove_files: false
on:
branch: master
最佳答案
请查看before/after deploy scripts。还要检查this sample关于如何确保释放该文件的信息。
-伊莉亚
关于deployment - 使用AppVeyor : file locked by external process (Appveyor agent)部署.NET Core应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40347509/