Visual Studio 2012陈旧DLL

时间:2012-09-11 14:06:59

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

简介

我不知道这是一个错误,还是有些东西我完全失踪了。

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

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

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

问题

但是,无论我做什么,当我安装它时,它都是陈旧的版本。几个小时后,我确实通过删除Project WINSERV上的“Copy to Local”,并将Project C作为Application Data(Project C的主要输出)添加到InstallShield Install Project中来解决问题。这似乎有效!!!!

问题

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

任何人都可以解释这个吗?还是Bug?

PS。 InstallShield LE不执行Windows服务,因此如果您阅读此内容,请不要被抓住。

2 个答案:

答案 0 :(得分:0)

这绝对是Visual Studio 2012中的一个错误。 我已成功地以下列方式复制:

打开项目时(参考我们说的MYSQL 5.1.4)。 然后我开始卸载MySQL Connector并安装5.1.7。 我关闭Visual Studio 2012并重新编译,一切正常。

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

我如何解决它,是在安装了现有DLL的更新/更旧/不同版本后,然后重新启动我的机器,现在一切都很好。

希望这有助于某人

答案 1 :(得分:0)

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

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

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