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 @@ @@ -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;}
{\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;}
{\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;}
{\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);}
{\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;}
{\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);}
{\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;}
{\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;}
{\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;}
{\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;
{\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;}
{\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);}
{\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;}
{\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);}
{\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;}
{\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;}
{\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;}
{\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;
\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;}{
@ -37,16 +37,16 @@ Contents Heading;}{\s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto @@ -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
\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
\f2\cf1\lang0\langfe255\langnp0\langfenp255 Code;}{\*\cs56 \additive \ul\cf2 \sbasedon10 \styrsid9855141 Hyperlink;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid1193469\rsid3563042\rsid3692308\rsid5582925\rsid9005571\rsid9334114
\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}
{\edmins0}{\nofpages5}{\nofwords1531}{\nofchars9647}{\*\company AlphaSierraPapa}{\nofcharsws11156}{\vern24579}}\paperw11906\paperh16838\margl1170\margr1130\margt1134\margb1997
\f2\cf1\lang0\langfe255\langnp0\langfenp255 Code;}{\*\cs56 \additive \ul\cf2 \sbasedon10 \styrsid9855141 Hyperlink;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid1193469\rsid3476083\rsid3563042\rsid3692308\rsid5468609\rsid5582925
\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}
{\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
\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 }}{\*\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 }}\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 )}}
{\*\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
@ -55,64 +55,64 @@ Contents Heading;}{\s27\ql \li0\ri0\nowidctlpar\tqr\tldot\tx9638\aspalpha\faauto @@ -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\f1\fs32\insrsid9334114 Version 0.1
\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
{\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b400000006d00610069006c0074006f003a00640061006e00690065006c004000640061006e00690065006c006700720075006e00770061006c0064002e00640065000000000000}}}{\fldrslt {
\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 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b400000006d00610069006c0074006f003a00640061006e00690065006c004000640061006e00690065006c006700720075006e00770061006c0064002e0064006500000000000000}}}{\fldrslt {
\cs38\b\f1\ul\cf9\insrsid9334114 daniel@danielgrunwald.de}}}{\insrsid9334114
\par
\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
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 \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 }{
\ul\cf2\lang1024\langfe1024\noproof\insrsid5582925\charrsid9855141 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370036003900000002}}}{\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
PAGEREF _Toc120778769 \\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003600390000007f}}}{\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
PAGEREF _Toc120778769 \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003600390000007f00}}}{\fldrslt {
\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 }
{\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 }{
\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
\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 }{
\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 \\
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
\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
\\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003200000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 2}}}}}{
\f0\cf0\lang1024\langfe1024\noproof\langnp1031\langfenp1031\insrsid9855141
\\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield 08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700320000000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 2}}}
}}{\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 }
{\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 }{
\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
\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
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
\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
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003500000000}}}{\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
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003500000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{
{\lang1024\langfe1024\noproof\insrsid9855141 HYPERLINK \\l "_Toc120778775"}{\cs56\ul\cf2\lang1024\langfe1024\noproof\insrsid9855141\charrsid14162400 }{\ul\cf2\lang1024\langfe1024\noproof\insrsid3476083\charrsid9855141 {\*\datafield
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\insrsid3476083 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700350000000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{
\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 }
{\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 {
\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778776 \\h }{\lang1024\langfe1024\noproof\insrsid5582925 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f006300310032003000370037003800370037003600000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{
\lang1024\langfe1024\noproof\webhidden\insrsid9855141 PAGEREF _Toc120778776 \\h }{\lang1024\langfe1024\noproof\insrsid3476083 {\*\datafield
08d0c9ea79f9bace118c8200aa004ba90b02000000080000000e0000005f0054006f00630031003200300037003700380037003700360000000000}}}{\fldrslt {\lang1024\langfe1024\noproof\webhidden\insrsid9855141 5}}}}}{
\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
\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
{\*\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
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.
\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
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\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 @@ -127,20 +127,20 @@ Compiled AddIns consist of two (or more) files: the AddIn xml definition, the ad
\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 \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 }{\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 }{\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 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
, it's ID property to \'93Build\'94. The other attributes are put into a \'93Properties\'94 container (works like a Hashtable).
\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
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
\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 \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 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
@ -148,8 +148,8 @@ Compiled AddIns consist of two (or more) files: the AddIn xml definition, the ad @@ -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 }{\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
is defined in both the main AddIn file in SharpDevelop and in the StartPage's AddIn file. When loading the files, ICSharpCode.Core mer
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.
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
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 \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.
@ -160,14 +160,16 @@ ges the contents of the paths into the AddIn tree. The attributes insertafter an @@ -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 }{\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 }\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
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
\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
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).
\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.
\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
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
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
\par Crea
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
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
\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.
@ -289,6 +291,6 @@ You will get all classes defined in the path, in the order specified by their in @@ -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 \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}
\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
as ConditionList.html and DoozerList.html in this directory}{\insrsid9334114 .
\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
ed from the source code and saved as ConditionList.html and DoozerList.html in this directory}{\insrsid9334114 .
\par }}

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

@ -58,6 +58,14 @@ namespace ICSharpCode.SharpDevelop.Project @@ -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;
/// <summary>
@ -147,6 +155,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -147,6 +155,9 @@ namespace ICSharpCode.SharpDevelop.Project
foreach (KeyValuePair<string, string> entry in MSBuildProperties) {
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);
engine.RegisterLogger(logger);

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

@ -422,11 +422,17 @@ namespace ICSharpCode.SharpDevelop.Project @@ -422,11 +422,17 @@ namespace ICSharpCode.SharpDevelop.Project
// 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();
// BeforeBuild();
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.Platform = platform;
engine.MessageView = TaskService.BuildMessageViewCategory;
@ -439,7 +445,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -439,7 +445,7 @@ namespace ICSharpCode.SharpDevelop.Project
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()

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

@ -627,7 +627,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -627,7 +627,7 @@ namespace ICSharpCode.SharpDevelop.Project
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()

Loading…
Cancel
Save