Visual Studio clean 解决方案不会删除所有被移动的 dll / 项目引用
Posted
技术标签:
【中文标题】Visual Studio clean 解决方案不会删除所有被移动的 dll / 项目引用【英文标题】:Visual Studio clean solution doesn't delete all dlls / project reference getting moved 【发布时间】:2011-04-30 07:27:46 【问题描述】:我有一个 VS 2008 C# Web 应用程序,其中包含大量对自定义 dll 的项目引用。这些都位于 Web 项目的相对路径中。最近我注意到 Clean Solution 从 Web 应用程序的 bin\debug 文件夹中删除了一些但不是全部的 dll。例如:
<Reference Include="TowerCo.Utilities, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Components\TowerCo.Utilities\bin\Debug\TowerCo.Utilities.dll</HintPath>
</Reference>
<Reference Include="TowerCo.WebControls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Components\TowerCo.WebControls\bin\Debug\TowerCo.WebControls.dll</HintPath>
</Reference>
第一个工作正常(clean 清理它,新版本在重建时复制到 web 项目)但第二个没有。副作用是我不会自动获取对依赖项的更改。
感谢您的帮助。
【问题讨论】:
第二个 DLL 是否可能在第一个不存在的 GAC 中? 好主意,但不,GAC 中没有我的任何 dll。通常,我们使用项目引用并为每个应用部署单独的组件副本。 我也遇到了同样的问题。似乎存在一个相关问题,即构建服务器不想部署相同的未清理的程序集。编译时它适用于所有其他开发机器 被删除的dll是否有可能被系统使用(或被保留)? 尝试构建/重新构建您的解决方案。 【参考方案1】:它似乎只会删除它“知道”的文件。
例如旧的库文件和重命名项目后的旧引用仍然存在。很奇怪。我一直认为“清理”只是一个简单的删除——我不太明白为什么不是这样。如有疑问,请进入并手动检查每个文件夹。
【讨论】:
【参考方案2】:如果版本相同,有时 VS 不会选择最新的 dll。尝试在 AssemblyInfo.cs 中更改您的版本,它应该可以工作。
过去,我在依赖大小/时间戳时遇到了同样的问题,但后来我意识到通过更改版本,Studio 会删除旧的 DLL 并复制新的 DLL。
【讨论】:
我可以确认,当您将 AssemblyInfo.cs 版本号修改为最小的修订号时,此问题仍然存在。以上是关于Visual Studio clean 解决方案不会删除所有被移动的 dll / 项目引用的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio clean 解决方案不会删除所有被移动的 dll / 项目引用
[转]Clean up after Visual Studio
Flutter clean 和 flutter run 不会使用 Visual Studio Code 在 macOS 上重建应用程序