我的项目的 bin 文件夹中有一个 dll,但我无法理解它为什么存在。
看起来项目不需要它,实际上如果我删除它,应用程序运行良好。实际上,当它在那里时,它会崩溃!:D
每次我使用 Visual Studio 2010 构建时,都会再次复制 dll。
问题是:有没有一种方法/工具可以帮助我了解谁在我的应用程序中需要这个 dll?我的应用程序是一个 ASP.NET MVC 2 项目。
谢谢
我的项目的 bin 文件夹中有一个 dll,但我无法理解它为什么存在。
看起来项目不需要它,实际上如果我删除它,应用程序运行良好。实际上,当它在那里时,它会崩溃!:D
每次我使用 Visual Studio 2010 构建时,都会再次复制 dll。
问题是:有没有一种方法/工具可以帮助我了解谁在我的应用程序中需要这个 dll?我的应用程序是一个 ASP.NET MVC 2 项目。
谢谢
第一步是在 Visual Studio 中为构建启用诊断日志:
Tools > Options > Projects and Solutions > Build and Run
然后选择
MSBUild project build output verbosity : Diagnostic
这将为您的输出文件夹提供完整的日志。所以我可以得到这个信息:
C:\MyApplication\bin\Microsoft.VisualStudio.Settings.dll
C:\MyApplication\bin\Microsoft.VisualStudio.Settings.dll
ResolvedFrom = C:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0
CopyLocal = true
FusionName = Microsoft.VisualStudio.Settings, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
HintPath = \\Microsoft\WF4\Microsoft.VisualStudio.ActivityPack.Data.dll
OriginalItemSpec = Microsoft.VisualStudio.ActivityPack.Data
Version = 10.0.0.0
这告诉我 Microsoft.VisualStudio.ActivityPack.Data.dll 需要 Microsoft.VisualStudio.Settings.dll
Another helpful tool is fuslogvw.exe (included in VS). It gives you full informations about an assembly origins. More informations about this tool here.