【问题标题】:DLL not being updated when building my solution构建我的解决方案时未更新 DLL
【发布时间】:2012-02-27 13:04:57
【问题描述】:

奇怪的情况。

在一个解决方案中,我有几个项目。其中一个称为 Common,另一个是称为 Internal 的 Web 项目(不是 Web 应用程序)。

Internal有对Common的引用,所以每次构建应用程序时,都会将common DLL复制到Internal网站的bin文件夹中。

如果我在 Common 项目的某个类上更改一行代码并重新构建它,则内部 bin 文件夹上的 DLL 不会更新(即使我重新构建内部),导致运行 Common 的旧代码(如果我在 Common 上有一个断点,它显示一条警告说代码与原始代码不同并且不会运行)。我设法解决它的唯一方法是手动删除 Internal 上的 Common DLL,然后重新构建。

我的问题是,我该如何避免呢? dll如何在Internal上总是相同的版本?

谢谢

【问题讨论】:

  • 好吧,我不确定这里,但是如果你去内部,查看引用 Common 的引用并转到它的属性。复制本地应设置为 True。我认为就是这样,但我不是专家,所以我不确定。
  • 当您执行“添加引用”时,您是通过“浏览”还是通过“项目”选择 DLL?编辑:刚刚看到上面的评论,这就是我接下来要去的地方!
  • 您是否尝试将复制到输出目录设置为该 dll 的“始终复制”?
  • 一个小线索:您是否尝试过使用 build\rebuild solution 菜单命令重建所有解决方案?
  • 检查如何构建 DLL 也是值得的。 F5 构建到 Debug 文件夹,F6 构建到 Release 文件夹。

标签: c# visual-studio-2010 dll


【解决方案1】:

根据 OP 的要求:

尝试通过“添加引用”对话框中的“项目”选项删除引用并再次添加。这应该将 DLL 设置为在重建时刷新。

【讨论】:

    【解决方案2】:

    一个可能的直接解决方案可能是简单地使用PostBuildEvent,您可以在其中放置批处理代码,以便在成功构建时始终复制您需要的文件。

    这样做的坏处是增加了编译时间。

    【讨论】:

      【解决方案3】:

      如果您使用的是已开发为更高版本 VS2013/vs2015(即 .NEt 4.5、4.6、4.6.2)的第三方 dll,那么它在 VS2010 中将无法正常工作 答:将您的项目转换为 VS2015 以解决问题或安装 .NET 4.6.2 和用户 VS2013 并将框架更改为最新

      【讨论】:

        猜你喜欢
        • 2017-12-30
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-14
        • 2021-03-08
        • 1970-01-01
        相关资源
        最近更新 更多