ข้อความแสดงข้อผิดพลาดนี้หมายความว่าอย่างไร ฉันจะทำอย่างไรเพื่อแก้ไขปัญหานี้
AssemblyInfo.cs ออกจากด้วยรหัส 9009
ปัญหาอาจเกิดขึ้นเป็นส่วนหนึ่งของขั้นตอนหลังการสร้างในโซลูชัน. NET ใน Visual Studio
ข้อความแสดงข้อผิดพลาดนี้หมายความว่าอย่างไร ฉันจะทำอย่างไรเพื่อแก้ไขปัญหานี้
AssemblyInfo.cs ออกจากด้วยรหัส 9009
ปัญหาอาจเกิดขึ้นเป็นส่วนหนึ่งของขั้นตอนหลังการสร้างในโซลูชัน. NET ใน Visual Studio
คำตอบ:
คุณพยายามที่จะให้เส้นทางแบบเต็มของคำสั่งที่ใช้ในคำสั่ง pre-or post-build event หรือไม่?
ฉันได้รับข้อผิดพลาด 9009 เนื่องจากxcopy
คำสั่งโพสต์บิลด์ใน Visual Studio 2008
คำสั่ง
"xcopy.exe /Y C:\projectpath\project.config C:\compilepath\"
ออกจากด้วยรหัส 9009
แต่ในกรณีของฉันมันก็เป็นระยะ ๆ นั่นคือข้อความแสดงข้อผิดพลาดจะยังคงอยู่จนกระทั่งรีสตาร์ทคอมพิวเตอร์และจะหายไปหลังจากรีสตาร์ทคอมพิวเตอร์ มันกลับมาหลังจากปัญหาที่เกี่ยวข้องกับระยะไกลที่ฉันยังไม่ได้ค้นพบ
อย่างไรก็ตามในกรณีของฉันที่ให้คำสั่งพร้อมเส้นทางแบบเต็มสามารถแก้ไขปัญหาได้:
c:\windows\system32\xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
แทนที่จะเป็นเพียงแค่:
xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
ถ้าฉันไม่มีเส้นทางแบบเต็มจะทำงานได้ชั่วขณะหลังจากรีสตาร์ทแล้วหยุด
นอกจากนี้ยังเป็นที่กล่าวถึงในการแสดงความคิดเห็นในโพสต์นี้ถ้ามีช่องว่างในเส้นทางเต็มแล้วหนึ่งความต้องการเครื่องหมายอัญประกาศรอบคำสั่ง เช่น
"C:\The folder with spaces\ABCDEF\xcopy.exe" /Y C:\projectpath\project.config C:\compilepath\
โปรดทราบว่าตัวอย่างนี้เกี่ยวกับการเว้นวรรคไม่ได้ถูกทดสอบ
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
) แก้ไขมัน
PATH
ตัวแปรสภาพแวดล้อมจะหายไปอย่างใด? ฉันได้รับข้อผิดพลาดนี้ทุกครั้งแล้ว ฉันมีnpm install
การตั้งค่าเป็นเหตุการณ์ที่สร้างไว้ล่วงหน้าและเริ่มแรกใช้งานได้ (ดังนั้นฉันจึงสันนิษฐานว่าทุกอย่างเป็นการตั้งค่า) แต่จากนั้นการสุ่มจะหยุดทำงานในระหว่างวัน (โดยทั่วไปเมื่อเปลี่ยนระหว่างโซลูชัน / สาขาที่ฉันเชื่อ) และจะไม่ npm
รู้เกี่ยวกับ การรีสตาร์ท VS 'แก้ไข' มัน ... หมายถึงฉันPATH
ตั้งค่าไว้ถูกต้อง แต่ดูเหมือนว่าจะลุกขึ้นโดย VS หากมีวิธีการดูตัวแปร env จากภายใน VS ฉันสามารถยืนยันได้
%systemroot%\System32\xcopy ...
รหัสข้อผิดพลาด 9009 หมายถึงไม่พบไฟล์ข้อผิดพลาด เหตุผลพื้นฐานทั้งหมดที่โพสต์ในคำตอบที่นี่เป็นแรงบันดาลใจที่ดีในการหาสาเหตุ แต่ความผิดพลาดเองนั้นหมายถึงเส้นทางที่ไม่ดี
มันเกิดขึ้นเมื่อคุณขาดการตั้งค่าสภาพแวดล้อมบางอย่างสำหรับการใช้เครื่องมือ Microsoft Visual Studio x86
ดังนั้นลองเพิ่มเป็นคำสั่งแรกในขั้นตอนหลังการสร้าง:
สำหรับ Visual Studio 2010 ให้ใช้:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
ดังที่ @FlorianKoch พูดถึงในความคิดเห็นสำหรับการใช้ VS 2017:
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
มันควรจะอยู่ก่อนคำสั่งอื่น ๆ
มันจะตั้งค่าสภาพแวดล้อมสำหรับการใช้เครื่องมือ Microsoft Visual Studio x86
call "$(DevEnvDir)..\Tools\vsvars32.bat"
? ขอบคุณ
Path
ตัวแปรสภาพแวดล้อมของฉัน ตรวจสอบหน้าต่างเอาต์พุตสำหรับข้อมูลเพิ่มเติม
"$(DevEnvDir)..\Tools\VsDevCmd.bat"
ส่วนใหญ่คุณอาจมีที่ว่างในเส้นทางผลลัพธ์ของคุณ
คุณสามารถหลีกเลี่ยงปัญหานี้ได้โดยการอ้างอิงเส้นทางจึงอนุญาตให้มีช่องว่าง ตัวอย่างเช่น:
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
มีตัวแปรเดียวกันหลังจากเปลี่ยนตัวแปร PATH จากตัวแปรสภาพแวดล้อมใน Win 7 การเปลี่ยนกลับไปเป็นค่าเริ่มต้นช่วย
ฉันมีข้อผิดพลาด 9009 เมื่อสคริปต์เหตุการณ์สร้างโพสต์ของฉันพยายามเรียกใช้ไฟล์แบตช์ที่ไม่มีอยู่ในเส้นทางที่ระบุ
ฉันทำให้ข้อผิดพลาดนี้เกิดขึ้นเมื่อฉันแก้ไขตัวแปรสภาพแวดล้อม Path อีกครั้ง หลังจากแก้ไขฉันตั้งใจเพิ่มPath=
จุดเริ่มต้นของสตริงเส้นทาง ด้วยตัวแปรพา ธ ที่ผิดรูปแบบฉันไม่สามารถเรียกใช้ XCopy ที่บรรทัดคำสั่ง (ไม่พบคำสั่งหรือไฟล์) และ Visual Studio ปฏิเสธที่จะเรียกใช้ขั้นตอนหลังการสร้างโดยอ้างถึงข้อผิดพลาดด้วยรหัส 9009
โดยทั่วไป XCopy จะอยู่ใน C: \ Windows \ System32 เมื่อตัวแปรสภาพแวดล้อม Path อนุญาตให้ XCopy แก้ไขได้ที่ DOS prompt Visual Studio ก็สร้างโซลูชันของฉันได้ดี
ข้อผิดพลาดที่แน่นอนของฉันคือ
The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.
9009 หมายถึงไม่พบไฟล์ แต่จริง ๆ แล้วไม่พบส่วน "iscc" ของคำสั่ง
ฉันแก้ไขโดยการเพิ่ม";C:\Program Files\Inno Setup 5 (x86)\"
ตัวแปรสภาพแวดล้อมของระบบ"path"
ตรวจสอบการสะกดคำ ฉันพยายามเรียกใช้ไฟล์ปฏิบัติการ แต่มีชื่อที่สะกดผิดและทำให้ฉันมีexited with code 9009
ข้อความ
ในกรณีของฉันฉันต้อง "CD" (Change Directory) ไปยังไดเรกทอรีที่เหมาะสมก่อนที่จะเรียกคำสั่งเนื่องจากปฏิบัติการที่ฉันเรียกอยู่ในไดเรกทอรีโครงการของฉัน
ตัวอย่าง:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
ตัวแปรอื่น:
วันนี้ฉันเรียกล่ามไพ ธ อนจาก cron ใน win32 และใช้ ExitCode (% ERRORLEVEL%) 9009 เพราะบัญชีระบบที่ cron ใช้ไม่มีเส้นทางไปยังไดเรกทอรี Python
ปัญหาในกรณีของฉันเกิดขึ้นเมื่อฉันพยายามใช้คำสั่งในบรรทัดคำสั่งสำหรับเหตุการณ์หลังการสร้างในไลบรารีคลาสการทดสอบของฉัน เมื่อคุณใช้เครื่องหมายคำพูดเช่นนั้น:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)"
หรือถ้าคุณใช้คอนโซล:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)"
ปัญหานี้ได้รับการแก้ไขสำหรับฉัน
คำตอบของ tfa ถูกลดระดับลง แต่จริงๆแล้วอาจทำให้เกิดปัญหานี้ได้ ขอบคุณ hanzolo ฉันดูในหน้าต่างแสดงผลและพบสิ่งต่อไปนี้:
3>'gulp' is not recognized as an internal or external command,
3>operable program or batch file.
3>D:\dev\<filepath>\Web.csproj(4,5): error MSB3073: The command "gulp clean" exited with code 9009.
หลังจากทำงานnpm install -g gulp
ฉันหยุดรับข้อผิดพลาดนี้ หากคุณได้รับข้อผิดพลาดนี้ใน Visual Studio ให้ตรวจสอบหน้าต่างผลลัพธ์และดูว่าปัญหานั้นเป็นตัวแปรสภาพแวดล้อมที่ไม่ได้ตั้งค่าหรือไม่
นอกจากนี้ตรวจสอบให้แน่ใจว่าไม่มีตัวแบ่งบรรทัดในหน้าต่างแก้ไขเหตุการณ์สร้างโพสต์ในโครงการของคุณ บางครั้งการคัดลอกคำสั่ง xcopy จากเว็บเมื่อมีหลายบรรทัดและวางลงใน VS จะทำให้เกิดปัญหา
ฉันเพิ่ม "> myFile.txt" ไปยังจุดสิ้นสุดของบรรทัดในขั้นตอนการสร้างล่วงหน้าจากนั้นตรวจสอบไฟล์สำหรับข้อผิดพลาดจริง
สำหรับฉันพื้นที่ดิสก์เหลือน้อยและไฟล์ที่ไม่สามารถเขียนได้คาดว่าจะมีอยู่ในภายหลัง คำตอบอื่น ๆ ที่กล่าวถึงไฟล์ที่หายไป (หรือไฟล์ที่มีชื่อ / อ้างอิงผิด) - แต่สาเหตุที่แท้จริงคือพื้นที่ดิสก์ไม่เพียงพอ
สำหรับฉันมันเกิดขึ้นหลังจากการอัพเกรดแพ็คเกจ nuget จากรุ่น PostSharp หนึ่งไปสู่อีกอันในโซลูชันขนาดใหญ่ (ประมาณ 80 โครงการ) ฉันมีข้อผิดพลาดของคอมไพเลอร์สำหรับโครงการที่มีคำสั่งในเหตุการณ์ PreBuild
'cmd' ไม่รู้จักว่าเป็นคำสั่งภายในหรือภายนอก, โปรแกรมที่ทำงานได้หรือไฟล์แบตช์ C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.CommV.CurrentVersion.targets (1249,5): ข้อผิดพลาด MSB3073: คำสั่ง "cmd / c C: \ GitRepos \ main \ ServiceInterfaces \ DEV.Config \ PreBuild.cmd ServiceInterfaces "ออกจากด้วยรหัส 9009
ตัวแปร PATH เสียหายนานเกินไปเมื่อมีหลายเส้นทางซ้ำที่เกี่ยวข้องกับ PostSharp.Patterns.Diagnostics เมื่อฉันปิด Visual Studio และเปิดอีกครั้งปัญหาได้รับการแก้ไข
ยังไม่พบไฟล์ประเภทอื่นเนื่องจากมีช่องว่างในพา ธ ในกรณีของฉันในสคริปต์ msbuild ฉันต้องการใช้สไตล์ HTML & quot; สตริงภายในคำสั่ง exec
<!-- Needs quotes example with my Buildscript.msbuild file -->
<Exec Command=""$(MSBuildThisFileDirectory)\wix\wixscript.bat" $(VersionNumber) $(VersionNumberShort)"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
เช่นเดียวกับคำตอบอื่น ๆ ในกรณีของฉันมันเป็นเพราะไฟล์ที่ขาดหายไป หากต้องการทราบว่าไฟล์ที่หายไปคืออะไรคุณสามารถไปที่หน้าต่างผลลัพธ์และจะแสดงสิ่งที่หายไปทันที
ในการเปิดหน้าต่างผลลัพธ์ใน Visual Studio:
ฉันแก้ไขสิ่งนี้โดยเพียงแค่เริ่มต้น Visual Studio ใหม่ - ฉันเพิ่งเรียกใช้dotnet tool install xxx
ในหน้าต่างคอนโซลและ VS ยังไม่ได้เลือกตัวแปรสภาพแวดล้อมใหม่และ / หรือการตั้งค่าเส้นทางที่เปลี่ยนแปลงไปดังนั้นการรีสตาร์ทอย่างรวดเร็วจึงแก้ไขปัญหาได้
นี่เป็นพื้นฐานที่ค่อนข้างฉันมีปัญหานี้และล้มเหลวง่าย ๆ ที่น่าอาย
แอปพลิเคชันใช้อาร์กิวเมนต์บรรทัดคำสั่งฉันลบออกแล้วเพิ่มกลับ ทันใดนั้นโครงการไม่สามารถสร้างได้
Visual Studio -> Properties Project -> ตรวจสอบว่าคุณใช้แท็บ 'Debug' (ไม่ใช่แท็บ 'Build Events') -> อาร์กิวเมนต์บรรทัดคำสั่ง
ฉันใช้และพื้นที่ข้อความ Post / Pre-build ซึ่งผิดในกรณีนี้
วิธีการแก้ปัญหาของฉันง่ายเหมือน: คุณลองปิดและเปิดอีกครั้ง? ดังนั้นฉันรีสตาร์ทคอมพิวเตอร์และปัญหาก็หายไป
ฉันเจอ9009
ปัญหานี้เมื่อต้องเผชิญกับสถานการณ์ที่เขียนทับ
โดยทั่วไปถ้าไฟล์นั้นมีอยู่แล้วและคุณยังไม่ได้ระบุ/y
สวิตช์ (ซึ่งเขียนทับโดยอัตโนมัติ) ข้อผิดพลาดนี้สามารถเกิดขึ้นได้เมื่อเรียกใช้จากการสร้าง
ที่จริงฉันสังเกตเห็นว่าด้วยเหตุผลบางอย่างตัวแปรสภาพแวดล้อม% windir% บางครั้งจะถูกลบ สิ่งที่ใช้ได้ผลสำหรับฉันคือตั้งค่าตัวแปรสภาพแวดล้อม windir เป็น c: \ windows รีสตาร์ท VS และนั่นคือสิ่งที่ วิธีนี้ทำให้คุณป้องกันไม่ให้แก้ไขไฟล์โซลูชัน
อย่างน้อยใน Visual Studio Ultimate 2013 เวอร์ชัน 12.0.30723.00 อัปเดต 3 ไม่สามารถแยกคำสั่ง if / else ด้วยตัวแบ่งบรรทัด:
การทำงาน:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server)
ไม่ทำงาน:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local)
else (echo server)
อีกเหตุผลหนึ่ง: หากเหตุการณ์ก่อนสร้างของคุณอ้างอิงพา ธ bin ของโปรเจ็กต์อื่นและคุณเห็นข้อผิดพลาดนี้เมื่อรัน msbuild แต่ไม่ใช่ Visual Studio คุณจะต้องจัดโปรเจ็กต์ด้วยตนเองในไฟล์ * .sln (ด้วยโปรแกรมแก้ไขข้อความ) ว่าโครงการที่คุณกำหนดเป้าหมายในเหตุการณ์นั้นสร้างขึ้นก่อนโครงการของกิจกรรม กล่าวอีกนัยหนึ่ง msbuild ใช้ลำดับที่โปรเจ็กต์แสดงรายการในไฟล์ * .sln ในขณะที่ VS ใช้ความรู้เกี่ยวกับการขึ้นต่อกันของโครงการ ฉันเกิดสิ่งนี้ขึ้นเมื่อเครื่องมือที่สร้างฐานข้อมูลที่จะรวมอยู่ใน wixproj ถูกแสดงรายการหลังจาก wixproj
ฉันคิดว่าในกรณีของฉันมีสัญลักษณ์รัสเซียในเส้นทาง (โครงการทั้งหมดอยู่ในโฟลเดอร์ผู้ใช้) เมื่อฉันใส่โซลูชันในโฟลเดอร์อื่น (บนดิสก์โดยตรง) ทุกอย่างก็โอเค
ทางออกของฉันคือการสร้างสำเนาของไฟล์และเพิ่มขั้นตอนในงานสร้างเพื่อคัดลอกไฟล์ของฉันไปที่ต้นฉบับ
คุณต้องตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเสียงฮึดฮัดทั่วโลก