无法将 obj\Debug\net6.0\CMA.dll 复制到 bin\Debug\net6.0\CMA.dll。重试次数超过 10。失败。文件被锁定:Visual Studio 2022

Mat*_*hew 6 visual-studio visual-studio-2022

我刚刚升级到“Microsoft Visual Studio Community 2022(64 位)- 当前版本 17.1.2”,当我尝试编译 .Net core 6 Web 应用程序时,它收到此错误:

严重性代码 说明 项目文件行抑制状态错误 MSB3027 无法将“obj\Debug\net6.0\CMA.dll”复制到“bin\Debug\net6.0\CMA.dll”。重试次数超过 10。失败。该文件被锁定:“Microsoft Visual Studio 2022 (8816)”CMA C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 4631

当我双击错误消息时,它会打开文件 Microsoft.Common.CurrentVersion.targets 并突出显示以下部分:

    <!-- Copy the build product (.dll or .exe). -->
<Copy
    SourceFiles="@(IntermediateAssembly)"
    DestinationFolder="$(OutDir)"
    SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
    OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
    Retries="$(CopyRetryCount)"
    RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
    UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)"
    UseSymboliclinksIfPossible="$(CreateSymbolicLinksForCopyFilesToOutputDirectoryIfPossible)"
    ErrorIfLinkFails="$(ErrorIfLinkFailsForCopyFilesToOutputDirectory)"
    Condition="'$(CopyBuildOutputToOutputDirectory)' == 'true' and '$(SkipCopyBuildProduct)' != 'true'"
        >

  <Output TaskParameter="DestinationFiles" ItemName="MainAssembly"/>
  <Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>

</Copy>
Run Code Online (Sandbox Code Playgroud)

知道该怎么做吗?

小智 1

这种事时常发生在我身上。有时,等待并再次尝试就能解决问题。似乎简单地关闭并重新打开解决方案并不能解决我的问题。如果卡住了几分钟,除了重新启动 Visual Studio 之外没有其他解决方案。问题是,每次关闭解决方案或关闭 Visual Studio 时,我都会丢失撤消历史记录。有时这可能很糟糕,如果我正在进行编辑,我不确定是否会起作用。我真的希望有一个解决方案,不涉及重新启动 Visual Studio 或重新启动。显然,我不是唯一遇到此问题的人,所以我希望他们尽快修复它。

我已经检查过我的程序运行中没有剩余进程(尽管我希望如果我一开始就用 Visual Studio 启动它,如果它实际上没有关闭,Visual Studio 不会将其显示为已停止,但在无论如何,没有project.vshost.exe进程运行,也没有project.其他任何东西)我也使用.NET 6.0,所以想知道这是否只是该特定版本的问题。尽管 .NET 6.0 仍处于长期支持之下,并且这篇文章已经发布一年半了,但他们现在应该已经解决了这个问题。