首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >InnoSetup -错误的“文件正在被另一个进程使用...”编译时的消息

InnoSetup -错误的“文件正在被另一个进程使用...”编译时的消息
EN

Stack Overflow用户
提问于 2013-03-14 06:06:12
回答 10查看 10K关注 0票数 15

虽然我真的很喜欢InnoSetup,但我已经为这个错误的消息而痛苦了一段时间,但我的挫败感达到了新的高度。有许多帖子抱怨这个问题,这肯定是一个InnoSetup错误,但我找不到有用的解决办法。

我有一个非常简单的(签名的)设置,只是复制一些文件并创建一个快捷方式。它甚至不包含可执行文件。当我尝试编译设置时,我得到这样的消息:“该进程无法访问该文件,因为它正被另一个进程使用”-反复(通常我总是在3次尝试内编译该设置),但现在它似乎在多次之后都是徒劳的。尝试了很多次。未从InnoSetup输出或错误对话框中清除正在使用的文件。几乎肯定没有竞争的进程在运行。(我已重新启动机器,但仍收到此消息)。

任何关于如何解决这个问题的想法都是非常感谢的。

这是完整的设置代码-它是有签名的,但对于我用相同签名创建的其他设置来说,这不是问题。

代码语言:javascript
运行
复制
#define MyAppName "Easy-IAP for IronKey"
#define MyAppVersion "4.0"
#define MyAppPublisher "Command Post Solutions"
#define MyAppURL "http://www.commandpostsolutions.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{51668D56-27F6-4C83-87F2-677328EFE808}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName="\EZ-IAP"
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=IronKeySetup
SetupIconFile=C:\Users\ron\Dropbox\EZIAP\eziap.ico
Compression=lzma
SolidCompression=yes
SignedUninstaller=yes
SignTool=Standard /d $qEasy-IAP Installer$q $f                                                                   

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "C:\Users\ron\Dropbox\Easy-IAP for IronKey\AccessDatabaseEngine.exe"; DestDir: "{app}"; Flags: onlyifdoesntexist
Source: "C:\Users\ron\Dropbox\Easy-IAP for IronKey\dotNetFx40_Full_x86_x64.exe"; DestDir: "{app}"; Flags: onlyifdoesntexist
Source: "C:\Users\ron\Dropbox\Easy-IAP for IronKey\Easy-IAP for IronKey\bin\Release\Easy-IAP for IronKey.exe"; DestDir: "{app}";
; NOTE: Don't use "Flags: ignoreversion" on any shared system les
[ICONS]
Name: "{drive:{app}}\Easy-IAP"; Filename: "{app}\Easy-IAP for IronKey.exe"; 
EN

Stack Overflow用户

回答已采纳

发布于 2013-03-14 20:42:25

这不是bug,这只是应用程序的糟糕设计(或糟糕的文档) :)

在您的[Setup]部分中使用OutputDir指令来避免这种错误行为。

代码语言:javascript
运行
复制
OutputDir=c:\output

OutputDir指定脚本的“输出”目录,安装编译器将在该目录中放置生成的SETUP.*文件。默认情况下,它会在包含此脚本的目录下创建一个名为Output的目录。

你问为什么?

如果你没有在你的脚本文件中使用OutputDir (很多人都不使用它),Inno Setup会尝试在"userdocs:“文件夹中创建结果设置,这会在所有的Windows系统上造成很多麻烦。

始终使用此参数,即使您希望在当前文件夹中进行结果设置,在这种情况下,请使用:

代码语言:javascript
运行
复制
OutputDir=output
票数 6
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15397414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档