Stack Overflow
sign up log in
Questions Jobs Tags Users Badges Ask
Read this post in our app!
up vote
1
down vote
favorite
ERROR: "You must enter a full path with drive letter; for example: C:APPor a UNC path in the form: \servershare"
inno-setup
I would like to know how to fix this kind of Error:
You must enter a full path with drive letter; for example: C:APP or a UNC path in the form: servershare
This appears whenever I try to force the Inno Setup Compiler(5.5.5 u) to put my stuff into, {let say H:} instead of {H:New Folder}.
I need the Compiler to Customize My Destination Location to H:.
Here is my sample Program;
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={drive:F:}
AppendDefaultDirName=no
[Files]
Source: "File1.txt"; DestDir: "{code:GetExeLocation|{app}My_Portable_App}"; Flags: ignoreversion
[Code]
var
UsagePage: TInputOptionWizardPage;
procedure InitializeWizard;
begin
{ Create the pages }
UsagePage := CreateInputOptionPage(wpWelcome,
'Installation Type', 'Select Installation Option',
'Where would you like to install this program',
True, False);
UsagePage.Add('Normal – PC Hard Disk Installation ');
UsagePage.Add('Portable – USB Drive Installation');
{Set Default – Normal Install}
UsagePage.SelectedValueIndex := 0;
end;
var
bIsPortable : Boolean;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
// If we have clicked the next button on our custom page.
if (CurPageID = UsagePage.ID) then
begin
bIsPortable := not (UsagePage.SelectedValueIndex = 0);
end;
result := true; // need to return a value so next key has an impact
end;
function GetExeLocation (Param: String) : String;
begin
if bIsPortable then
result := Param
else
result := Param;
end;
function InstallType(sRequiredType:String):Boolean;
begin
if sRequiredType = 'Portable' then
result := bIsPortable
else
result := not bIsPortable;
end;
Explanation:
When I select "Normal – PC Hard Disk Installation", as my choice, all my installation files or folders should go to normal Path that is to C:My Program, but when I select "Portable – USB Drive Installation" as my Entry, I would like to put all my installation files or folders directly into the USB Pen drive Root, that is in here H:, where "H" is my USB Pen Drive letter which I have selected to put my stuff in. But my Program does not allow me to do so, instead it adds a New Folder by default to put my installation files or folders over there, that is to H:New Folder which I do not need that at all!. And when I force to do what I want, it ends giving me an Error!
Please I need Your Help to fix this, and if this inno-setup can not do what I want, please point me another one, and I will be Thankful for that!
EDIT:
NB: LET FOCUS ON THE SECOND CHOICE THAT IS "('Portable – USB Drive Installation')" BECAUSE THAT IS MY REALLY TARGET !!!
From the Source: I made some changes so that to make it more clear.
I added my destination Directory, that is "{code:GetExeLocation|{app}My_Portable_App}". So what I want here is that, all my installation files or folders to be installed inside this Directory, I mean "My_Portable_App". and the path to my USB pen Drive should be [ H:My_Portable_App ]. So when this goes fine, I want to see only This Folder "My_Portable_App" in my USB Pen Drive that will contain all my stuffs in there!!!
Thanks in Advance!
I NEED YOUR HELP PLEASE TO FIX THIS...!!!
share improve this question
asked
Nov 1 '14 at 7:44
Dr.HansB-RM
15●6 edited
Nov 6 '14 at 6:15
So, that H: is a mapped drive ? And what do you mean by that you are getting that error if you select H:..(here!).... instead of H:New Folder ? Could you be more specific (possibly with a specific example), please ? – TLama Nov 2 '14 at 11:55
Thanks TLama for your quick response! I have posted an Example so that you can pass through and if stil not some how clear to be answered, let me know please! – Dr.HansB-RM Nov 3 '14 at 7:42
I will be waiting for your reply, TLama!!! – Dr.HansB-RM Nov 3 '14 at 17:49
add a comment
1 Answer
order by
up vote
1
down vote
accepted
If you want to install directly into h: then you should explicitly enter that into the location box. If you also want to stop the My Program being appended after using the browse dialog then you need to ensure that AppendDefaultDirName is set to no.
Also note that for file2, the DestDir will end up being set to {app}/{app} if bIsPortable is true which will most likely expand to an invalid path.
Your best option is to use a {code:...} function to create a single "default" path based on bIsPortable and then everything can just install into {app} from there.
share improve this answer
answered
Nov 3 '14 at 9:29
Deanna
18.3k●4●32●81 edited
Nov 3 '14 at 9:39
Thanks Deanna for your nice reply! – Dr.HansB-RM Nov 3 '14 at 17:33
I passed through your advice and I made some changes, also I tried to put my installation path manuall
สแตกลงชื่อเข้าสู่ระบบถามคำถามงานแท็กผู้ใช้ป้ายอ่านโพสต์นี้ของเราค่าออกเสียง1ออกเสียงลงชื่นชอบข้อผิดพลาด: "คุณต้องใส่เส้นทางแบบเต็ม ด้วยอักษรไดรฟ์ ตัวอย่างเช่น: C:APPor เส้นทาง UNC ในแบบฟอร์ม: \servershare "การตั้งค่าอินโนอยากทราบวิธีการแก้ไขข้อผิดพลาดนี้:คุณต้องใส่เส้นทางแบบเต็ม ด้วยอักษรไดรฟ์ ตัวอย่างเช่น: C:APP หรือเส้นทาง UNC ในรูปแบบ: servershareนี้ปรากฏเมื่อพยายามบังคับ Compiler(5.5.5 u) การตั้งค่าอินโนใส่ฉัน {ให้พูด H: } แทน {H:New โฟลเดอร์}ฉันต้องคอมไพเลอร์เพื่อกำหนดที่ตั้งปลายทางของฉันเพื่อ H:นี่คือ ตัวอย่างของโปรแกรม[ตั้งค่า]AppName =โปรแกรมAppVersion = 1.5DefaultDirName = {ไดรฟ์: F: }AppendDefaultDirName =ไม่[แฟ้ม]แหล่งที่มา: "File1.txt" DestDir: " {รหัส: GetExeLocation | { My_Portable_App app } } สถานะ: ignoreversion [รหัส]var UsagePage: TInputOptionWizardPageกระบวนการ InitializeWizardเริ่มต้น {สร้างหน้า} UsagePage: = CreateInputOptionPage (wpWelcome 'การติดตั้งชนิด' 'ตัวเลือก' การติดตั้งเลือก 'ที่จะต้องติดตั้งโปรแกรมนี้' True, False); UsagePage.Add ('ปกติ – ติดตั้งฮาร์ดดิสก์ PC'); UsagePage.Add ('แบบพกพา – ติดตั้งไดรฟ์ USB'); {เริ่มต้น – ตั้งค่าติดตั้งปกติ} UsagePage.SelectedValueIndex: = 0สิ้นสุดvar bIsPortable: บูลีนฟังก์ชัน NextButtonClick(CurPageID: Integer): บูลีนเริ่มต้น ถ้าเราคลิกปุ่มถัดไปบนหน้าของเราเอง ถ้า (CurPageID = UsagePage.ID) แล้ว เริ่มต้น bIsPortable: =ไม่ (UsagePage.SelectedValueIndex = 0); สิ้นสุด ผลการค้นหา: = true จำเป็นต้องคืนค่าคีย์ถัดไปมีผลกระทบต่อสิ้นสุดฟังก์ชัน GetExeLocation (Param: สายอักขระ): สายเริ่มต้น ถ้า bIsPortable แล้ว ผลการค้นหา: =พารามิเตอร์ อื่น ผลการค้นหา: = Paramสิ้นสุดฟังก์ชัน InstallType(sRequiredType:String):Booleanเริ่มต้น ถ้า sRequiredType = 'แบบพกพา' แล้ว ผลการค้นหา: = bIsPortable อื่น ผล: ไม่ bIsPortable =สิ้นสุดคำอธิบาย:เมื่อเลือก "ปกติ– PC ฮาร์ดดิสก์ติดตั้ง" เป็นตัวเลือกของฉัน การติดตั้งแฟ้มหรือโฟลเดอร์ทั้งหมดของฉันควรไปเส้นทางปกติที่ C:My โปรแกรม แต่ต้อง "พกพา– USB ติดตั้งไดรฟ์" เป็นรายการของฉัน ผมอยากจะใส่ไฟล์ติดตั้งของฉันทั้งหมด หรือโฟลเดอร์โดยตรงลงในปากกา USB ไดรฟ์ราก ที่อยู่ในที่นี่ H: ที่ 'H' คือ ของฉันอักษรไดรฟ์ปากกา USB ซึ่งผมเลือกที่จะใส่สิ่งต่าง ๆ ของฉัน แต่โปรแกรมของฉันให้ฉันทำเช่นนั้น แทน ที่จะเพิ่มโฟลเดอร์ใหม่ โดยค่าเริ่มต้นการติดตั้งแฟ้มหรือโฟลเดอร์ของฉันนั่น ที่โฟลเดอร์ H:New ซึ่งไม่จำเป็นที่ทั้งหมด และเมื่อผมบังคับให้ทำสิ่งที่ฉันต้อง มันสิ้นสุดให้ฉันข้อผิดพลาดโปรดฉันต้องการความช่วยเหลือของคุณเพื่อแก้ไขปัญหานี้ และถ้า inno-การตั้งค่านี้ไม่สามารถทำสิ่งที่ฉันต้องการ กรุณาชี้ให้ฉันอีกหนึ่ง และฉันจะ Thankful ที่แก้ไข:NB: เน้นให้เลือกสองที่ "('แบบพกพา – ติดตั้งไดรฟ์ USB') เพราะนั่นคือเป้าหมายของฉันจริง ๆ !!!จากแหล่งที่มา: ผมได้ทำการเปลี่ยนแปลงบางอย่างเพื่อที่จะทำให้เพิ่มเติมชัดเจนI added my destination Directory, that is "{code:GetExeLocation|{app}My_Portable_App}". So what I want here is that, all my installation files or folders to be installed inside this Directory, I mean "My_Portable_App". and the path to my USB pen Drive should be [ H:My_Portable_App ]. So when this goes fine, I want to see only This Folder "My_Portable_App" in my USB Pen Drive that will contain all my stuffs in there!!!Thanks in Advance!I NEED YOUR HELP PLEASE TO FIX THIS...!!!share improve this questionaskedNov 1 '14 at 7:44Dr.HansB-RM15●6 editedNov 6 '14 at 6:15 So, that H: is a mapped drive ? And what do you mean by that you are getting that error if you select H:..(here!).... instead of H:New Folder ? Could you be more specific (possibly with a specific example), please ? – TLama Nov 2 '14 at 11:55 Thanks TLama for your quick response! I have posted an Example so that you can pass through and if stil not some how clear to be answered, let me know please! – Dr.HansB-RM Nov 3 '14 at 7:42 I will be waiting for your reply, TLama!!! – Dr.HansB-RM Nov 3 '14 at 17:49add a comment1 Answerorder by up vote1down voteacceptedIf you want to install directly into h: then you should explicitly enter that into the location box. If you also want to stop the My Program being appended after using the browse dialog then you need to ensure that AppendDefaultDirName is set to no.โปรดสังเกตว่า สำหรับ file2, DestDir ที่จะสิ้นสุดการตั้งค่าเพื่อ {ป} / {ป} ถ้า bIsPortable เป็นจริงซึ่งมักจะขยายไปยังเส้นทางที่ไม่ถูกต้องเลือกของที่ดีที่สุดคือการ ใช้การ {รหัส:...} ฟังก์ชันเพื่อสร้างเส้นทางหนึ่งเริ่มต้น"ตาม bIsPortable และทุกอย่างสามารถเพียงแค่ติดตั้งลงใน {ป} จากที่นั่นร่วมกันปรับปรุงคำตอบนี้ตอบ3 พ.ย. ' 14:9 น.Deanna18.3k●4●32●81 แก้ไข3 พ.ย. ' 14 เวลา 9:39 ขอบคุณ Deanna ตอบดีของคุณ – พ.ย. Dr.HansB-RM 3 ' 14:17 น. ผมผ่านคำแนะนำของคุณ และแปลงบาง ฉันพยายามใส่ manuall เส้นทางการติดตั้งของฉัน
การแปล กรุณารอสักครู่..
