°Á Àü Å¿ÀÀÇ Àâ´ã>
À̹ø °Á´ °½ÂÈ£´ÔÀÌ º¸³»ÁֽŠVS.NET 2003 Add-in¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
¾Ë¾ÆµÎ¸é ¿©·¯¸ð·Î À¯¿ëÇÑ ³»¿ëÀ» °Á·Πº¸³»ÁֽнÂÈ£´Ô²² °¨»çÀÇ ¸»¾¸µå¸³´Ï´Ù
Ãß°¡±â´É(Add-in) ¸¸µå´Â ¹ý
VS .NET 2003Àº °³¹ß¿¡ ÇÊ¿äÇÑ ¸¹Àº ±â´ÉµéÀ» Á¦°øÇØ ÁÖ´Â IDE(ÅëÇÕ °³¹ß ȯ°æ) ÀÔ´Ï´Ù.
±× Æí¸®ÇÔÀº ÀÌ·ç ¸»ÇÒ ¼ö ¾øÁö¸¸ °³¹ßÀÚµéÀÇ ¸ðµç ¿ä±¸¸¦ ÃæÁ·½ÃÄÑ ÁÙ ¼ö´Â ¾ø½À´Ï´Ù.
±×·¡¼ VS .NET 2003¿¡¼´Â °³¹ßÀÚ°¡ ÇÊ¿äÇÑ ±â´ÉÀ» Á÷Á¢ ¸¸µé¾î¼ È®ÀåÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¸ðµ¨À» Á¦°øÇÕ´Ï´Ù. À̰ÍÀÌ ¹Ù·Î Ãß°¡±â´ÉÀÔ´Ï´Ù.
¾Æ·¡´Â MSDN¿¡ ³ª¿ÍÀÖ´Â Ãß°¡±â´É(Add-in)¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.
Visual Studio¿¡¼ °³¹ßÀÚ¿¡°Ô °ÅÀÇ ¸ðµç ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Â ¸¹Àº µµ±¸¿Í ±â´ÉÀ» Á¦°øÇϰí´Â ÀÖÁö¸¸ °³¹ßÀÚ¿¡ µû¶ó¼´Â º¸´Ù ¼¼ºÎÀûÀ̰í Ãß°¡ÀûÀÎ Á¦¾î¸¦ À§ÇÑ ±â´ÉÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¹Ýº¹ÀûÀ¸·Î ¼öÇàÇϴ ƯÁ¤ ÀÛ¾÷ ¶Ç´Â ÀÏ·ÃÀÇ ÀÛ¾÷À» ÀÚµ¿ÈÇÏ·Á´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. À̸¦ À§ÇØ Visual Studio¿¡¼´Â IDE(ÅëÇÕ °³¹ß ȯ°æ)¸¦ È®ÀåÇϰí ÀÚµ¿ÈÇÒ ¼ö ÀÖµµ·Ï ÀÚµ¿È ¸ðµ¨À̶ó´Â dzºÎÇÑ ±â´ÉÀÇ ÇÁ·Î±×·¡¹Ö ¸ðµ¨À» Á¦°øÇÕ´Ï´Ù. ÀÚµ¿È ¸ðµ¨Àº ȯ°æÀ» ÀÚµ¿ÈÇÒ ¼ö ÀÖµµ·Ï ÇÒ »Ó ¾Æ´Ï¶ó È®À强°ú »õ·Î¿î ±â´ÉÀ» ȯ°æ¿¡ Á¦°øÇÕ´Ï´Ù.
¾Æ·¡ MSDN ¿¡¼ VS .NETÀÇ Ãß°¡±â´É¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
µû¶ó¼ Ãß°¡±â´É¿¡ ´ëÇÑ ¼³¸íÀº MSDNÀ¸·Î ´ë½ÅÇϰíÀÚ ÇÕ´Ï´Ù. ÀÌ °Á´ Ȱ¿ë °ÁÂÀ̰í.. ¿¡¡¦ ¶Ç.. »ç½Ç ÀÚ¼¼ÇÑ °ÍÀº Àúµµ Àß ¸ð¸£±â ¶§¹®¿¡ ¸»ÀÌÁÒ..^^;
MSDN(Ãß°¡±â´É °ü·Ã url)
Visual Studio ȯ°æ È®Àå
http://msdn.microsoft.com/library/KOR/vsintro7/html/vxoriExtendingVisualStudioEnvironment.asp?frame=true
ÀÚµ¿È ¹× È®À强 ÂüÁ¶
http://msdn.microsoft.com/library/KOR/vsintro7/html/vxoriExtensibilityReference.asp?frame=true
Áö±ÝºÎÅÍ Ãß°¡±â´ÉÀ» ¾î¶»°Ô ¸¸µå´ÂÁö ¾Ë¾Æº¸°Ú½À´Ï´Ù.
Ãß°¡±â´ÉÀ» ¼öµ¿À¸·Î ¸¸µé¾î¼ Ãß°¡ÇÒ ¼öµµ ÀÖÁö¸¸ VS .NET 2003¿¡¼ Á¦°øÇÏ´Â Ãß°¡ ±â´É ¸¶¹ý»ç¸¦ ÀÌ¿ëÇÏ¸é ½±°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
1. ÆÄÀÏ > »õ·Î¸¸µé±â > ÇÁ·ÎÁ§Æ® > ±âŸ ÇÁ·ÎÁ§Æ® > È®À强 ÇÁ·ÎÁ§Æ® > Visual Studio .NET Ãß°¡ ±â´É ¼±ÅÃ
À̸§, À§Ä¡¸¦ ¼±ÅÃÇϰí È®ÀÎ ¹öưÀ» Ŭ¸¯ÇÕ´Ï´Ù.
¸¶¹ý»ç°¡ ³ªÅ¸³ª´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
Áß¿äÇÑ ºÎºÐ¸¸ ¼³¸íÇÒ Å×´Ï ³ª¸ÓÁö ºÎºÐÀº Àڽſ¡°Ô ¸Â°Ô ¼±ÅÃÇÏ°í ´ÙÀ½À» ´©¸£¸é µË´Ï´Ù.
2. Ãß°¡ ±â´É ¿É¼Ç ¼±ÅÃ
1. Ãß°¡ ±â´ÉÀ» µµ±¸ ¸Þ´º¿¡ Ç¥½ÃÇÒÁö ¿©ºÎ
2-1. Ãß°¡ ±â´É¿¡ ¸ð´Þ UI(»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º)¸¦ »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÏ¿© ¸í·ÉÁÙ ºôµå¿¡¼ ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÒÁö ¿©ºÎ
2-2. Ãß°¡ ±â´ÉÀ» ½ÃÀÛÇÏ´Â ½Ã±â(VS .NET ÀÌ ½ÇÇàµÉ ¶§ Ãß°¡±â´ÉÀ» ·Îµå ÇÒÁö ¿©ºÎ)
¿ì¸®´Â 1¹ø "¿¹, 'µµ±¸' ¸Þ´º Ç׸ñÀ» ¸¸µì´Ï´Ù. È£½ºÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÃÀÛµÉ ¶§¡¦" ¸¦ ¼±ÅÃÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
3. ¸¶Ä§ ¹öưÀ» ´·¯ ¸¶¹ý»ç¸¦ ¸¶Ä¡¸é ¾Æ·¡¿Í °°ÀÌ ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµË´Ï´Ù.
Ãß°¡±â´É ÇÁ·ÎÁ§Æ®¿Í ¼³Ä¡ ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÅÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
ÀÌÁ¦ Ãß°¡±â´ÉÀÇ ÀüüÀûÀΠƲÀº ¿Ï¼ºµÆ½À´Ï´Ù. ¿ì¸®´Â ¿øÇÏ´Â ±â´É¸¸ ±¸ÇöÇÏ¸é µË´Ï´Ù.
±× Àü¿¡ ¸¶¹ý»ç°¡ ¸¸µé¾î ³õÀº ÇÁ·ÎÁ§Æ®¿Í ¼Ò½º¸¦ Á» »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
ÂüÁ¶¿¡ º¸¸é ³¸¼± ³ðµéÀÌ ¼¼ °³°¡ Ãß°¡µÅÀÖ´Â °ÍÀÌ º¸ÀÔ´Ï´Ù. ÀÌ ³ðµéÀ» »ìÆìº¸ÀÚ¸é ¸»ÀÌÁÒ.
EnvDTE
Visual Studio .NET ÀÚµ¿È ¸ðµ¨ÀÇ ¸ðµç °³Ã¼¿Í ¸â¹ö´Â DTE °³Ã¼¸¦ ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. Visual Studio .NET IDE¸¦ ´ëÇ¥ÇÏ´Â DTE °³Ã¼´Â ÀÚµ¿È ¸ðµ¨ °èÃþ ±¸Á¶ÀÇ ÃÖ»óÀ§ °³Ã¼À̸ç EnvDTE¶ó´Â ³×ÀÓ½ºÆäÀ̽º¿¡ À§Ä¡ÇÕ´Ï´Ù. ÀÌ ³×ÀÓ½ºÆäÀ̽º´Â "envdte"¶ó´Â .NET ¾î¼Àºí¸® À̸§À¸·Î envdte.dll ÆÄÀÏ¿¡ Æ÷ÇԵǸç, COM Çü½Ä ¶óÀ̺귯¸®´Â "Microsoft Development Environment 7.0"À̶ó´Â À̸§À¸·Î dte.olb ÆÄÀÏ¿¡ Æ÷ÇԵ˴ϴÙ. (MSDN ¹ßÃé)
±×·¸½À´Ï´Ù. Ãß°¡±â´ÉÀ» ¸¸µé±â À§Çؼ´Â DTE °³Ã¼°¡ ÇÊ¿äÇϱ⠶§¹®¿¡ EnvDTE ¿¡¼Àºí¸®°¡ ÂüÁ¶µÈ °ÍÀÔ´Ï´Ù.
¸¶¹ý»ç¿¡ ÀÇÇØ¼ »ý¼ºµÈ Connect.cs ÆÄÀÏÀ» »ìÆìº¸¸é ¸â¹ö º¯¼ö·Î DTE °³Ã¼¸¦ ¼±¾ðÇØ ³õÀº °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
private _DTE applicationObject;
Âü°í·Î DTE °³Ã¼´Â Ãß°¡ ±â´ÉÀ» ¸¸µé ¶§ ±¸ÇöÇÏ´Â OnConnection ¸Þ¼µå¿¡¼ Á¦°øÇÕ´Ï´Ù.
Extensibility
ÀÌ ³×ÀÓ½ºÆäÀ̽º´Â IDTExtensibility2 ÀÎÅÍÆäÀ̽º¸¦ Æ÷ÇÔÇϴµ¥ IDTExtensibility2 ÀÎÅÍÆäÀ̽º´Â Ãß°¡ ±â´ÉÀÌ ·Îµå, ¾ð·Îµå, ¾÷µ¥ÀÌÆ®µÇ´Â °æ¿ì µî¿¡ ¹ß»ýÇÏ´Â À̺¥Æ® ¾Ë¸²À» È£½ºÆÃÇÕ´Ï´Ù. (MSDN ¹ßÃé)
¸â¹ö·Î´Â OnConnection, OnDisconnection µîÀÌ ÀÖ½À´Ï´Ù.
¸Þ¼µå¿¡ ´ëÇÑ ¼³¸íÀº ¾Æ·¡¿¡¼ ´Ù½Ã ´Ù·ç°Ú½À´Ï´Ù.
Office
Microsoft.Office.Core ³×ÀÓ½ºÆäÀ̽ºÀÇ _CommandBars, CommandBar, CommandBarControl ÀÎÅÍÆäÀ̽ºÀÇ ¸â¹ö¸¦ »ç¿ëÇÏ¿© VS .NET ¸Þ´º¿¡ Ãß°¡±â´É ¸Þ´º¸¦ Ãß°¡Çϱâ À§Çؼ ÂüÁ¶µÇ¾ú½À´Ï´Ù.
ÀÚ~ ÀÌÁ¦ Connect.cs ÀÇ ³»¿ëµµ »ìÆì º¸µµ·Ï ÇÒ±î¿ä.
¸ÕÀú Ŭ·¡½º Á¤ÀÇ ºÎºÐÀ» »ìÆìº¸¸é IDTExtensibility2, IDTCommandTarget ¶ó´Â ÀÎÅÍÆäÀ̽º¸¦ »ó¼ÓÇϰí ÀÖ½À´Ï´Ù.
public class Connect : Object, Extensibility.IDTExtensibility2, IDTCommandTarget
IDTExtensibility2 : À§¿¡¼ ¼³¸íÇÑ´ë·Î Ãß°¡±â´ÉÀÌ ·Îµå, ¾ð·Îµå, ¾÷µ¥ÀÌÆ®µÇ´Â °æ¿ì µî¿¡ ¹ß»ýÇÏ´Â
À̺¥Æ®¸¦ ó¸®Çϱâ À§ÇÔÀÔ´Ï´Ù.
IDTCommandTarget : AddNamedCommand ¸Þ¼µå·Î Ãß°¡µÈ ¸í·ÉÀ» ó¸®ÇÏ·Á¸é ÀÌ ÀÎÅÍÆäÀ̽º¸¦
±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.
¸â¹ö´Â ´ÙÀ½°ú °°½À´Ï´Ù.
Exec : AddNamedCommand ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© Ãß°¡ÇÑ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
QueryStatus : AddNamedCommand ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© Ãß°¡ÇÑ ¸í·ÉÀÇ ÇöÀç »óÅÂ
(»ç¿ë, »ç¿ë ¾È ÇÔ, ¼û±è µî)¸¦ ¹ÝȯÇÕ´Ï´Ù.
IDTCommandTarget ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¸é °³¹ß ȯ°æ¿¡¼ ¸í¸íµÈ ¸í·ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ¸í·ÉÀÇ »óŸ¦ Á¤ÀÇÇÏ°í ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
AddNamedCommand ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© Ãß°¡ÇÑ ¸í·ÉÀ» ¸í·É â¿¡ ÀÔ·ÂÇÏ¸é ¸í·É â¿¡¼´Â ¸ÕÀú IDTCommandTarget ÀÎÅÍÆäÀ̽ºÀÇ QueryStatus ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ÇØ´ç ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¸¦ È®ÀÎÇÕ´Ï´Ù. ExecuteCommand ¸Þ¼µå¸¦ È£ÃâÇÏ´Â °æ¿ì¿¡µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
Ãß°¡ ±â´É¿¡¼ IDTExtensibility2¿Í ÇÔ²² ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °æ¿ì Ãß°¡ ±â´É¿¡¼ ¸¸µç ¸í¸íµÈ ¸í·ÉÀÇ ½ÇÇàÀº ÀÌ ÀÎÅÍÆäÀ̽º·Î Á÷Á¢ ¶ó¿ìÆÃµË´Ï´Ù. (MSDN ¹ßÃé)
Ŭ·¡½º Á¤ÀÇ ºÎºÐ¿¡ ´ëÇÑ ¼³¸íÀº ¿©±â±îÁö ÇÏ°í ¸Þ¼µå·Î ³Ñ¾î°¡ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
Ŭ·¡½º Á¤ÀÇ ºÎºÐÀ» ¼³¸íÇÒ ¶§ ³ª¿Â IDTExtensibility2 ÀÎÅÍÆäÀ̽º¸¦ ±â¾ïÇϽóª¿ä? ÀÌ ÀÎÅÍÆäÀ̽ºÀÇ ¸â¹ö¸¦ ±¸ÇöÇØ ³õÀº ³ðµéÀÌ ¹Ù·Î OnConnection, OnDisconnection, OnAddInsUpdate, OnStartupComplete, OnBeginShutdown ÀÔ´Ï´Ù. ¿©±â¿¡¼´Â ÀÚÁÖ ¾²ÀÌ´Â ¾Õ¿¡ µÎ ³ð¸¸ ¼³¸íÇϰڽÀ´Ï´Ù.
public void OnConnection
Ãß°¡ ±â´ÉÀÌ Visual Studio¿¡ ·ÎµåµÉ ¶§¸¶´Ù ¹ß»ýÇÕ´Ï´Ù. µû¶ó¼ ÀÌ °÷¿¡¼ DTE °³Ã¼ÀÇ ÃʱâÈ ¹× µµ±¸ ¸Þ´º¿¡ Ãß°¡±â´É ¸Þ´º¸¦ µî·ÏÇÏ´Â ÀÛ¾÷ÀÌ ÀÌ·ç¾î Áý´Ï´Ù.
¾Æ·¡ Äڵ尡 ¹Ù·Î ±× °ÍÀÌÁÒ.
public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode,
object addInInst, ref System.Array custom)
{
applicationObject = (_DTE)application; //DTE °³Ã¼ º¯¼ö ÃʱâÈ
addInInstance = (AddIn)addInInst; //Ãß°¡±â´É(add-in) °³Ã¼ ÃʱâÈ
//Ãß°¡ ±â´É(add-in) ¸Þ´º¸¦ VS .NET ¸Þ´º¿¡ Ãß°¡ÇÏ´Â ºÎºÐ
//»ç½Ç ÀÌ ºÎºÐÀº ¸¶¹ý»ç¿¡¼ "¿¹, 'µµ±¸' ¸Þ´º Ç׸ñÀ» ¸¸µì´Ï´Ù. È£½ºÆ® ÀÀ¿ëÇÁ·Î±×·¥ÀÌ
//½ÃÀÛµÉ ¶§¡¦"¸¦ ¼±ÅÃÇ߱⠶§¹®¿¡ Ãß°¡µÈ ÄÚµå ÀÔ´Ï´Ù. ¼±ÅÃÇÏÁö ¾Ê¾Ò´Ù¸é ¾Æ·¡ Äڵ嵵
//»ý¼ºµÇÁö ¾Ê½À´Ï´Ù.
if(connectMode == Extensibility.ext_ConnectMode.ext_cm_UISetup)
{
object []contextGUIDS = new object[] { };
Commands commands = applicationObject.Commands;
_CommandBars commandBars = applicationObject.CommandBars;
try
{
Command command = commands.AddNamedCommand(addInInstance, "MyAddin1",
"MyAddin1", "Executes the command for MyAddin1", true, 59,
ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported
+ (int)vsCommandStatus.vsCommandStatusEnabled);
CommandBar commandBar = (CommandBar)commandBars["Tools"];
CommandBarControl commandBarControl = command.AddControl(commandBar, 1);
}
catch(System.Exception /*e*/)
{
}
}
}
|
public void OnDisconnection
Visual Studio¿¡¼ Ãß°¡ ±â´ÉÀÌ ¾ð·ÎµåµÉ ¶§¸¶´Ù ¹ß»ýÇÕ´Ï´Ù.
Ŭ·¡½º Á¤ÀÇ ºÎºÐ¿¡¼ ¼³¸íÇÑ IDTCommandTarget ÀÎÅÍÆäÀ̽º ¸â¹ö¸¦ ±¸ÇöÇÑ ¸Þ¼µåµé ÀÔ´Ï´Ù.
public void QueryStatus
ÁöÁ¤ÇÑ ¸í¸íµÈ ¸í·ÉÀÇ ÇöÀç »óÅÂ(»ç¿ë, »ç¿ë ¾È ÇÔ, ¼û±è µî)¸¦ ¹ÝȯÇÕ´Ï´Ù.
¿¹¸¦ µé¾î ƯÁ¤ ¾ð¾î(C#, VB.Net)¸¦ »ç¿ëÇÒ ¶§ ȤÀº ÅØ½ºÆ®¸¦ ¼±ÅÃÇßÀ» ¶§ ¸Þ´º¸¦ º¸À̰ųª ¼û±â·Á ÇÑ´Ù¸é ¿©±â¿¡ ±× Äڵ带 ±¸ÇöÇÏ¸é µË´Ï´Ù.
public void Exec
ÁöÁ¤ÇÑ ¸í¸íµÈ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
Ãß°¡±â´É(add-in) ¸Þ´º¸¦ Ŭ¸¯ÇßÀ» ¶§ ½ÇÇàµÇ´Â ¸Þ¼µå ÀÔ´Ï´Ù.
handled = false;
if(executeOption == EnvDTE.vsCommandExecOption.vsCommandExecOptionDoDefault)
{
if(commandName == "MyAddin1.Connect.MyAddin1")
{
//ÀÌ °÷¿¡ ¸Þ´º°¡ Ŭ¸¯µÆÀ» ¶§ ½ÇÇàÇÒ ±¸¹®À» Ãß°¡ÇÏ¸é µË´Ï´Ù.
handled = true;
return;
}
}
|
Connect.cs ¼Ò½º´Â ¸¶¹ý»ç Áß¿¡¼ "Ãß°¡ ±â´É ¿É¼Ç"ÀÇ ¿É¼Ç ¼±Åÿ¡ µû¶ó¼ Á¶±Ý¾¿ ¹Ù²ò´Ï´Ù. ¿É¼Ç¿¡ µû¶ó¼ ÇÊ¿äÇÑ Äڵ尡 Ãß°¡µÇ°Å³ª Á¦°Å µÇ´Â °ÍÀÌÁÒ.
ÀüüÀûÀ¸·Î Á¤¸®ÇÏÀÚ¸é Ãß°¡±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀÛ¾÷ÀÌ ÇÊ¿äÇÕ´Ï´Ù.
1. DTE °³Ã¼ Á¤ÀÇ
2. IDTExtensibility2 ÀÎÅÍÆäÀ̽º ±¸Çö
3. IDTCommandTarget ÀÎÅÍÆäÀ̽º ±¸Çö(UI¸¦ Á¦°øÇÒ °æ¿ì)
¿©±â±îÁö ¼Ò½º¿¡ ´ëÇÑ ¼³¸íÀ̾ú½À´Ï´Ù.
´Ù½Ã ½Ç½ÀÀ¸·Î µ¹¾Æ°¡¼ Connect.cs ÆÄÀÏ¿¡ ¿øÇÏ´Â ±â´ÉÀ» ±¸ÇöÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
¿ì¸®´Â ¸Þ´º¸¦ Ŭ¸¯ÇÏ¸é ¸Þ½ÃÁö ¹Ú½º¿¡ ¡°Ãß°¡±â´É!!¡±À̶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇØº¸°Ú½À´Ï´Ù.
¿ì¼± ÂüÁ¶¿¡ System.Windows.Forms¸¦ Ãß°¡ÇÕ´Ï´Ù.
´ÙÀ½Ã³·³ Exec ¸Þ¼µå¿¡ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
public void Exec(string commandName, EnvDTE.vsCommandExecOption executeOption,
ref object varIn, ref object varOut, ref bool handled)
{
handled = false;
if(executeOption == EnvDTE.vsCommandExecOption.vsCommandExecOptionDoDefault)
{
if(commandName == "MyAddin1.Connect.MyAddin1")
{
System.Windows.Forms.MessageBox.Show("Ãß°¡±â´É!!");
handled = true;
return;
}
}
}
|
ÀÌÁ¦ ¼³Ä¡ ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÕ´Ï´Ù.
ÀÌÁ¦ ¿©·¯ºÐÀÇ Ãß°¡±â´É ¼³Ä¡ÇÁ·ÎÁ§Æ®ÀÇ Ãâ·Â°æ·Î(Ãß°¡±â´ÉÇÁ·ÎÁ§Æ®¸í\¼³Ä¡ÇÁ·ÎÁ§Æ®¸í\debug)·Î °¡¼ Setup.exe¸¦ ½ÇÇàÇØ¼ Ãß°¡±â´ÉÀ» ¼³Ä¡ÇÕ´Ï´Ù. À̶§ VS .NETÀº ¸ðµÎ ´Ý°í ¼³Ä¡Çϼ¼¿ä.
VS .NETÀ» ½ÇÇàÇÕ´Ï´Ù. µµ±¸ ¸Þ´º¿¡ ´ÙÀ½°ú °°ÀÌ ¿©·¯ºÐÀÌ ¸¸µç Ãß°¡±â´ÉÀÌ Ãß°¡µÅÀÖ°í ¸Þ´º¸¦ Ŭ¸¯Çϸé Á» Àü¿¡ Ãß°¡Çß´ø Äڵ尡 ½ÇÇàµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿©·¯ºÐµéÀº ¿©±â±îÁö ÇØº¸½Å ¼Ò°¨ÀÌ ¾î¶°½ÅÁö¿ä?
VS .NET Ãß°¡ ±â´É ¸¸µå´Â °ÍÀ» ¾î¶»°Ô »ý°¢ÇϼÌÀ»Áö ¸ð¸£Áö¸¸ Àú´Â ¾î·Á¿î ÀÛ¾÷À̶ó°í »ý°¢Çϰí ÀÖ¾úÁÒ. ±Ùµ¥ ÀÌ·¸°Ô °£´ÜÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù´Â °É ¾Ë°í Á» Ç㹫Çß´Ù°í³ª ÇÒ±î¿ä? ¹¹ ±×·± ´À³¦À̾ú½À´Ï´Ù.
´ÙÀ½ °Á¿¡´Â ½Ç¿ëÀûÀÎ ¿¹Á¦·Î °Á¸¦ ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
DOWNLOAD : °Á¿¡¼ »ç¿ëµÈ ¼Ò½º¸¦ ´Ù¿î·Îµå ¹ÞÀ¸½Ã·Á¸é Ŭ¸¯Çϼ¼¿ä
°Á ¸ñ·ÏÀ¸·Î..
|