อ่านผ่านแบตช์หากติดตั้ง .NET 4.0 ปลอดภัยเพียงพอกับการสืบค้น reg หรือไม่

ขณะนี้ฉันกำลังพยายามค้นหาว่ามีการติดตั้ง .NET 4.0 บนพีซีเครื่องอื่นผ่านทางบรรทัดคำสั่งหรือไม่ คำสั่งที่ฉันใช้คือ:

REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version

หากติดตั้ง 4.0 ฉันจะได้รับ 4.0..... ในขณะที่หากไม่มีการติดตั้งอะไรเลย ฉันได้รับข้อผิดพลาดของคีย์รีจิสทรี

ตอนนี้คำถามของฉันคือ (เนื่องจากฉันไม่สามารถทำซ้ำได้ที่นี่):

ปลอดภัยเพียงพอหรือไม่ หรือฉันอาจประสบปัญหาในกรณีติดตั้ง 2.0 หรือ 3.0 แต่ไม่ใช่ 4.0 ดังนั้นฉันจะยังคงได้รับข้อผิดพลาดไม่พบคีย์รีจิสทรีหรือฉันจะต้องใช้สิ่งที่แตกต่างออกไปที่นี่


person Thomas    schedule 01.10.2015    source แหล่งที่มา
comment
ดูบทความอย่างเป็นทางการ วิธีการ: พิจารณาว่า .NET ใด มีการติดตั้งเวอร์ชันเฟรมเวิร์กแล้ว ฉันคิดว่ามันครอบคลุมคำถามทั้งหมด   -  person wOxxOm    schedule 01.10.2015
comment
Tnx แต่ฉันเห็นอันนั้นแล้ว ปัญหาคือมันใช้ c#/.net เป็นส่วนใหญ่เพื่อรับข่าวสาร แต่ในกรณีของฉันฉันต้องทำโดยไม่ต้องมี .NET เข้ามาเกี่ยวข้อง ดังนั้นฉันจึงใช้คำสั่ง reg กำลังมองหาสถิติเดียวกันในสาระสำคัญ แต่ฉันไม่แน่ใจว่าจะเกิดอะไรขึ้นหากติดตั้ง 2.0 หรือ 3.0 แทนที่จะเป็น 4.0 หากไม่มีคีย์อยู่ (ส่งผลให้เกิดข้อผิดพลาดไม่พบคีย์ซึ่งจะเป็นผลลัพธ์ที่ดีที่สุดเท่าที่จะเป็นไปได้ หรือหากมีผลลัพธ์อื่นอยู่ที่นั่น) เมื่อไม่มีเวอร์ชันที่ติดตั้งไว้ แสดงว่าคีย์ไม่พบข้อผิดพลาด แต่ด้วย 2.0 หรือ 3.0 ฉันไม่แน่ใจและบทความนี้ไม่ได้ครอบคลุมถึงเรื่องนั้นอย่างน่าเศร้า   -  person Thomas    schedule 01.10.2015
comment
Microsoft ค่อนข้างเบื่อหน่ายกับการต้องรับมือกับการโทรติดต่อฝ่ายบริการลูกค้า ซึ่งเป็นแบบที่พวกเขากำลังมองหาวิธีแก้ปัญหาสำหรับซอฟต์แวร์ตรวจสอบเวอร์ชันที่ใช้งานไม่ได้ ดังนั้นพวกเขาจึงทำให้การตรวจสอบเวอร์ชันเป็นเรื่องยากโดยเจตนา หมายเลขเวอร์ชันของ Windows มีความโดดเด่น พวกเขาจงใจโกหกและส่งกลับหมายเลขที่ต่ำกว่า สิ่งที่พวกเขา ต้องการ ให้คุณทำก็แค่เรียกใช้โปรแกรมติดตั้ง การดำเนินการนี้จะเสร็จสิ้น มาก เมื่อมีการแก้ไขที่เหมาะสมด้วยการอัปเดตล่าสุดและการแก้ไขด้านความปลอดภัยอยู่แล้ว   -  person Hans Passant    schedule 01.10.2015
comment
เฉพาะในกรณีที่นักพัฒนาจำเป็นต้องตรวจสอบให้แน่ใจว่ามีเวอร์ชันเฉพาะอยู่หรือไม่ ......... พวกเขาจะได้รับการเรียกมากขึ้นในแบบนั้น (อย่างน้อยถ้าไม่มี stackoverflow ก็เป็นเช่นนั้น)   -  person Thomas    schedule 01.10.2015
comment
ด้วยความอยากรู้อยากเห็น คุณกำลังทำอะไรอยู่และจำเป็นต้องตรวจสอบเวอร์ชัน .NET ที่ติดตั้งไว้ภายนอกตัวติดตั้ง   -  person Scott Chamberlain    schedule 01.10.2015
comment
ตัวแยกวิเคราะห์บันทึกที่จำเป็นต้องทำงานบนเครื่องที่ไม่ใช่พีซีซึ่งมีการติดตั้ง windows การกระจายไปยังพวกมันจะต้องไม่มีตัวติดตั้ง (ซึ่งเป็นเหตุผลว่าทำไมฉันถึงต้อง (ed) ตรวจสอบเบื้องต้นว่าพวกเขามีเฟรมเวิร์กเวอร์ชันที่ถูกต้องหรือไม่....... ถ้าพวกเขาไม่ได้โปรแกรมของฉันก็จะไม่ด้วยซ้ำ สามารถเรียกได้ (พบว่าเมื่อฉันใช้เฟรมเวิร์ก 4.5 แทน 4.0 โดยไม่ได้ตั้งใจ) และเนื่องจากฉันไม่ได้รับอนุญาตให้ติดตั้ง. NET Framework หากหายไปฉันต้องตรวจสอบวิธีที่ยาก (หรือที่เรียกว่าชุดด้านบน) แต่จำเป็นต้อง รู้ว่าการตรวจสอบนั้นเพียงพอแล้วหรือจำเป็นต้องทำอะไรเพิ่มเติมหรือไม่   -  person Thomas    schedule 01.10.2015


คำตอบ (1)


การตรวจสอบว่าติดตั้ง v4 นั้นค่อนข้างง่ายหรือไม่

dir /b /ad "%windir%\microsoft.net\Framework\v4.*"

กลับ

v4.0.30319

หากคุณต้องการแน่ใจว่าได้ติดตั้งเวอร์ชันล่าสุดแล้ว:

@echo off

for /f "delims=" %%a in (
   'dir /b /ad "%windir%\microsoft.net\Framework\*" ^|sort /r ^|findstr /r [0-9]'
) do (
      set "version=%%a"
      goto done
)
exit /b 0

:done
echo version %version%

หากคุณต้องการเรียกใช้ไฟล์ปฏิบัติการเฉพาะล่าสุด เช่น csc.exe

@echo off

for /f "delims=" %%a in (
   'dir /b /s /a-d "%windir%\microsoft.net\Framework\*csc.exe"^|sort /r'
) do (
      set "executable=%%a"
      goto done
)
exit /b 0

:done
echo executable %executable%

ฉันเพิ่งพบที่นี่ วิธีอื่นในการตรวจสอบว่า .NET ได้รับการติดตั้งด้วย wmic แต่การตั้งค่าของฉันค่อนข้างช้า

person Paul    schedule 01.10.2015