Browse Source

Now MSBuild property $(SolutionDir) is available when compiling single projects.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@926 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
d68d56b34c
  1. 104
      doc/technotes/AddInTree.rtf
  2. 11
      src/Main/Base/Project/Src/Project/MSBuildEngine.cs
  3. 10
      src/Main/Base/Project/Src/Project/MSBuildProject.cs
  4. 2
      src/Main/Base/Project/Src/Project/Solution/Solution.cs

104
doc/technotes/AddInTree.rtf

@ -1,14 +1,14 @@
{\rtf1\ansi\ansicpg1252\uc1\deff37\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} {\rtf1\ansi\ansicpg1252\uc1\deff37\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f5\fmodern\fcharset0\fprq1{\*\panose 02070409020205020404}Courier{\*\falt Courier New};} {\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f5\fmodern\fcharset0\fprq1{\*\panose 02070409020205020404}Courier{\*\falt Courier New};}
{\f37\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Thorndale{\*\falt Times New Roman};}{\f38\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Albany{\*\falt Arial};}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;} {\f37\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Thorndale{\*\falt Times New Roman};}{\f38\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Albany{\*\falt Arial};}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}
{\f40\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Cumberland{\*\falt Courier New};}{\f41\fnil\fcharset2\fprq0{\*\panose 00000000000000000000}StarSymbol{\*\falt Arial Unicode MS};}{\f139\froman\fcharset238\fprq2 Times New Roman CE;} {\f40\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Cumberland{\*\falt Courier New};}{\f41\fnil\fcharset2\fprq0{\*\panose 00000000000000000000}StarSymbol{\*\falt Arial Unicode MS};}{\f138\froman\fcharset238\fprq2 Times New Roman CE;}
{\f140\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f142\froman\fcharset161\fprq2 Times New Roman Greek;}{\f143\froman\fcharset162\fprq2 Times New Roman Tur;}{\f144\froman\fcharset177\fprq2 Times New Roman (Hebrew);} {\f139\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f141\froman\fcharset161\fprq2 Times New Roman Greek;}{\f142\froman\fcharset162\fprq2 Times New Roman Tur;}{\f143\froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f145\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f146\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f147\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f149\fswiss\fcharset238\fprq2 Arial CE;} {\f144\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f145\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f146\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f148\fswiss\fcharset238\fprq2 Arial CE;}
{\f150\fswiss\fcharset204\fprq2 Arial Cyr;}{\f152\fswiss\fcharset161\fprq2 Arial Greek;}{\f153\fswiss\fcharset162\fprq2 Arial Tur;}{\f154\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f155\fswiss\fcharset178\fprq2 Arial (Arabic);} {\f149\fswiss\fcharset204\fprq2 Arial Cyr;}{\f151\fswiss\fcharset161\fprq2 Arial Greek;}{\f152\fswiss\fcharset162\fprq2 Arial Tur;}{\f153\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f154\fswiss\fcharset178\fprq2 Arial (Arabic);}
{\f156\fswiss\fcharset186\fprq2 Arial Baltic;}{\f157\fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f159\fmodern\fcharset238\fprq1 Courier New CE;}{\f160\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f162\fmodern\fcharset161\fprq1 Courier New Greek;} {\f155\fswiss\fcharset186\fprq2 Arial Baltic;}{\f156\fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f158\fmodern\fcharset238\fprq1 Courier New CE;}{\f159\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f161\fmodern\fcharset161\fprq1 Courier New Greek;}
{\f163\fmodern\fcharset162\fprq1 Courier New Tur;}{\f164\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f165\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f166\fmodern\fcharset186\fprq1 Courier New Baltic;} {\f162\fmodern\fcharset162\fprq1 Courier New Tur;}{\f163\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f164\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f165\fmodern\fcharset186\fprq1 Courier New Baltic;}
{\f167\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f529\fswiss\fcharset238\fprq2 Verdana CE;}{\f530\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f532\fswiss\fcharset161\fprq2 Verdana Greek;}{\f533\fswiss\fcharset162\fprq2 Verdana Tur;} {\f166\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f528\fswiss\fcharset238\fprq2 Verdana CE;}{\f529\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f531\fswiss\fcharset161\fprq2 Verdana Greek;}{\f532\fswiss\fcharset162\fprq2 Verdana Tur;}
{\f536\fswiss\fcharset186\fprq2 Verdana Baltic;}{\f537\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0; {\f535\fswiss\fcharset186\fprq2 Verdana Baltic;}{\f536\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green100\blue0; \red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green100\blue0;
\red139\green69\blue19;\red0\green139\blue139;\red25\green25\blue112;\red165\green42\blue42;}{\stylesheet{\ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \snext0 Normal;}{ \red139\green69\blue19;\red0\green139\blue139;\red25\green25\blue112;\red165\green42\blue42;}{\stylesheet{\ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \snext0 Normal;}{
\s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon16 \snext15 heading 1;}{ \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 \sbasedon16 \snext15 heading 1;}{
@ -37,16 +37,16 @@ Contents Heading;}{\s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto
\i\cf1\lang0\langfe255\langnp0\langfenp255 \sbasedon10 Emphasis;}{\*\cs47 \additive \i\cf1\lang0\langfe255\langnp0\langfenp255 Citation;}{\*\cs48 \additive \b\cf1\lang0\langfe255\langnp0\langfenp255 Strong Emphasis;}{\*\cs49 \additive \i\cf1\lang0\langfe255\langnp0\langfenp255 \sbasedon10 Emphasis;}{\*\cs47 \additive \i\cf1\lang0\langfe255\langnp0\langfenp255 Citation;}{\*\cs48 \additive \b\cf1\lang0\langfe255\langnp0\langfenp255 Strong Emphasis;}{\*\cs49 \additive
\f40\cf1\lang0\langfe255\langnp0\langfenp255 Source Text;}{\*\cs50 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Example;}{\*\cs51 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 User Entry;}{\*\cs52 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Source Text;}{\*\cs50 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Example;}{\*\cs51 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 User Entry;}{\*\cs52 \additive
\i\cf1\lang0\langfe255\langnp0\langfenp255 Variable;}{\*\cs53 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Definition;}{\*\cs54 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Teletype;}{\*\cs55 \additive \i\cf1\lang0\langfe255\langnp0\langfenp255 Variable;}{\*\cs53 \additive \cf1\lang0\langfe255\langnp0\langfenp255 Definition;}{\*\cs54 \additive \f40\cf1\lang0\langfe255\langnp0\langfenp255 Teletype;}{\*\cs55 \additive
\f2\cf1\lang0\langfe255\langnp0\langfenp255 Code;}{\*\cs56 \additive \ul\cf2 \sbasedon10 \styrsid9855141 Hyperlink;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid1193469\rsid3563042\rsid3692308\rsid5582925\rsid9005571\rsid9334114 \f2\cf1\lang0\langfe255\langnp0\langfenp255 Code;}{\*\cs56 \additive \ul\cf2 \sbasedon10 \styrsid9855141 Hyperlink;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid1193469\rsid3476083\rsid3563042\rsid3692308\rsid5468609\rsid5582925
\rsid9855141\rsid14162400\rsid15608638\rsid16393729}{\*\generator Microsoft Word 11.0.6502;}{\info{\author Christoph Wille}{\operator mich}{\creatim\yr2002\mo2\dy22\hr20\min46}{\revtim\yr2005\mo11\dy26\hr14\min35}{\printim\yr2113\mo1\dy1}{\version6} \rsid7873711\rsid9005571\rsid9334114\rsid9855141\rsid14162400\rsid15608638\rsid15736429\rsid16393729}{\*\generator Microsoft Word 11.0.6502;}{\info{\author Christoph Wille}{\operator mich}{\creatim\yr2002\mo2\dy22\hr20\min46}
{\edmins0}{\nofpages5}{\nofwords1531}{\nofchars9647}{\*\company AlphaSierraPapa}{\nofcharsws11156}{\vern24579}}\paperw11906\paperh16838\margl1170\margr1130\margt1134\margb1997 {\revtim\yr2005\mo12\dy19\hr19\min1}{\printim\yr2113\mo1\dy1}{\version9}{\edmins0}{\nofpages5}{\nofwords1530}{\nofchars9646}{\*\company AlphaSierraPapa}{\nofcharsws11154}{\vern24579}}\paperw11906\paperh16838\margl1170\margr1130\margt1134\margb1997
\deftab1250\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3 \deftab1250\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
\jcompress\viewkind1\viewscale100\nolnhtadjtbl\rsidroot3563042 \fet0{\*\ftnsep \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsep \jcompress\viewkind1\viewscale100\nolnhtadjtbl\rsidroot3563042 \fet0{\*\ftnsep \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsep
\par }}{\*\ftnsepc \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsepc \par }}{\*\ftnsepc \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsepc
\par }}{\*\aftnsep \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsep \par }}{\*\aftnsep \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsep
\par }}{\*\aftnsepc \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsepc \par }}{\*\aftnsepc \pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \chftnsepc
\par }}\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj {\footer \pard\plain \s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \tab \'a9 \par }}\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj {\footer \pard\plain \s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \tab \'a9
Daniel Grunwald 2005\tab }{\field{\*\fldinst {\insrsid9334114 \\page}}{\fldrslt {\lang1024\langfe1024\noproof\insrsid15608638 1}}}{\insrsid9334114 Daniel Grunwald 2005\tab }{\field{\*\fldinst {\insrsid9334114 \\page}}{\fldrslt {\lang1024\langfe1024\noproof\insrsid7873711 1}}}{\insrsid9334114
\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}} \par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}
{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8 {\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
@ -55,64 +55,64 @@ Contents Heading;}{\s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto
\par }{\b\fs56\loch\af1\insrsid9334114 \hich\af37\dbch\af0\loch\f1 AddIn System Documentation}{\insrsid9334114 \par }{\b\fs56\loch\af1\insrsid9334114 \hich\af37\dbch\af0\loch\f1 AddIn System Documentation}{\insrsid9334114
\par }{\b\f1\fs32\insrsid9334114 Version 0.1 \par }{\b\f1\fs32\insrsid9334114 Version 0.1
\par }{\b\f1\insrsid9334114 \par }{\b\f1\insrsid9334114
\par }{\b\loch\af1\insrsid9334114 \hich\af37\dbch\af0\loch\f1 by Daniel Grunwald, }{\field{\*\fldinst {\b\loch\af1\insrsid9334114 \hich\af37\dbch\af0\loch\f1 HYPERLINK "mailto:daniel@danielgrunwald.de" }{\b\loch\af1\insrsid5582925\charrsid9334114 \par }{\b\loch\af1\insrsid9334114 \hich\af37\dbch\af0\loch\f1 by Daniel Grunwald, }{\field{\*\fldinst {\b\loch\af1\insrsid9334114 \hich\af37\dbch\af0\loch\f1 HYPERLINK "mailto:daniel@danielgrunwald.de" }{\b\loch\af1\insrsid3476083\charrsid9334114
{\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b400000006d00610069006c0074006f003a00640061006e00690065006c004000640061006e00690065006c006700720075006e00770061006c0064002e00640065000000000000}}}{\fldrslt { {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b400000006d00610069006c0074006f003a00640061006e00690065006c004000640061006e00690065006c006700720075006e00770061006c0064002e0064006500000000000000}}}{\fldrslt {
\cs38\b\f1\ul\cf9\insrsid9334114 daniel@danielgrunwald.de}}}{\insrsid9334114 \cs38\b\f1\ul\cf9\insrsid9334114 daniel@danielgrunwald.de}}}{\insrsid9334114
\par \par
\par }{\fs22\insrsid9334114 \par }{\fs22\insrsid9334114
\par \sect }\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj {\footer \pard\plain \s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \tab \'a9 \par \sect }\sectd \sbknone\linex0\footery1440\sectdefaultcl\sftnbj {\footer \pard\plain \s19\ql \li0\ri0\nowidctlpar\tqc\tx4819\tqr\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 \tab \'a9
Daniel Grunwald 2005\tab }{\field{\*\fldinst {\insrsid9334114 \\page}}{\fldrslt {\lang1024\langfe1024\noproof\insrsid15608638 4}}}{\insrsid9334114 Daniel Grunwald 2005\tab }{\field{\*\fldinst {\insrsid9334114 \\page}}{\fldrslt {\lang1024\langfe1024\noproof\insrsid5468609 2}}}{\insrsid9334114
\par }}\pard\plain \s26\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \b\f39\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 Contents \par }}\pard\plain \s26\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \b\f39\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 Contents
\par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {\fs22\insrsid9855141 TOC \\o "1-3" \\h \\z \\u }}{\fldrslt \par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {\fs22\insrsid9855141 TOC \\o "1-3" \\h \\z \\u }}{\fldrslt
{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778769"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{ {\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778769"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370036003900000002}}}{\fldrslt { \ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003600390000000200}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 1 About the AddIn System Documentation}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 1 About the AddIn System Documentation}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141
PAGEREF _Toc120778769 \\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003600390000007f}}}{\fldrslt { PAGEREF _Toc120778769 \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003600390000007f00}}}{\fldrslt {
\lang1024\langfe1024\noproof\webhidden\insrsid9855141 1}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \lang1024\langfe1024\noproof\webhidden\insrsid9855141 1}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778770"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 } \par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778770"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }
{\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370030000000ae}}}{\fldrslt { {\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370030000000ae00}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2 AddIn Tree}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778770 \\h }{ \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2 AddIn Tree}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778770 \\h }{
\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370030000000b7}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 1}}}}}{ \lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370030000000b76d}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 1}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }\pard\plain \s28\ql \li283\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin283\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst { \par }\pard\plain \s28\ql \li283\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin283\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778771"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{ \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778771"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370031000000ba}}}{\fldrslt { \ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370031000000ba00}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.1 AddIn Definition}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778771 \\ \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.1 AddIn Definition}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778771 \\
h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370031000000cb}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 2}}}}}{ h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f0063003100320030003700370038003700370031000000cb00}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 2}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778772"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 } \par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778772"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }
{\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003200000000}}}{\fldrslt { {\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700320000000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.2 The Runtime Section}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778772 \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.2 The Runtime Section}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778772
\\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003200000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 2}}}}}{ \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700320000000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 2}}}
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 }}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778773"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 } \par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778773"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }
{\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003300000000}}}{\fldrslt { {\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700330000000066}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.3 Doozers}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778773 \\h }{ \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.3 Doozers}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778773 \\h }{
\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003300000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 3}}}}}{ \lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700330000000065}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 3}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778774"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 } \par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778774"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }
{\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003400000000}}}{\fldrslt { {\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700340000000020}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.4 Building Items in the AddIn Tree}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 2.4 Building Items in the AddIn Tree}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141
PAGEREF _Toc120778774 \\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003400000000}}}{\fldrslt { PAGEREF _Toc120778774 \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700340000000061}}}{\fldrslt {
\lang1024\langfe1024\noproof\webhidden\insrsid9855141 4}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \lang1024\langfe1024\noproof\webhidden\insrsid9855141 4}}}}}{\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 } \par }\pard\plain \s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto\rin0\lin0\itap0 \f1\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }
{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778775"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield {\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778775"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003500000000}}}{\fldrslt {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 3. Conditions}{ 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700350000000014}}}{\fldrslt {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 3. Conditions}{
\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778775 \\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield \lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778775 \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003500000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{ 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700350000000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778776"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 } \par }{\field\fldedit{\*\fldinst {\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778776"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }
{\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003600000000}}}{\fldrslt { {\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700360000000000}}}{\fldrslt {
\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 4. List of available Doozers and ConditionEvaluators}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst { \cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 4. List of available Doozers and ConditionEvaluators}{\lang1024\langfe1024\noproof\webhidden\insrsid9855141 \tab }{\field{\*\fldinst {
\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778776 \\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield \lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778776 \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003600000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{ 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700360000000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141 \f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\par }\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 }}\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \par }\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 }}\pard\plain \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0
\f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\fs22\insrsid9334114 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\fs22\insrsid9334114
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778769}1 About the AddIn System Documentation \par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778769}1 About the AddIn System Documentation
{\*\bkmkend _Toc120778769} {\*\bkmkend _Toc120778769}
\par }\pard\plain \s15\qj \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 This document desc \par }\pard\plain \s15\qj \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 This document describes the AddIn system used by SharpDevelop. If you
ribes the AddIn system used by SharpDevelop. If you plan to write AddIns for SharpDevelop, you should read the \'93AddInBuildingGuide\'94 to learn how you should structure your project. plan to write AddIns for SharpDevelop, you should read the \'93AddInBuildingGuide\'94 to learn how you should structure your project.
\par }\pard \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 This document describes both the AddIn system in general (ICSharpCode.Core) and common extensions points for SharpDevelop. \par }\pard \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 This document describes both the AddIn system in general (ICSharpCode.Core) and common extensions points for SharpDevelop.
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778770}2 AddIn Tree{\*\bkmkend _Toc120778770} \par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778770}2 AddIn Tree{\*\bkmkend _Toc120778770}
@ -127,20 +127,20 @@ Compiled AddIns consist of two (or more) files: the AddIn xml definition, the ad
\par \par
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778771}2.1 AddIn Definition{\*\bkmkend _Toc120778771} \par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778771}2.1 AddIn Definition{\*\bkmkend _Toc120778771}
\par }\pard\plain \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 Every }{\b\insrsid9334114 node}{\insrsid9334114 in the AddIn-tree has a }{\b\insrsid9334114 Codon}{ \par }\pard\plain \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 Every }{\b\insrsid9334114 node}{\insrsid9334114 in the AddIn-tree has a }{\b\insrsid9334114 Codon}{
\insrsid9334114 . The in ICSharpCode.Core implementation, the AddInTreeNode class has a Codon property which is null for paths and points to a Codon instance for nodes. \insrsid9334114 . }{\insrsid7873711 In the }{\insrsid9334114 ICSharpCode.Core implementation, the AddInTreeNode class has a Codon property which is null for paths and points to a Codon instance for nodes.
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 Let's look at the XML way of defining a node with codon: \par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 Let's look at the XML way of defining a node with codon:
\par }{\f2\fs20\insrsid9334114 <MenuItem id = "Build" \par }{\f2\fs20\insrsid9334114 <MenuItem id = "Build"
\par }{\insrsid9334114 }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 label = "$\{res:XML.MainMenu.BuildMenu.BuildSolution\}"}{\insrsid9334114 \par }{\insrsid9334114 }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 label = "$\{res:XML.MainMenu.BuildMenu.BuildSolution\}"}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 shortcut = "F8"}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 shortcut = "F8"}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 icon = "Icons.16x16.BuildCombine"}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 icon = "Icons.16x16.BuildCombine"}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 class = "ICSharpCode.SharpDevelop.Project.Commands.Build"/>}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 class = "ICSharpCode.SharpDevelop.Project.Commands.Build"/>}{\insrsid9334114
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 When the AddIn tree is loaded, an instance of the }{\b\insrsid9334114 Codon }{\insrsid9334114 class is created. It's name property is set to \'93MenuItem\'94 \par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 When the AddIn tree is loaded, an instance of the }{\b\insrsid9334114 Codon }{\insrsid9334114 class is created. Its name property is set to \'93MenuItem\'94, its
, it's ID property to \'93Build\'94. The other attributes are put into a \'93Properties\'94 container (works like a Hashtable). ID property to \'93Build\'94. The other attributes are put into a \'93Properties\'94 container (works like a Hashtable).
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The codon contains the information about the menu item: label, shortcut, icon and the fully qualified name of the class being run when the item is clicked. \par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The codon contains the information about the menu item: label, shortcut, icon and the fully qualified name of the class being run when the item is clicked.
\par \par
\par The important thing about the AddIn tree is that it is constructed by combining the AddIn definitions from all AddIns. For example, the StartPage.addin file from the start page AddIn contains this: \par The important thing about the AddIn tree is that it is constructed by combining the AddIn definitions from all AddIns. For example, the StartPage.addin file from the start page AddIn contains this:
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\f2\fs20\insrsid9334114 <Path name = "/SharpDevelop/Workbench/MainMenu/View"> \par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\f2\fs20\insrsid9334114 <Path name = "/SharpDevelop/Workbench/MainMenu/View">
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 <MenuItem id = "Sh\hich\af37\dbch\af0\loch\f2 owStartPage"}{\insrsid9334114 \par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 <MenuItem id = "ShowStartPage"}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 insertafter = "ViewItemsSeparator"}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 insertafter = "ViewItemsSeparator"}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 insertbefore = "FullScreen"}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 insertbefore = "FullScreen"}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 label = "$\{res:XML.MainMenu.ViewMenu.ShowStartPage\}" }{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 label = "$\{res:XML.MainMenu.ViewMenu.ShowStartPage\}" }{\insrsid9334114
@ -148,8 +148,8 @@ Compiled AddIns consist of two (or more) files: the AddIn xml definition, the ad
\par }{\f2\fs20\insrsid9334114 \tab class = "ICSharpCode.StartPage.ShowStartPageCommand"/> \par }{\f2\fs20\insrsid9334114 \tab class = "ICSharpCode.StartPage.ShowStartPageCommand"/>
\par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 </Path>}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 </Path>}{\insrsid9334114
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The path }{\f2\fs20\insrsid9334114 "/SharpDevelop/Workbench/MainMenu/View"}{\insrsid9334114 \par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The path }{\f2\fs20\insrsid9334114 "/SharpDevelop/Workbench/MainMenu/View"}{\insrsid9334114
is defined in both the main AddIn file in SharpDevelop and in the StartPage's AddIn file. When loading the files, ICSharpCode.Core mer is defined in both the main AddIn file in SharpDevelop and in the StartPage's AddIn file. When loading the files, ICSharpCode.Core merges the contents o
ges the contents of the paths into the AddIn tree. The attributes insertafter and insertbefore are special, they control at what positions the items are inserted by specifying the IDs of the previous and next item. f the paths into the AddIn tree. The attributes insertafter and insertbefore are special, they control at what positions the items are inserted by specifying the IDs of the previous and next item.
\par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778772}2.2 The Runtime Section{\*\bkmkend _Toc120778772} \par }\pard\plain \s2\ql \li0\ri0\nowidctlpar\aspalpha\faauto\outlinelevel1\rin0\lin0\itap0 \f38\fs28\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778772}2.2 The Runtime Section{\*\bkmkend _Toc120778772}
\par }\pard\plain \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 Each AddIn definition file has one instance of the }{\b\insrsid9334114 AddIn}{\insrsid9334114 \par }\pard\plain \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 Each AddIn definition file has one instance of the }{\b\insrsid9334114 AddIn}{\insrsid9334114
class. That class contains the information found in the header and runtime section of the AddIn definition file. Each }{\b\insrsid9334114 Codon}{\insrsid9334114 class created for nodes in that file also hold a reference to that AddIn class. class. That class contains the information found in the header and runtime section of the AddIn definition file. Each }{\b\insrsid9334114 Codon}{\insrsid9334114 class created for nodes in that file also hold a reference to that AddIn class.
@ -160,14 +160,16 @@ ges the contents of the paths into the AddIn tree. The attributes insertafter an
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid9334114 \tab \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 <Import assembly = "CSharpBinding.dll"/>}{\insrsid9334114 \par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\fs20\loch\af2\insrsid9334114 \tab \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 <Import assembly = "CSharpBinding.dll"/>}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \tab \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 <Import assembly = ":ICSharpCode.SharpDevelop"/>}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \tab \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 <Import assembly = ":ICSharpCode.SharpDevelop"/>}{\insrsid9334114
\par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 </Runtime>}{\insrsid9334114 \par }{\fs20\loch\af2\insrsid9334114 \tab }{\fs20\loch\af2\insrsid9334114 \hich\af37\dbch\af0\loch\f2 </Runtime>}{\insrsid9334114
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The import elements are stored in the RunTimes property of the AddIn class. The AddIn class has also a method \'93CreateObject\'94. CreateObje \par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The import elements are stored in the RunTimes property of the AddIn class. The AddIn class has also a method \'93CreateObject\'94. CreateObject is use
ct is used when the class of a menu item should be created. Normally, CreateObject is called for menu items }{\b\insrsid9334114 when the item is clicked the first time}{\insrsid9334114 d when the class of a menu item should be created. Normally, CreateObject is called for menu items }{\b\insrsid9334114 when the item is clicked the first time}{\insrsid9334114
. CreateObject will go through all imported assemblies and look for the specified class name (in the order the imports are placed in the runtime section). . CreateObject will go through all imported assemblies and look for the specified class name (in the order the imports are placed in the runtime section).
\par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The imported assemblies are loaded when CreateObject needs them the first time. This leads to the result that }{\b\insrsid9334114 AddIns are loaded when they are first used}{ \par }\pard \ql \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\insrsid9334114 The imported assemblies are loaded when CreateObject needs them the first time. This leads to the result that }{\b\insrsid9334114 AddIns are loaded when they are first used}{
\insrsid9334114 . This is a great improvement for SharpDevelop's startup time. \insrsid9334114 . This is a great improvement for SharpDevelop's startup time.
\par CreateObject looks for the classes only in the assemblies specified. When you want to use a class from SharpDevelop's main assembly (e.g. a common command like Undo etc.), you have to import that assembly, too. It won't be loaded two times when it is \par Crea
referenced by multiple addins. Since addins can live in any subdirectory, it isn't possible to specify a fixed path back to ICSharpCode.SharpDevelop.dll. There is a special way to reference assemblies in the main directory, though: When the assembly attri teObject looks for the classes only in the assemblies specified. When you want to use a class from SharpDevelop's main assembly (e.g. a common command like Undo etc.), you have to import that assembly, too. It won't be loaded two times when it is referenc
bute starts with a colon (}{\f2\fs20\insrsid9334114 <Import assembly = ":ICSharpCode.SharpDevelop"/>}{\insrsid9334114 ), SharpDevelop will load the assembly using \'93Assembly.Load\'94 instead of the normal \'93Assembly.LoadFrom\'94 e
d by multiple addins. Since addins can live in any subdirectory, it isn't possible to specify a fixed path back to ICSharpCode.SharpDevelop.dll. There is a special way to reference assemblies in the main directory, though: When the assembly attribute star
ts with a colon (}{\f2\fs20\insrsid9334114 <Import assembly = ":ICSharpCode.SharpDevelop"/>}{\insrsid9334114 ), SharpDevelop will load the assembly using \'93Assembly.Load\'94 instead of the normal \'93Assembly.LoadFrom\'94
. You won't have to specify the path back, but there is another important difference: }{\b\insrsid9334114 You do not use the .dll file extension.}{\insrsid9334114 . You won't have to specify the path back, but there is another important difference: }{\b\insrsid9334114 You do not use the .dll file extension.}{\insrsid9334114
\par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\b\insrsid9334114 \par }\pard \qj \li0\ri0\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 {\b\insrsid9334114
\par }{\insrsid9334114 The runtime section can also contain doozer and condition evaluator definitions, read the doozer and conditions sections for more information on that. \par }{\insrsid9334114 The runtime section can also contain doozer and condition evaluator definitions, read the doozer and conditions sections for more information on that.
@ -289,6 +291,6 @@ You will get all classes defined in the path, in the order specified by their in
\par }\pard\plain \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 TODO: Write this section \par }\pard\plain \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 TODO: Write this section
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778776} \par }\pard\plain \s1\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\aspalpha\faauto\outlinelevel0\rin0\lin0\itap0 \b\f38\fs32\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 {\*\bkmkstart _Toc120778776}
4. List of available Doozers and ConditionEvaluators{\*\bkmkend _Toc120778776} 4. List of available Doozers and ConditionEvaluators{\*\bkmkend _Toc120778776}
\par }\pard\plain \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 The list}{\insrsid16393729 s are automatically generated from the source code and saved \par }\pard\plain \s15\ql \li0\ri0\sa120\nowidctlpar\aspalpha\faauto\rin0\lin0\itap0 \f37\fs24\cf1\lang1033\langfe255\cgrid\langnp1033\langfenp255 {\insrsid9334114 The list}{\insrsid16393729 s are automatically generat
as ConditionList.html and DoozerList.html in this directory}{\insrsid9334114 . ed from the source code and saved as ConditionList.html and DoozerList.html in this directory}{\insrsid9334114 .
\par }} \par }}

