【问题标题】:Visual Studio 2012 Stale DLLVisual Studio 2012 过时的 DLL
【发布时间】:2012-09-11 14:06:59
【问题描述】:

简介

我不知道这是一个错误还是我完全遗漏了一些东西。

我有一个项目(Windows 服务),我们称之为 WINSERV。我有 3 个 DLL,它依赖于来自 3 个单独的项目(项目 A、B、C)。但是 A 依赖于 C。而 B 依赖于 A 和 C。

当使用 InstallShield LE 构建安装程序时,出于某种原因,我的项目 C 始终是我无法更改的 STALE 版本。我增加版本,“make clean && rebuild”,安装(在远程服务器上)总是包含 STALE 版本。

我将每个依赖于 C 的项目设置为不“复制到本地”,因此允许 Project WinServ 维护“引用”本身,并将其复制到安装程序。

问题

但同样,无论我做什么,当我安装它时,它都是过时的版本。几个小时后,我确实设法解决了这个问题,方法是删除项目 WINSERV 上的“复制到本地”,并将项目 C 作为应用程序数据(项目 C 的主要输出)的补充添加到 InstallShield 安装项目。这似乎有效!!!!

问题

我确实尝试过“MAKE CLEAN”一千次。我在构建和创建安装程序之前检查了 Project C DLL 版本,它总是陈旧的旧版本。

谁能解释一下?还是错误?

PS。 InstallShield LE 不提供 Windows 服务,因此如果您阅读本文,请不要被抓住。

【问题讨论】:

  • 有同样的问题。奇怪的是,输出中包含的陈旧 ​​dll installshield 的版本在我的 PC 上的任何地方都不存在(从 PC 根目录搜索 my.dll)。到目前为止,已经花费了许多小时进行故障排除。真希望 MS 在 2012 年离开 VS 安装程序。

标签: visual-studio dll deployment visual-studio-2012 installshield


【解决方案1】:

这绝对是 Visual Studio 2012 中的一个错误。 我设法以以下方式复制:

在打开项目时(例如,参考 MYSQL 5.1.4)。 然后我开始卸载 MySQL 连接器并安装 5.1.7。 我关闭 Visual Studio 2012 并重新编译,一切正常。

但是,当我使用 InstallShield 构建时,尽管它已被卸载,但它仍然引用 5.1.4。我的想法是它将它缓存在某个地方并在构建过程中稍后访问它。

我的解决方法是在安装现有 DLL 的新/旧/不同版本后,然后重新启动我的机器,现在一切正常。

希望这对某人有所帮助

【讨论】:

    【解决方案2】:

    听起来我遇到了类似的问题。

    由于某些原因,InstallShield 有时会从临时 ASP.NET 文件夹中获取 DLL(即使您的项目不是 ASP)

    尝试清除文件夹:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2012-11-24
      相关资源
      最近更新 更多