我不知道这是一个错误,还是有些东西我完全失踪了。
我有一个项目(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服务,因此如果您阅读此内容,请不要被抓住。
答案 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