![](/img/trans.png)
[英]VS 2013 c# sqlite build fails App Certification Kit high risk from msvcr100.dll
[英]TFS CI build to Azure Web App (App Service) fails due to file locking (msvcr100.dll)
問題
嘗試從TFS CI發布到Azure Web App時出現部署錯誤。 文件被鎖定,這會阻止構建更新。
症狀
錯誤
Web部署任務失敗。 (Web部署無法修改目標上的文件'msvcr100.dll',因為它被外部進程鎖定。為了允許發布操作成功,您可能需要重新啟動應用程序以釋放鎖定,或者使用適用於下次發布嘗試的.Net應用程序的AppOffline規則處理程序。有關詳細信息,請訪問: http : //go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_FILE_IN_USE。)
鏈接中的信息不是很有幫助。
ERROR_FILE_IN_USE診斷 - 無法覆蓋或刪除目標文件,因為它當前正在使用中。 解決方案 - 確保在執行同步之前未使用目標文件。 如果要將內容同步到IIS 7或更高版本上托管的網站(使用appHostConfig,iisApp或contentPath提供程序),請考慮通過啟用appOffline規則在同步期間使應用程序脫機。
嘗試過的決議
編輯
如何在發布時使Web應用程序脫機? 處理使用EnableMSDeployAppOffline配置使應用程序脫機 - 遺憾的是,只有在通過Visual Studio(而不是CI)執行WebDeploy時才支持此配置。
您可以使用CI中的Web Deploy v3來部署Web應用程序。
在Web Deploy V3中,我們添加了支持,以便在發布之前自動使ASP.Net應用程序脫機。 如果用戶想要確保他們的應用程序沒有鎖定文件(例如SQL CE sdf文件,一次只允許一個文件連接)被覆蓋,或者他們想要確保訪問者他們的網站不會影響發布過程。 發布過程完成后,將刪除App_Offline.htm文件,該站點將再次聯機。
或者,您可以添加以下PowerShell腳本以將Web應用程序部署到Azure:
param($websiteName, $packOutput)
$website = Get-AzureWebsite -Name $websiteName
# get the scm url to use with MSDeploy. By default this will be the second in the array
$msdeployurl = $website.EnabledHostNames[1]
$publishProperties = @{'WebPublishMethod'='MSDeploy';
'MSDeployServiceUrl'=$msdeployurl;
'DeployIisAppPath'=$website.Name;
'Username'=$website.PublishingUsername;
'Password'=$website.PublishingPassword}
Write-Output "Stopping web app..."
Stop-AzureWebsite -Name $websiteName
Write-Output "Publishing web app..."
$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"
. $publishScript -publishProperties $publishProperties -packOutput $packOutput
Write-Output "Starting web app..."
Start-AzureWebsite -Name $websiteName
參考來自: https : //msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/deploy-aspnet5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.