gpt4 book ai didi

visual-studio-2010 - VS2010 在构建之前并不总是释放 dll

转载 作者:行者123 更新时间:2023-12-05 00:40:17 25 4
gpt4 key购买 nike

使用 Visual Studio 2010 构建时,我有一个定期出现的问题。
有时它拒绝构建并显示如下错误消息:

错误 102 无法将文件“xxxxx\Debug\Services.dll”复制到“bin\Debug\Services.dll”。该进程无法访问文件“bin\Debug\Services.dll”,因为它正被另一个进程使用。

我发现的唯一补救措施是重新启动 Visual Studio。关闭解决方案是不够的。
我试图用 Process Explorer 找到罪魁祸首,因为我怀疑我自己的一个线程没有按预期关闭。但是,该进程是 devenv.exe,即 Visual Studio 本身。此外,即使在构建升级的 VS 2008 项目时,我也只会在 VS 2010 中遇到此症状。我在 VS 2008 下的相同项目中从未遇到过这个问题。

我有很多定制的 WPF 用户控件,我有一个理论,即 WPF 设计器有时会在应该为构建发布它们时保留控件的依赖 dll。该理论还没有很好地建立,因为这是一个周期性问题,有时它会在没有设计开放的情况下发生。对于 Windows 窗体项目,我也有同样的问题。有时我会在没有锁定 dll 的情况下度过一天。有时它是每隔一个版本左右。

我已经向微软询问了这个问题,他们告诉我制作 Visual Studio 的转储并调试转储。我不认为这是合理的建议。

有没有人经历过类似的事情?这真的很烦人。

更新 1

由于这似乎是一个 Visual Studio 错误,并且 Microsoft 已回应说他们不打算对此做任何事情,我想鼓励使用自定义用户控件的每个人在 connect.microsoft.com 上对该错误进行投票。

该错误都报告在这里:https://connect.microsoft.com/VisualStudio/feedback/details/587281和我在这里 https://connect.microsoft.com/VisualStudio/feedback/details/568672

更新 2
我编写了一个简单的 Visual Studio 宏,在构建之前关闭所有 .XAML 文件。到目前为止,我还没有经历过这个宏的锁定。
在 Visual Studio 中添加以下宏并分配给您最喜欢的构建快捷方式。也许/也许不会解决问题。

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module CloseXamlAndBuildModule
Sub CloseXamlAndBuild()
For Each myDocument As EnvDTE.Document In DTE.Documents
If myDocument.Name.EndsWith(".xaml") Then
myDocument.Close()
End If
Next
DTE.Solution.SolutionBuild.Build()
End Sub

End Module

最佳答案

我终于找到了一个稳定的工作解决方案。我意识到问题的根源是在 WCF 服务和 WPF 控件的构造函数中初始化代码。将构造函数从任何依赖项清除到其他程序集后,一切正常。

关于visual-studio-2010 - VS2010 在构建之前并不总是释放 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com