VB 2005 Express กับ Compile Options ที่หายไป
posted on 25 Sep 2007 21:32 by ninkungz in Programmingยังไม่เข็ดกับหัวข้อ Programming ครับ (จริง ๆ หมวดนี้จะไม่ได้เขียนเกี่ยวกับเรื่อง programming เลย เอาแต่เขียนเรื่อง tools กะหนังสือ) บังเอิญมันค้นพบอะไรบางอย่าง เลยเอามาแปะ ๆ ไว้เผื่อจะมีประโยชน์กับใครบ้าง (จาก Google หลงมาเยอะ บอกหลายทีแล้ว)
จากครั้งก่อนเมื่อตอน VB 2005 vs VC# 2005 ความต่างลึก ๆ ใน IDE นั้น ได้พูดถึงความต่างใน Project Designer (ชื่อจริงของ Project Properties) ของ VB กะ C# 2005 โดยในหน้า Compile ของ VB นั้นช่างจิ๊บจ๊อยไม่มีอะไรให้ปรับแต่งนักเมื่อเทียบกับหน้า Build ของ C# โดยเฉพาะอย่างยิ่งตัวเลือก Optimize code ที่ทำให้รู้สึกว่า VC# ดูน่าสนใจยิ่งขึ้น

ตัวเลือก Optimize code ใน Visual C# 2005
ซึ่งจริง ๆ แล้วไอ้เจ้าหน้านี้มันมีไว้กำหนด option ให้ compiler นั่นเอง เช่น ถ้ากาที่ Optimize code ดังภาพ ก็จะมีการใส่ /optimize+ เพิ่มไปในตอน compile ซึ่งจุดนี้ล่ะครับที่ทำให้ผมคิดว่า compiler ของ VB ก็น่าจะมีเหมือนกัน ก็เลยไปหาใน MSDN Express ก็พบว่า VB ก็มีจริง ๆ
แต่เราจะเปลี่ยน option ให้ compiler ของ VB2005 ผ่านทาง IDE ได้อย่างไรกัน? จริง ๆ แล้วง่ายมาก แค่หาทางเข้า Advanced Compile Options ให้ได้ แล้วมันอยู่ที่ไหน? ก็อยู่ใน Project Designer นี่ล่ะครับ เพียงแค่คลิ้กเข้าไปที่ปุ่ม Advanced Compiler Settings ซึ่งอยู่ในหน้า Compile นี่แหล่ะ...

แล้วไอ้ปุ่มที่ว่ามันอยู่ตรงไหนกันล่ะ?
คำตอบคือ.....สำหรับ Visual Basic 2005 Express (ย้ำว่า Express) ปุ่มนี้ได้ถูกตัดทิ้งไปโดยเจตนา! แต่ในรุ่นเสียตังค์จะยังมีปุ่มนี้อยู่ ดังนั้นจะด้วยเหตุผลอะไรคงไม่ต้องบอก (ที Visual C# 2005 Express ดันมีได้ ฮึ่ม!)
แต่ไม่ใช่ว่าเราจะปรับแต่ง option ในการ compile ไม่ได้เลยนะครับ ลองใช้ Text Editor เปิดไฟล์ VB Project (.vbproj) ดูสิ จะเห็น option บางตัวให้ปรับแต่งได้นิดหน่อย แต่ถ้าต้องการแค่ optimize หรือ XML doc ละก็ ไม่ต้องเสียเวลาออกแรงครับ เพราะ VB 2005 Express จะใส่ option พวกนี้ไว้ให้เป็นทุนเดิมอยู่แล้วครับ
ผมลองเขียนโปรแกรมสั้น ๆ แล้ว Build ดู ก็พบว่า IDE ของ VB 2005 Express มันใส่ options ให้ compiler ดังนี้... (เห็นแบบนี้ จริง ๆ มีแค่ 4 บรรทัดนะ)
------ Build started: Project: PrimeQuest, Configuration: Release Any CPU ------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Vbc.exe /noconfig /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Generic,
System.Data,System.Diagnostics /nowarn:42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
/rootnamespace:PrimeQuest /doc:obj\Release\PrimeQuest.xml /define:"CONFIG=\"Release\",TRACE=-1,
_MyType=\"Console\",PLATFORM=\"AnyCPU\""
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll,
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll,
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll,
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll
/main:PrimeQuest.Module1 /debug:pdbonly /optimize+ /out:obj\Release\PrimeQuest.exe
/resource:obj\Release\PrimeQuest.Resources.resources
/target:exe Module1.vb "My Project\AssemblyInfo.vb" "My Project\Application.Designer.vb" "My Project\Resources.Designer.vb" "My Project\Settings.Designer.vb"
PrimeQuest -> C:\Documents and Settings\xxxxx\My Documents\Visual Studio 2005\Projects\PrimeQuest\PrimeQuest\bin\Release\PrimeQuest.exe
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
จะเห็นได้ว่ามีการใส่ /optimize+ และ /doc ให้เสร็จสรรพแล้ว ไม่ต้องวุ่นวายไปหาที่เซ็ตเองสะดวกจริง ๆ แต่ถ้าต้องการกำหนด option บางอย่างเพื่อการ debug คงต้องไปพิมพ์ command-line เองแล้วล่ะครับ (เหนื่อยหน่อยล่ะ)
หรือไม่...ก็หนีไปใช้ C# ซะ
edit @ 2007/09/25 21:34:20
edit @ 2007/09/25 21:44:12
edit @ 2007/09/25 21:46:46
edit @ 2007/09/25 21:49:45
edit @ 2007/09/26 02:01:50
edit @ 2007/09/26 02:02:25
edit @ 2007/09/26 02:03:03

ต้องยอมจ่ายตังค์ ไม่ก็เปลี่ยนภาษา
#1 By plynoi แว่วศรี on 2007-09-26 07:20