在我的.NET Core项目上运行dotnet build
命令时出现以下错误。
C:\Program Files\dotnet\sdk\2.1.2\Microsoft.Common.CurrentVersion.targets(4106,5
): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\Blog-Yantra.dll" to
"bin\Debug\netcoreapp2.0\Blog-Yantra.dll". Beginning retry 1 in 1000ms. The proc
ess cannot access the file 'E:\learn\blog\Blog-Yantra\bin\Debug\netcoreapp2.0\Bl
og-Yantra.dll' because it is being used by another process. [E:\learn\blog\Blog
-Yantra\Blog-Yantra.csproj]
我的csproj文件看起来像:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TypeScriptToolsVersion>2.3</TypeScriptToolsVersion>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.1" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />
</ItemGroup>
</Project>
9条答案
按热度按时间gwo2fgha1#
所以,我在这里提出了解决方案。
有进程正在运行,并且正在锁定程序集,因为我通过dotnet cli执行了
dotnet run
来运行项目,并且我执行了Ctrl + c来终止正在运行的进程。但是Ctrl + c并没有杀死所有进程,查尔兹继续运行并锁定程序集。kestrel服务器仍在同一端口上运行。要终止正在运行的kestrel服务器,我运行了以下命令。
需要运行的命令
How to manually stop kestrel server
此问题的一些参考文献包括:
如何手动停止kestrel服务器。关于SO的提问
Port localhost:5000 not released causing error System.IO.IOException: Failed to bind to address http://127.0.0.1:5000: address already in use. issue posted on github
terminating
dotnet run
doesn't terminate child. Issue on githubWindows: How to kill process by port. Blog post
prdp8dxp2#
最有可能的是一个开放的.Net核心进程运行和阻塞,如果在windows上,只需通过任务管理器杀死它。
mrfwxfqh3#
您的ASP.NET应用程序正在同一目录中运行,这就是您无法生成代码的原因。您有以下选项:
1.终止正在运行的ASP.NET应用程序;
1.将你的代码复制到另一个目录并从那里构建它;或
1.重新启动计算机并尝试重新生成。
我会选择第一个选项,但如果你很难找到如何做到这一点,最后一个选项是最简单的。在任何情况下,如果出于任何原因,你不能重新启动计算机,第二个肯定会工作。
k4aesqcs4#
如果您的Web服务器是IIS,您可以在项目根目录中放置一个名为
app_offline.htm
的空文件,这将正常关闭应用程序。我把它写成这样:
1.将app_offline. htm添加到IIS承载的项目根目录
dotnet build
1.删除app_offline.htm
anhgbhbe5#
我在添加新迁移类时也遇到过同样的问题。我的Visual Studio(2017)示例经常冻结,当我重新启动Visual Studio时,我开始收到类似的消息。帮助我的是通过Windows任务管理器杀死dotnet.exe进程。
xeufq47z6#
对我来说,解决方案是通过右键单击任务栏图标来停止IIS Express进程。
或者你可以在“预生成事件”中创建一个命令行:
$(解决方案)taskkill /FI“IMAGENAME eq iisexpress.exe”/F
在项目的“属性”>“构建事件”x1c 0d1x中添加此命令
我们没有时间查看命令是否在“输出”视图中正确执行到“构建”部分。在“预生成事件”中添加此命令行以查看结果:
cmd /c暂停
您可以在检查后删除此行...
0dxa2lsx7#
VisualStudio Code中的一个简单解决方案就是杀死终端。
然后,通过在“终端”选项卡中启动新终端(终端-新终端)或使用快捷键Ctrl + Shift + `重新启动PowerShell或CMD终端
cotxawn78#
对于那些像我一样在共享主机上有这个问题,无法访问任何东西的人,不要试图直接通过面板或FTP复制您的dll,压缩它,然后上传它,然后以这种方式在Plesk面板中提取它。
zpf6vheq9#
我的错误与netcore 3和visual studio读取的文件有关:
2小时后,只有LockHunter工作!!
我下载了它,安装,右键单击有问题的文件:
搜索我的档案几秒钟后,进程被找到:
最后,我点击“unclock it”,c#就可以读取这个文件了。
PD:为什么Windows会这样做?这就是为什么现代开发不使用也不会使用Windows的原因:D