Tin nhắn báo lỗi này có nghĩa là gì? Tôi có thể làm gì để khắc phục vấn đề này?
Hội nghịInfo.cs đã thoát với mã 9009
Vấn đề có thể xảy ra như là một phần của bước hậu xây dựng trong giải pháp .NET trong Visual Studio.
Tin nhắn báo lỗi này có nghĩa là gì? Tôi có thể làm gì để khắc phục vấn đề này?
Hội nghịInfo.cs đã thoát với mã 9009
Vấn đề có thể xảy ra như là một phần của bước hậu xây dựng trong giải pháp .NET trong Visual Studio.
Câu trả lời:
Bạn đã thử đưa ra đường dẫn đầy đủ của lệnh đang chạy trong lệnh sự kiện trước hoặc sau khi xây dựng chưa?
Tôi đã gặp lỗi 9009 do xcopy
lệnh sự kiện hậu xây dựng trong Visual Studio 2008.
Lệnh
"xcopy.exe /Y C:\projectpath\project.config C:\compilepath\"
đã thoát với mã 9009.
Nhưng trong trường hợp của tôi nó cũng không liên tục. Đó là, thông báo lỗi vẫn tồn tại cho đến khi khởi động lại máy tính và biến mất sau khi khởi động lại máy tính. Nó đã trở lại sau một số vấn đề liên quan từ xa mà tôi chưa khám phá.
Tuy nhiên, trong trường hợp của tôi, việc cung cấp lệnh với đường dẫn đầy đủ của nó đã giải quyết được vấn đề:
c:\windows\system32\xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
Thay vì chỉ:
xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
Nếu tôi không có đường dẫn đầy đủ, nó sẽ chạy một lúc sau khi khởi động lại, rồi dừng lại.
Cũng như đã đề cập trên các bình luận cho bài đăng này, nếu có khoảng trắng trong đường dẫn đầy đủ, thì người ta cần có dấu ngoặc kép xung quanh lệnh . Ví dụ
"C:\The folder with spaces\ABCDEF\xcopy.exe" /Y C:\projectpath\project.config C:\compilepath\
Lưu ý rằng ví dụ này liên quan đến không gian không được kiểm tra.
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
) đã giải quyết nó.
PATH
biến môi trường bị mất bằng cách nào đó? Tôi nhận được lỗi này mỗi giờ và sau đó. Tôi đã npm install
thiết lập như một sự kiện dựng sẵn và ban đầu nó hoạt động (vì vậy tôi cho rằng mọi thứ là thiết lập), nhưng sau đó ngẫu nhiên nó sẽ ngừng hoạt động trong ngày (nói chung là khi chuyển đổi giữa các giải pháp / chi nhánh tôi tin) và nó sẽ không còn nữa biết về npm
. Khởi động lại VS 'sửa lỗi' nó ... có nghĩa là tôi PATH
đang thiết lập chính xác, nhưng dường như đã đứng dậy bởi VS. Nếu có một cách để xem các biến env từ bên trong VS tôi có thể xác nhận điều này.
%systemroot%\System32\xcopy ...
Mã lỗi 9009 có nghĩa là không tìm thấy tệp lỗi. Tất cả các lý do cơ bản được đăng trong các câu trả lời ở đây là nguồn cảm hứng tốt để tìm hiểu lý do tại sao, nhưng bản thân lỗi chỉ đơn giản là một con đường xấu.
Nó xảy ra khi bạn thiếu một số cài đặt môi trường để sử dụng các công cụ Microsoft Visual Studio x86.
Do đó, hãy thử thêm dưới dạng một lệnh đầu tiên trong các bước xây dựng sau của bạn:
Đối với Visual Studio 2010 sử dụng:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
Như @FlorianKoch đã đề cập trong các bình luận, cho VS 2017 sử dụng:
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
Nó nên được đặt trước bất kỳ lệnh nào khác.
Nó sẽ đặt môi trường để sử dụng các công cụ Microsoft Visual Studio x86.
call "$(DevEnvDir)..\Tools\vsvars32.bat"
nào vào đâu và vào tập tin nào ? Cảm ơn
Path
biến môi trường của tôi . Kiểm tra cửa sổ đầu ra để biết thêm thông tin.
"$(DevEnvDir)..\Tools\VsDevCmd.bat"
Hầu hết có lẽ bạn có không gian trong đường dẫn kết quả của bạn.
Bạn có thể giải quyết vấn đề này bằng cách trích dẫn các đường dẫn, do đó cho phép khoảng trắng. Ví dụ:
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
Có cùng một biến sau khi thay đổi biến PATH từ Biến môi trường trong Win 7. Thay đổi trở lại mặc định đã giúp.
Tôi đã gây ra lỗi này khi tôi xử lý lại biến môi trường Đường dẫn của mình. Sau khi chỉnh sửa, tôi vô tình thêm vào Path=
đầu chuỗi đường dẫn. Với biến đường dẫn không đúng định dạng như vậy, tôi không thể chạy XCopy tại dòng lệnh (không tìm thấy lệnh hoặc tệp) và Visual Studio đã từ chối chạy bước xây dựng sau, trích dẫn lỗi với mã 9009.
XCopy thường nằm trong C: \ Windows \ System32. Khi biến môi trường Đường dẫn cho phép XCopy được giải quyết tại dấu nhắc DOS, Visual Studio đã xây dựng giải pháp của tôi rất tốt.
Lỗi chính xác của tôi là
The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.
9009 có nghĩa là không tìm thấy tệp, nhưng thực tế nó không thể tìm thấy phần "iscc" của lệnh.
Tôi đã sửa nó bằng cách thêm ";C:\Program Files\Inno Setup 5 (x86)\"
vào biến môi trường hệ thống"path"
Kiểm tra chính tả. Tôi đã cố gắng gọi một thực thi nhưng có tên sai chính tả và nó đã cho tôi exited with code 9009
tin nhắn.
Trong trường hợp của tôi, tôi phải "CD" (Thư mục thay đổi) vào thư mục thích hợp trước, trước khi gọi lệnh, vì lệnh thực thi mà tôi đang gọi nằm trong thư mục dự án của tôi.
Thí dụ:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
Một biến thể khác:
hôm nay tôi gọi trình thông dịch python từ cron trong win32 và lấy ExitCode (% ERRORLEVEL%) 9009, vì tài khoản hệ thống được sử dụng bởi cron không có đường dẫn đến thư mục Python.
Vấn đề trong trường hợp của tôi xảy ra khi tôi cố gắng sử dụng một lệnh trên dòng lệnh cho sự kiện Post-build trong Thư viện lớp thử nghiệm của tôi. Khi bạn sử dụng dấu ngoặc kép như vậy:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)"
hoặc nếu bạn đang sử dụng bảng điều khiển:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)"
Điều này đã khắc phục vấn đề cho tôi.
Câu trả lời của tfa đã bị hạ thấp, nhưng thực sự có thể gây ra vấn đề này. Nhờ hanzolo, tôi đã nhìn vào cửa sổ đầu ra và tìm thấy như sau:
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.
Sau khi chạy npm install -g gulp
, tôi đã ngừng nhận được lỗi này. Nếu bạn gặp lỗi này trong Visual Studio, hãy kiểm tra cửa sổ đầu ra và xem vấn đề có phải là biến môi trường không được đặt.
Ngoài ra, hãy chắc chắn rằng không có ngắt dòng trong cửa sổ chỉnh sửa sự kiện xây dựng bài trong dự án của bạn. Đôi khi, sao chép lệnh xcopy từ web khi nó đa dòng và dán nó vào VS sẽ gây ra vấn đề.
Đối với tôi, điều đó đã xảy ra sau khi nâng cấp các gói nuget từ một phiên bản PostSharp lên một gói tiếp theo trong một giải pháp lớn (dự án ~ 80). Tôi đã gặp lỗi trình biên dịch cho các dự án có lệnh trong các sự kiện PreBuild.
'cmd' không được nhận dạng như một lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó. C: \ Chương trình tệp (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CienVersion.target (1249,5): lỗi MSB3073: Lệnh "cmd / c C: \ GitRepos \ main \ ServiceInterfaces \ DEV.Config \ PreBuild.cmd ServiceInterfaces "đã thoát với mã 9009.
Biến PATH bị hỏng quá lâu với nhiều đường dẫn lặp lại liên quan đến PostSharp.Potypes.Diagnostics. Khi tôi đóng Visual Studio và mở lại, sự cố đã được khắc phục.
Một biến thể khác của tập tin không được tìm thấy, bởi vì khoảng trắng trong đường dẫn. Trong trường hợp của tôi trong kịch bản msbuild. Tôi cần sử dụng kiểu HTML & quot; chuỗi trong lệnh exec.
<!-- Needs quotes example with my Buildscript.msbuild file -->
<Exec Command=""$(MSBuildThisFileDirectory)\wix\wixscript.bat" $(VersionNumber) $(VersionNumberShort)"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
Giống như các câu trả lời khác, trong trường hợp của tôi là do tập tin bị thiếu. Để biết tập tin bị thiếu là gì, bạn có thể vào cửa sổ đầu ra và nó sẽ hiển thị ngay cho bạn những gì đã mất.
Để mở cửa sổ đầu ra trong Visual Studio:
Tôi đã khắc phục điều này bằng cách khởi động lại Visual Studio - Tôi vừa chạy dotnet tool install xxx
trong cửa sổ giao diện điều khiển và VS vẫn chưa chọn các biến môi trường mới và / hoặc cài đặt đường dẫn đã bị thay đổi, vì vậy khởi động lại nhanh đã khắc phục sự cố.
Điều này là khá cơ bản, tôi đã có vấn đề này, và lúng túng đơn giản thất bại.
Ứng dụng sử dụng đối số dòng lệnh, tôi loại bỏ chúng và sau đó thêm chúng trở lại. Đột nhiên dự án không xây dựng được.
Visual Studio -> Thuộc tính dự án -> xác minh rằng bạn sử dụng tab 'Gỡ lỗi' (không phải tab 'Xây dựng sự kiện') -> Đối số dòng lệnh
Tôi đã sử dụng vùng văn bản và Post / Pre-build, đã sai trong trường hợp này.
Giải pháp của tôi chỉ đơn giản là: bạn đã thử tắt và bật lại chưa? Vì vậy, tôi khởi động lại máy tính và vấn đề đã biến mất.
Tôi cũng 9009
gặp phải vấn đề này khi phải đối mặt với một tình huống ghi đè.
Về cơ bản, nếu tệp đã tồn tại và bạn chưa chỉ định công /y
tắc (tự động ghi đè) thì lỗi này có thể xảy ra khi chạy từ bản dựng.
Ít nhất là trong Visual Studio Ultimate 2013, Phiên bản 12.0.30723.00 Cập nhật 3, không thể tách một câu lệnh if / other với dấu ngắt dòng:
làm:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server)
không hoạt động:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local)
else (echo server)
Một lý do khác: Nếu sự kiện xây dựng trước của bạn tham chiếu đường dẫn bin dự án khác và bạn gặp lỗi này khi chạy msbuild, nhưng không phải Visual Studio, thì bạn phải sắp xếp thủ công các dự án trong tệp * .sln (với trình soạn thảo văn bản) rằng dự án bạn đang nhắm mục tiêu trong sự kiện được xây dựng trước dự án của sự kiện. Nói cách khác, msbuild sử dụng thứ tự các dự án được liệt kê trong tệp * .sln trong khi VS sử dụng kiến thức về phụ thuộc dự án. Tôi đã có điều này xảy ra khi một công cụ tạo cơ sở dữ liệu được bao gồm trong wixproj được liệt kê sau wixproj.
Tôi nghĩ rằng trong trường hợp của tôi có các biểu tượng tiếng Nga trong đường dẫn (tất cả các dự án đều nằm trong thư mục người dùng). Khi tôi đặt giải pháp vào một thư mục khác (trực tiếp trên đĩa), mọi thứ đều ổn.
Giải pháp của tôi là tạo một bản sao của tệp và thêm một bước vào tác vụ xây dựng để sao chép tệp của tôi so với bản gốc.