11
src/Main/Base/Project/Src/Project/MSBuildEngine.cs

@ -58,6 +58,14 @@ namespace ICSharpCode.SharpDevelop.Project
} }
} }
SortedList<string, string> additionalProperties = new SortedList<string, string>();
public IDictionary<string, string> AdditionalProperties {
get {
return additionalProperties;
}
}
string configuration; string configuration;
/// <summary> /// <summary>
@ -147,6 +155,9 @@ namespace ICSharpCode.SharpDevelop.Project
foreach (KeyValuePair<string, string> entry in MSBuildProperties) { foreach (KeyValuePair<string, string> entry in MSBuildProperties) {
engine.GlobalProperties.SetProperty(entry.Key, entry.Value); engine.GlobalProperties.SetProperty(entry.Key, entry.Value);
} }
foreach (KeyValuePair<string, string> entry in this.engine.additionalProperties) {
engine.GlobalProperties.SetProperty(entry.Key, entry.Value);
}
SharpDevelopLogger logger = new SharpDevelopLogger(this.engine, results); SharpDevelopLogger logger = new SharpDevelopLogger(this.engine, results);
engine.RegisterLogger(logger); engine.RegisterLogger(logger);

10
src/Main/Base/Project/Src/Project/MSBuildProject.cs

@ -422,11 +422,17 @@ namespace ICSharpCode.SharpDevelop.Project
// isDirty = TaskService.Errors != 0; // isDirty = TaskService.Errors != 0;
// } // }
public static CompilerResults RunMSBuild(string fileName, string target, string configuration, string platform) public static CompilerResults RunMSBuild(string fileName, string target, string configuration, string platform, bool isSingleProject)
{ {
WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront();
// BeforeBuild(); // BeforeBuild();
MSBuildEngine engine = new MSBuildEngine(); MSBuildEngine engine = new MSBuildEngine();
if (isSingleProject) {
string dir = ProjectService.OpenSolution.Directory;
if (!dir.EndsWith("/") && !dir.EndsWith("\\"))
dir += Path.DirectorySeparatorChar;
engine.AdditionalProperties.Add("SolutionDir", dir);
}
engine.Configuration = configuration; engine.Configuration = configuration;
engine.Platform = platform; engine.Platform = platform;
engine.MessageView = TaskService.BuildMessageViewCategory; engine.MessageView = TaskService.BuildMessageViewCategory;
@ -439,7 +445,7 @@ namespace ICSharpCode.SharpDevelop.Project
public CompilerResults RunMSBuild(string target) public CompilerResults RunMSBuild(string target)
{ {
return RunMSBuild(this.FileName, target, this.Configuration, this.Platform); return RunMSBuild(this.FileName, target, this.Configuration, this.Platform, true);
} }
public override CompilerResults Build() public override CompilerResults Build()

2
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -627,7 +627,7 @@ namespace ICSharpCode.SharpDevelop.Project
public CompilerResults RunMSBuild(string target) public CompilerResults RunMSBuild(string target)
{ {
return MSBuildProject.RunMSBuild(FileName, target, preferences.ActiveConfiguration, preferences.ActivePlatform); return MSBuildProject.RunMSBuild(FileName, target, preferences.ActiveConfiguration, preferences.ActivePlatform, false);
} }
public CompilerResults Build() public CompilerResults Build()

Loading…
Cancel
Save