繁体   English   中英

需要在inno安装程序中覆盖DLL - 但文件没有被替换

[英]Need to overwrite a DLL in inno setup installer - but file not getting replaced

我正在使用Inno安装程序为我的VB.net应用程序安装补丁更新,我必须替换DLL文件和几个javascript / html文件进行更新。 但是,DLL没有得到更新(它在C:\\ program files ...中) - 即使在没有UAC的XP系统上它也没有被替换,但是当我手动删除DLL并重新运行补丁时,文件被复制。 它不是只读的,并且XP案例中不涉及UAC / admin权限。

如果文件已经存在,那么文件不会被复制的原因是什么? 它内置于VS2008和.NET 2.0中 - 新的DLL也具有更新的日期和大小差异。

有没有办法解决Vista / Win7 / 8上的UAC写访问问题? 我想补丁永远不会成功用UAC替换这些系统上的文件。 告诉我们的用户群将其关闭显然不是一种选择。

[编辑]通过在构建解决方案时从Release文件夹中提取dll程序集,将dll程序集打包到Visual Studio中的setup.exe中。 inno setup iss [File]部分包含:

[Files]
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\setup.exe; DestDir: {app}
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\interact.msi; DestDir: {app}
[Run]
Filename: {app}\setup.exe; Flags: runmaximized

DLL是否有版本资源? 新DLL是否比旧版本更高? 默认情况下,InnoSetup使用版本资源来确定是否应替换文件。
另一个选项是您可以在[Files]部分添加ignoreversion标志以始终替换该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM