Merhaba,
IIS Server üzerinde publish edilmiş bir .NET Core uygulamasının dll’lerini değiştirmek, üstüne yazmak istediğinizde lock’lı olmasından dolayı “The process cannot access the file because it is being used by another process” hatası alırsınız. Bunu aşmak için kullandığınız application pool’u durdurmak ya da publish dosyanızın içeriğini değiştirmek iki ayrı yöntemdir.
İlk seçenek powershell üzerinden komut yardımıyla yapabilirsiniz;
C:\Users\Administrator> Stop-WebAppPool -Name "DotNetCorePool"
— deploy işlemi —
C:\Users\Administrator> Start-WebAppPool -Name "DotNetCorePool"
Diğer seçenek olarak da uzantısı pubxml olan publish dosyanıza aşağıdaki satırı ekleyebilirsiniz.
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<ProjectGuid>f9ab3eb9-187f-4e8e-bc03-5fa7fc70821d</ProjectGuid>
<publishUrl>bin\Release\PublishOutput</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
Merhaba cok basarili