有一段时间我已经有了visual studio生成的构建版本,其中包含各种额外的文件。我已经检查了我所知道的所有可能来自哪里的东西,而且我没有想法。
例如我之前使用的是MbUnit,但现在我使用了nunit。我的项目都没有引用MbUnit,但是当我构建时它仍然出现在我的bin \ Debug和bin \ Release文件夹中。另外我的bootstrapper项目甚至没有引用任何使用测试框架的库,为什么它出现在BootStrapper \ bin \ Relase中?
即使我使用Release目标构建,一些(但不是全部)我的项目和vshost文件的pdb文件仍然会被转移到bin directoreies。我根本没有弄清楚配置目标的定义!
有谁知道这些可能来自哪里?我必须缺少一些知识。
答案 0 :(得分:5)
默认情况下,发布版本会创建pdb文件,因此在那里看到它们并不罕见。我假设vshost文件也是如此。如果你想在没有它们的情况下构建项目设置(从解决方案资源管理器中的项目上下文菜单),请转到“构建”选项卡,在顶部确保您正在查看发布配置,然后单击“高级”底部的按钮。在弹出的新窗口中有一个标记为“Debug Info”的下拉列表,将其设置为none以禁用pdb创建。
至于引用,听起来不是正确的行为,但是记住它们是递归的,所以如果projectA引用projectB和projectB引用mbunit,那么mbunit dll将被复制到projectA的任何构建文件夹中。所以可能是你错过了某个地方的参考资料,而这正在整个解决方案中传播......?
还要确保您正在重建解决方案而不是构建 - 构建不会删除文件夹中已存在的任何文件。甚至最好在构建之前手动删除bin和obj文件夹,以确保您有一个干净的平板。
刚刚在Visual Studio中进行了快速测试,看起来像是在调试和发布中调试和发布的任何项目都设置为vshost文件,调试信息设置是什么。要停止此操作,您需要取消选中项目设置的“调试”选项卡下的“启用Visual Studio主机进程”。
答案 1 :(得分:3)
您可以安全地删除.pdb文件和.vshost文件,前者用于调试信息(是的,甚至发布版本可以在某种程度上调试),后者仅用于Visual Studio,它使用vs运行作为附加的调试器更快(再次,发布与否)。
答案 2 :(得分:0)
简单地从目录中删除文件不会阻止它们出现在将来的版本中。检查项目属性中的前置和后置构建步骤。如果您不想在发布版本中使用符号,请禁用项目属性中的调试符号链接选项(但我建议保留它们,除非您编写完美的代码)。