From eb746492824ed1cd217c979e929f050d35a263c3 Mon Sep 17 00:00:00 2001 From: Zontreck Date: Thu, 10 Aug 2023 19:56:05 -0700 Subject: [PATCH] Attempt to fix System.Diagnostics in SnapWrap scripts --- bootstrap/prebuild.dll | Bin 270336 -> 270336 bytes compile.bat | 2 +- prebuild.xml | 3 + source/Prebuild/Core/Nodes/TextGenNode.cs | 21 +++++- .../Prebuild/Core/Targets/VSGenericTarget.cs | 2 +- source/SnapWrap/SnapWrap.cs | 60 +++++++++++++----- source/SnapWrap/SnapWrap.csproj | 2 + 7 files changed, 71 insertions(+), 19 deletions(-) diff --git a/bootstrap/prebuild.dll b/bootstrap/prebuild.dll index 53eaf346a360870237f5d9d6727a3d69feb02e0a..2efe2f7aac7676711c021693a5b3f331034c9c3b 100644 GIT binary patch delta 26045 zcmcJY34Bx4_V4#PNz-&nleS6IIq6(F(2z0Pi`*Y`f}e?Oo1{M`G^`mMG0-fQo( z&&f%0s_quOyG8%v)9R(qzVKzkoLG3dVZ~j#-XUt%pW#0iH5=;RU=0tpsaY`U(ZOmq z*n1hWyu%<38rONirL#`MZ2r$J_M9d)j~jY87LekJnlC#cDX^9Trg==>Vn< z(-{0_j7LM7re#cR@T)(*ZhyosKX7;#Mvp`K$CSchZ&gehe6em!Om8(D^}d^MPtZ|` zX)?8j0IB}Sx=2fv3fjHHlKMqDv8R;m@YIMKn)!?cPH4ll6t{ETmZa{BO&YA?CdLe^ z`q}8N?+Gk0u;hqWYRPk@s_Gv^pMU)UWcp!jnyPm0UdJ5uccZON7!*ALXA&3^rgHXN z&m8GhD8f|Q^lEx_db@o7^`G%B{&xZDTLd=zwZ%cxUz%*`ig=f|#6hfgXG^?v{#Wle zEqQUfF-Rr()#Gde{haGobvm4(-onhH&45<&}t{G5wB zoqkSJv#)^zO?CZP%&LC}r|sw5)D;W#UTTdDeR`uv)?{HXH@v28@zD>w-?<1BTfZX%xoAfmvUx{^q}}5Ec}FrlNNK*?grt*Iivd z4J(Vv$@X)O@Lu~Ut9S(FI_s9;A-EmSuk-;3aqyZj(%J9BuD=f&>K(B&1}1r@?Tjfs zy{#*6NbKM9vbT4|j6MGz8|B@HeJt{x-}x(?_nzMMD3q=n@UcUJrR!QheE{$!bx)L3 z-MRyt@w3R!S^N=m_>1Z$p-paW`UDJSC;B-XI$cVpwli~`XYUgLhI#wzq|BY(+qPJ| zGxuA#Id@BfcgOzfPBZO55oCJrJy5F2+=*pty@mrOwV!j$POpAzs`tc!6woBD80Fo6=pMX;WF0Pmd)Cz+zAC{6?>$Fq;WO{%BN-BW;@xs2 z)f;kjy(aGyT<*MeyN>n(==fJ^Ocz(xm*I6F%kV(n{P=G!6fh z`a5xBhXh0pt-lKmf9G4?7 zZ9#k;fJO_Ol8@kN$kv{L|U0(ms zy?>rd81ne%BIsYb9p4r-&dZ$+jdS23U&FV$OygmnH?PZ_-(|*s;aynY&Gp6?zPzJd zX6=_g@6TOk+7X|3W0z?@>hlinGN0};k9C)#l+Rn;<}=TBna{TSyxlu|=D~hl_Q=yd_m5qs=Zw#r`?b&fq|5aC#^)_x zcka7ffP1`A7v@2Och!X)V*^Ih`{5+%UE0|v4EN|;-XAX9TG-s#&Y#{J{hfW!ijMr9 z%eu^KUFP6(-UEliz3z)8w%^a;xu>ar-FNPZK1O`|AAaZRe|TcPV-D{N7h}AQ6aBpA z@4JW0M2ENx=+1i$KSYPTao*?2y}&)eyDs=VgS}1P$AnzG=yOc{o~L+Ee{X_t@73>n zhxm7HPJid8qj_xI=pWWgP`)ni$FTrYywCl#$?((-UR46!*T&9C-O)nyK3CAZLS5Y3lFd z9d{3M9`O16eLkc2xnC3U+Pdb~N5JEa{;e?S*B^0Z9>9xcHgr>&R8G>Hu#5WV5rHc7 zc*p#7@m z!r4EL{_H+@r_t1@$`bLyfR49(4!mvQjtxG?%ZlSeZ|&9Wh~4N`rkhefkyjh!ywlrs zb#Ovg{WS*7goiK`t~F@u-{T`jIxl)7{&)_eyp4avBDeg}8|uie^Cn))hc~=KuAQ`; z|GBg4fcn|k-qdr|wLky#udl@}x>Y;Vyo0VUhAQu+>j#4e{=ytH-o{&L$(iomd*fQ= z2y`g3i`6(s`9!G3S??2pnGuqTT6L40uFf9N9ynhMdEvZI>H@dN3up&AU!UI>ZiRO? z$nY^hYjdpxGXR3*lPWN|Qhx0mum=w46XhD`b3S3yIJfx3O&aI7K5=X2-I6otH=M5* zCz}3m+{>9yNX{XD_dF^&U;n!YTYXEOJYTb0Bxk|zf9t4+GYALLIA?J8OPDxSQaM}Y zWok%Ni@ArfIt>IUhV@XP+Gmc)(&NOKR5^Fa5BozR9FXVwLjs(ZSNlT_ zT$fMyg9jp;@6*C({-J&Tzo)i~m&ymjAT?$+_O0x74c&L*iS;rs)ad+O4iAS6D3*JM!^-?a zc(XdmhMxt)L!9^f;l01k5Rw({^jyO;GK4;9(6u~V=X`~`bk4V$qavUd;H&1TM%bo` z{R-VG%BerbH+yBmjR|M4(-djOWAe}_IEFJQhz57oSxlU9jqm%&8P}DUKb05!@QEh_ z#evMr@~LRZ#3LOP0}n!oJU#|WAzgku1{@IA92*N$z~#Em58EglNm+x@XyIWCA@>-c z`(eesh}`3SZl~g2O700h_e9100l6pn+>a^l1LS_3+;T)bBu4!}o+-Y>sY)W;ko(8u z8VAW!;vpYm%QCx%iHZ2g-m$eW1e=pVz4rFj^_#GS>AM?<45N z?>O)js(%O(m{~0U5C}2J)p%}ZnWSltVq80stNKQ)s=fu2H1)B_?A8SU5#cx<==qmA zCComJ8Bj9$-W(_@x!E}l3s8DU{~h;6w}P7A|GeJiilDb$lBRQ=z6~QGQh>RB7Ei%9bbe*wO(O$O=67a`-0hf>y$grtXAL#K5o|Ou7K0;V zMPJKbb%&S?8dr&$c(5L)5y+>^JMR`f;SZeTR4!#}E*MLBdcutYvowuQJe@B=L6Brp z$`8y8H_?SKP@~Lo2A`+~drLnr*XKe;&nu5Jmh=Q;wUZfJT!Z$YiOwhBHB(nH9J|uhRO-~&{GO3mG8@kGXDB< zKBU54xiud$?%GjxJXy!~b?2F2zBj|f!n5aK-}mOM1r3{=Gq_sAv?<)4*Ug?1%`R3? zDbcW_S=^&0|7%qIK9xOX8tazFi~l+2l3Y~)bcK$$PZqaC;s#@W@Gp zQ2gNFY8^Wk@rXso=HjeOY)09fyhQeB#1|EbYKyQTMC(ntoUaNukq=`{DZ}9!osQH^*L*FBiff zS8CxfJnp6F*0YEju3}g(QdQl#ie=S&7qPOa)WYj5o((4zUCvb!SJ*Dn!ZXuF?EAE1 zW!G6I8%41z;m68`vF<`;RB~0s9-~-$&too>6?moN-KZ(plf6!=lvE{qo77D`kClza z!ZwjIQLGpHkOkmec4ZwaJHTvgH^t&H^8x%0_ynn8sD`0xCp7`p9M+fpOzLG+t~u-u zc7vpWfi_~MRkW>k&>8vMsu+NWB z4P#HTn*oFD_f%Y`U^bgQN~wo?9+N-o0Z}kcKHCE_UEA_^u;pwn#jN36tzZqL0!gi8 z^GO{K8v_mP@gV z_-@176;Lc329T=2m}>_!!d(*29TLTdh=hAd4X5E_g>t3wSOQnr%>e4OK&bnu(}5sU z>_Jk4;5AYkNZkc1NL?p26xNX1$CZnXhCNafR+yy4HY@jgKh^lU19FHFM@mHr#;Y1+kMdF+UK3)(mNw}x5S+q#d?e#oWWhc83* zpQGza$d_mv)a_^|6~BipDE|g|J@NZ619JxRF8b%ar_yLXhecs`x>uQhL1t%jx)V4@ z<^B@Z6}^fcPcr9d6X%OaV2^jdfqic7$?aY$*J59Tot3KaJKc9PP9qZ7QVpMtIgry7 z#MuzY{WtsZd1nOkSym_WIo&3;BcIIk54SQYA{cqn%1h6%a67HQh^>^&|DgO_8CcT` zOX7VA18BJM#603NDhM4UwoL@HD5>}{1f3o~2evt0PHC7z3f=qyaSH=D2G zFaDexLpeY8&kFBqmWP=o$(%*R%PHLcnwUl&6Ecq-t?q#n`$@&OjbBnZ+T#ju!v0tL z^CMP($IZ&t1osP10_LRcsT|hhA$MV_wQM+2&VLB$QSX)WdP1CQFW!mNXnE_(PzMIi z(~&+!{qe?KHBQ2cJSNW9ZJg}}&Y*6b?}l?Ou}|{NDJE*SRJn^h- zL*YW4#@&=_vhJ#d@(k?yFPDl}<4@rcd71c@ zo!cOt@*Oot5iZ(rIB1(1xc>EL_fUeo3ZERezze%_8Wp+5i|l* z7n=C!MR}Z8Q~2>~iRAWEd3;MNm$NVFqDE&Xdp>GR1pg2)F2cnAh?syqY>ehdcb<*6 zYLFITLC#`6ZU>tzAFjd&4&3tfDu`00l+Tus zW7u+^3N^;D6PZf8rucZHg&o5C4BqDqIj#mihgA7;4HQF`oN*J_U6qB~gYwx3`~=6? z0_~lJ<;HwAT2ahZYBLtF-~x)VXG?E27PA+Hnp!y6Sk9ITHLoxnda{p&N{C-9RkF#2 zO1q)u%Oo4yDAXuaRqUEjgXQx#;fKHBa=^_HgD)vJ!=Tdpjd!ps#Y*G+_ZR=kZK&yN=VISP4OG$%v+$ibcb;&%dOxk z4a^l84l~$rQXbab{+aO!w!Sl#b;#&uC6!9%!mLB`E4M&V`PPC{#%EY#6^+4k_%Uz} zTWD9*%jUDjIqXILnH)RcXZYSYmt7;ZfHfO`k%Rg`RQW>{%ruW3!QcL|b~d3R(DV{Z zrss7$OqX@mIG^!H0vP)Sjz$|y3)tj=TQc`_)0^y)P(7>5O>eP6 z{34l;P*QM{X$8y0Z?3p{s3KvoX(eO#DzYNGuW2=N+^47~?R`z}u;KSB>Uic^TP5fNG)K?jK3H+v6@jl#;aha z%`B^4QGC_6ve8aO@df>mZ4`#0gk6*Vaiq~?04Hb&la*$mk zrPT5{dvp%ZRBAcIPLTSBYB`NXgc?kT*&j*@#Xb;i+zDBWtC2_ ziKLXuPO=y0^O#au8{5B7QM|HtW?7^tURej*K}xCYG%Lhk2RbV|!%ES1cR71r(N+w?fKUgaiUjz+IU&~`V>D=>&OG5FrkL!=u+BfAP z{oy8hR@yf4thgDMt+;HEjSXSy8_$$~X|};^vt`V8wdsT8lf4g}{1JJ6J>V zo3d9)(ZMqtx>9uT5-BCca0m4g3N!xQl@bb1lTuP%z!WU$@*Pw}$RJYngGfE6sEdjU z7>sYRubaYQ&nDhk1N$v=wF%$CKTuSieYMF16GO8Jmz7KB{iF(!LmnD?)+V* z1UR=(QK1EgOo-U=6dYGP!6*l}LzW?;pv$RV&EzvtkEUM*ZE z-33>KI#Bq0c&gQED}x(6p%E|vIl;AyFXK7<$IVn2%**JKI)NDM|>YC+^UIIbw| zWAS!29!?A8iPxjLAk+idcKmYWic83`*?N@0YChm>ZCaI`O@Ihe9&KTj9#x!(EslOY zaw4P%^=9-NsB#rW#Y}<|B36d?bCci!g%+v!RfGmCuwz@h_-Qls2g7ROG*)hLn=|FWB>!%%|ZLDjZ*F_%vukc{ks{ zyXHacX}CqGTeH54d>U`ld2FY4X|Eq5pMl9jt?BhMs#a37wKGy2>{-|&)Uzo@RC#(T zjV^Z2K`AMZcDc#Oo`V{$TzIr)Y&Zv|i`4kiYmswcmQdYFCG#A3k(4rvxlm)EPT8oe z0Q2)OR8d-Uir)MJtQX3f5@~)BIuu1KIuE`Ru|=u`^E~*GlxsHCHV>|nRBD?CD*Oz? zH{x`QgLxr{lt=rN#fU0G#O|>=*h>&AVxz4_R4F1Bm!D#u54oh2vggBe{1nu=+6&+f zMY(AB1+bc=GW-Jgw-VI8DJ7U?*eYThq+C?HL~KKX1HT^LCt{x_7*QP|r3| zUxr{(I|KM3d>JBya`9vMGQ=sV+SZ~Qx>q1Y2?F1iuRyvIV;Paf=EX2tsEEi)^Q&-_ z)GS)y*T85}R_%J6gS`fEq&!;xcq6KGQc7vB!(=7XJj{ick4A9+CD;gSl_0H56Ko`< ztV|QMiWomDmcS>9qT!do2~x@sOW-4O*CAXApOI1y;ZpcQ#NIWz9Bdh!6v1t{FPFht z5zNWB$@~WBqLgles&7MOBIVJ>Ru4p#AYxfbcKmKWO~i_m^r&)0tO$3>TTmim)woOE zf+`U^Vjk);FNe`WdQ^6{92_Ebu1b$;iimw{vEvv19ud20(W81+iP7v=!g7%rSG9(% zgbhNiExDmv3EPAkT*PDh6vb}OC^oxR!bKr>TU!I)hM;JgFZ;eQICK?636))apLsPD z3ss%8LA3^k2<0f*pn3;J3e_KbSqo1Ib;ew2eixPs^|`4v@IClQs37YG)jAiPA*md- z^}ynl;nVUSG;aWWn8J6;Y=DKNJnT}zIE*>0Jf^hU1ny+Y)NUz!!u$a|EmTg%zfiqM z%A>8!n1^bSh%Lnfvl(1XBG`;aW;3i5!6W9^%v<0+q4=@i0-Ho8KlWQ-yNK~)zZG_i z7(ez~;gE>&WB(zX5HWu2KZLJE>|MP5Yk`X{5#(F11%44hezaTRhKTW_-3tCGU2Cxo zA6DY3f!<`c!5Sr|T~y@2AA9~S)aoK5st<+w(O_rWVV6*dMDfIp~TiZ}=XFK4C z2(GHuqiPqbA>7VBf^UUt3df(k;76g}vN`b9<*HEc+l;7Gsmh_)jj>%2B-BZa?ScrQ zKI!3LA46;^z5mVDp6X#lnIeKeWAGEm7Am;dh^mKBm$B1Np;9RSDkG}iLRD2c@HeXd zLiNYkZWt=m9m#9h9;g*+B(Cfp7=wzx|7kPI?09=HUIZ)4^r)r^H5rT93r`9)7Yp4B z&j~fP($4mQSEy$z^{5sL)ic+@_QNuvZpk&GS}jy{iJcvQ4P5c}zhNbMlv_nGrN+(< z!p_dr8a=9gLd7N8+2`=3Q1(PUsy3mKSIa@mm?@YdcaG~xqIM|nff5SuFI1ENq$wF;Ox3eRVCDfPcdQ?S1 zJ!7=9qtH{RMx!3p%|bn5bg*M^yP{m$sYWBpyF_q^$-$1p2%+lmtT+y%g>vD5C%_@p zOE};On9>=;+sUuMBh&)CoBRr%70O#|XD4BvP;VFOQN7aHZiC*=PQg+kKh^6|trF^~ zG6!pe^+L@rGosoe)V;mduy*)JsQO-jYOhd!lAU$H7ea+edQ_)`$~M{AX*es?H5aCy zh987Hk;B!mLYY(UhSLz6t}MPeWrg_+^d*J2>nbDOs*M)P+U;@OSvWyTxgvfGgEOcd zOHpl5eFu*U6|H*0d>*C?H7d&`p;UL{sXN&zyrsAR%SkDBg%@BzCXams{66pkOd_QW zaS`4irQAV%535NjZ`9wzzeOx0&B1PZ;?4MwdlF3%22bizGee}UgfDYN(m@F_jo`46SNWBwHagqoJN0adI}$C4cEH@HbCUiNR$kCamO zZ*ZrGEi84g-vJ+i!9G3O6{SY@y9-8%AYZ7fP%nafp{~MY5#zU-e}G%W_^sw2@QjF^ zh;*=P&>&(LBaNu==^85gi2^&j4ogJrwE{h=w?!-=)xmCnYn=#YrW#Rh7QyjV4)!PP z5V2?QQu-%+CSo7q`OBokB6bK*UnZRtv4uGf2GTbo_I8dD)ejPt%A@_rybYB>#A?i+nAK90hz&6BLzO6EKjDSOPwFO=-lRuWAXET; zIi-=xMY|aMa!MoBh#0@H`AdBZ=>5;5BU^st<*-#)lTto_1xiZFunWe9$bgi6_@lyf9h>LFrv;SQ#kDn)E; zxDi!vB}ONuK^jg<8NndU;>sn42$L=FP#uEKEVX(jEK4T z3=^b_BFHZ^7U^dZ}9t0n5$%PRI*ef??+1;py3Du|cK~xV3wKBqiYMfAS zlubi5Tc|A&vr#=S)JHiDs1_=U4pXueTS*57zjtvRiA*Y)6zPai z>QpK#sU`p$3;fLQjo6@BWUvEa1A=wp0r%E^Jw!g%>Nq39bY1{&t(*1vlWlH0F$={E` zKlE4}l|}ul@NWINh}OUypPC)9B&xelO^;X|l`l>4^?}cKNH39Uhi=gtRw(Te>b7b- zs_8b`8|)%JfLSOlAk`j_VsoH+O;K=LrRFA-Z;0S1+aOeHMQ}&%gXTi%C!w@?7L4JO zjVv2~Jp`7L#rab?f0#MDSf2g}#7fUp%ej;AF>Bo;psAZlTizZdG{bQ8CShw~=y z_u@A9NbD~BAraVvJvyU*&*{onu|;7#rv`uj!$IXqk3f>{nQHF(TOIc(KBdmx6pyj+ zEJu7-^P~8?t%`k(RI?>Cw9@Tg{hKh_Ih?TNxJO|G%$4zZ?8l3h7S)kFD}hGntb=>J zQM^p{PY%iD&0}eSZ^Ok^XO1r_f98NlxpEws>y-Szw(Y=H67{JPz5Ubk0xgw7WvrVLI>*Il2L9TE z+&m8YrTnujUUX+c$^`Z*W!dT>7@s!iR}YbS|Ex|KO_|yMv5Qspko?~a8SDW3Q##r1 zfCojhzjpnfL*nxCN(bR{(AM#gB$lwNg^KORxv5zn+_HXb7j4;EbGw|x1H z@h~XrBL2YMd0dv1bsf_svcUri_3L)qCZ$ zpf5|yYlOj6!Eo{qX1u0hsu*)PNL zfYhYoX=8xj3RJK#`!K13nNvncQIKe#EUlnuo@##06VkhEY}5kjcl@?@v6P{jTeA$g zvT}t~!}dzU&^F*V85ycEHT%$>gv?^uJq}CLvB>k%EG#1o$;->4QL>o18i#pbg@4_|CzX zQAF9ScU=KNQIwblZuIj+9=F7KD$IDz{9&J_dV4r=8#9s zz=O!^;v?7i?V;)p(XKc_$NdC(`p^h{q&|jvKhDSf4ycycZ}>$}<{8SYqntX7KB789 ztuEkkh}0P16Ddx!jE;!`Ce%W0Qp*8HL!k3C+~@&%o*@us^MA0DmCQF7eyPV?!Qvx5mf?C%QGgKXw4%PFZqf%efcLD&SEnfFIWfR1H|< zy+I9Z{e;k#ov9KZ5N+71Yl}>SrR{=EBq( za!n`KbZU%`{Nj4gQIhCrc%(5k{|bJI{ENxI2!{_3StR{bxrQy0Zr~m1GK#LE=z3a_ z&BSk6b?O>Cm(Hht95PHjBV}($hU(U=0jhUZ0}Yv9hrFwLx$^6f&3M)3myG@?-(i@4 z(VwTfKY9~efx{S)`c$p_jvJrhtbYs+fdB>>DDZ_Q`(!|n{y76d_(M?hF9DeO_=+*%u z_DX*e5(73@-p-Cnd!@(aK~Lht*?hM}Nc_)V;CB8LdvF$J^ zR^lstSsEDsY3L&LneH8-m!%)f3(#|S{I}?7t^`%A#4o(b62I_fN&Lc_MP2jjfQI#v zREF+)&K~*<)sm=t^o5jPLHRY5UqktYQdk5ISx7?`QW1PD=E=n~alu#WBk-!d4mqj{ z|Db^ELu6kd`vTb&xT@>)6~J?9$gUx~P>Pf1&xE|9U-Vb#^1g#EdV^_{2sSceoqjNt zHJsi>t`K)n$2-_4`Hz|SND9Bm#2H#uk4foW9?xKRCvB=;H=0 zo6b%m-Rv}S7CVQ0nq5S`NdA||zmWWk*^lU7OaArb--v$fP5KoXA=$#TELOtaT=j?$RaRU6#Zf=So8`sZhEbSt5-+{f$zuQ7TjMBGf8ggjU6i(5v`h5h`A;S;fnZRq=8y zl$lJK>6DpEnT3>DLYcK{-u3}CZ#!De+diu1Z6~@YFc|}W%&ndf=Er8KCn29!KaQNE zo`QT)Jq`JidIoZ#+J#)K_8=S8Gm*>GPa&79|Akzoeg?T#{Ty<=dMbpx_R z?M3cT&qsc&mc!EUsan^D#2gmHDq?b2IQ~sx4*u=h1IQ#c7MaN=APd+OWI3CIw6nFy z+wgA_bJ!rtxrZG=dnDP9u!XTXYy#QSh%?#JSUWzNcN%{W3q;nkSCAvgGm?8;D7?&K znZ=f3APLs7-WCt=293m}upR9dvfGGE;!z9HN=%Y|G!3*=k!?r2)>2D$9dRUj##!8C zdx$g9GtJUSwyTL=mZIw^OAFbp#O>&L$=xM)$Yg3I*p#OR?u);r8#JN(rP8UifBjAB5NJlBhg-I z^^kp9<2q<+wyOLOnp&+%$URoOKkw9z_LtU?$TQZN$g5V+QrFspCjUe$*-2!?bQ#nkJjp^XE73-*BGwY?h;E{X*hp+5 zwh&v1?L?-d0f-i&m1rYY5o?LAI(qRCn~1H%b|Qq*EQwXbI--ZzL~JFt6G2b;3d6Zw zMXVz>MNnBr${|*{=*2^9B7%v+#42JP(L-z^wi4Tk5J~yODq?NaZXCEaiu>KfM)EY0 z-9l_5Pg|6WC$VVif@q88jcsIC5o?KcL^nm#3o`Zv7Km(<$cx?-NZ&>6S0NZ z8vC3JliEnM6ImQ@21EQ; z_VBnWva8T`jg6}#QHR1E=ONpJ_DgY1WH+Jxc3dmjt!QtLYbU!M?PGB)fd&xlFnt?m zA=@h0VfrJ^Ms}58hsh9MOLiTn%TSllVM>d4lglI6VJeAlB)dtl!&DRBN_H#e507sn zyIruuG&P=Cs1(5tQ&YT!Y^z|0>C<={*;Rr#fp}Lfi8{d!(|7T1vOR(wrt9%dWH(tl zOy-1EvRl#4O=u^(9c^0zv(oT_9j1N>7P75^9j1{9HnOV(J519OYF#Ai1aa9D++=$M zJ4`DR8p&=F>@agVh;2lcLQ!HPv4z-{Li?Yk^00;2 zNNgdt5m_2Vi8f*tv5x2=HW6Eht;9BBJCUXH9)M^eT8TC!UjM5|)Dr869%2)*mDo;% z4BnBISVgQOdWcQLR$@C5x=}u{is&IW5nDN3hISHlnLO1)Y$CQ2+li1x9TBUDbwm%b ziP%bPS3KD~zm?cdv~}m6T4D>ajp$;zJYXT#5*zclr-f+A=eCX5NNg+M9#%+xVlB~9 zL>^)-(M@b5wh-HhwLN&Io7m{0mlk3hkrnfBEzwPEB-%>IPi!NyQtF73z3!6{q zh_yD_|85eE#1>*3kyTNrL>sY|=q5H2TZnB$R!#Xt8?lz?CN>gVh;2k>r~Pli7hEV} zEzwPEB(@OSh^&SNAlitvL^rXK*g|Y0vYRNMXd~7V-NZ&tm!XA38^ACx zXd~7VSzq!K8;LE%HX`dsQKF4lOLV*FrIFY|Y$LMUsR7YOtR=dMjl>pW8q5 zOLP+(i7mu7A{#*Y16=&YMxvJJCbkgUh-@IwX(YA~+laP1xWAU@CN>f+gQ!npEzwP6 zgSp>Av=M6u)BbNE(WZolP-CLyPO^!$L^rXK*g|Y0vb(5jqK#NfbQ2qiEyOk=|NAg3 z1$ht7o`jp&rUZu3z{J{nxZOx>Bf5tN0eXn+UT#~6HexN&%_;Yp56|5-GU#YfOz_Cy zhTsjs-v?g}&JHOEsR-#4;ttssawz0-h($L;_nfXl_qp!4?u;%obXe%@(6>VOg?=9T zL+I7eIDJpOUEfFV(r?x8(;wC!*SG6K4OxaFIdcJQcWI$F3xHc#AoO8Da4UY%dprJ} z6JyaO>+#pg{+5l%X2WJ=pLFh-Wo|`gmhVJHS`Hxh*}p*cD?N^UMEV9?yd4LP`B6mqqes|Mc%uasRYb&OyYV;<^1sMOXgG zG;Zsu^xMc*dh3(^C;HROE*`!?&HitxJoA5&^FQwmGhP2bI{h#D#0QH0pU>&P7#<%e z`kxQ4?0~1@`NkQa%~?{#`ChbNG-H*t^*)W_hp8-!GqflO{qOZMai(yO(!(ocSCz)1 z-&K^7h%ft88Av6(K9Q$BZRMPk-`(ebU*b7?6S!aL^rIraZ6BuHqqJ29R(klt#4`tG zlwqsfY8&#VBwp?v)bm;M&FE=xsklpL<+N7yMc4Wg-s#XHZVxXSfE<`H47pb{djRc! zcBc%c^z&{JAJ{*P_qn#3^9?%7w%E8|SH*d{2dBQ6_J0t$1`$Uk^MR|&c(VpddcKm| zeRFw(drP=|a}8(jM9%rdHOiXN;!ia2%;V`iy3EMA$;dqq(t0c;|I2jv-YMS5_y1l! zPg+#QlP2`y!TA{WaZWpE0W3(t`B2rm!<-(#YcmriBeplL5%sH9F`&6Q< zOS!G&D+d?w(uDheNdfP=J6%BL(i$A0df&<64F*PVJ|E@A?nanrBO|D+1iHv5b3Iuy z2mMlkj9d`01lhZIHF8e=M&wiZ+mSW-dy!FPN0Gye&LC+Ixy06EG<&6XPdFb^v6b4t zrS*8#&I|qPjFoM8Ap1M)PT9f$X(*)Pa`r4Yl| znuuWJfwD+sYeXXQlbmd%(&APR`Pv663|MX44M?(Iy?KAk)2}}HsL8|ewrT<8j?^+Ihf5bX!);50)dbU;f4io7P1>MSUk#NO_iQ%k)jxzb HwEyX=y%kHH1t4!Zu5qB|WP*u-G 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

#jE5Vl~@$TbCxRlF+r}! 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 HI{5v6C~R0W diff --git a/compile.bat b/compile.bat index f7dafff..4c154bd 100644 --- a/compile.bat +++ b/compile.bat @@ -1,4 +1,4 @@ @echo off -runprebuild.bat +call runprebuild.bat dotnet build -c Release \ No newline at end of file diff --git a/prebuild.xml b/prebuild.xml index 15cf0f9..bda8613 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -104,8 +104,11 @@ + + + diff --git a/source/Prebuild/Core/Nodes/TextGenNode.cs b/source/Prebuild/Core/Nodes/TextGenNode.cs index d32090b..b61f9d8 100644 --- a/source/Prebuild/Core/Nodes/TextGenNode.cs +++ b/source/Prebuild/Core/Nodes/TextGenNode.cs @@ -17,6 +17,7 @@ namespace Prebuild.Core.Nodes private string m_Generator; private bool m_AutoGen = true; private string m_OutputName; + private List m_Libs = new(); #endregion @@ -24,9 +25,17 @@ namespace Prebuild.Core.Nodes public override void Parse(XmlNode node) { m_Name = Helper.AttributeValue(node, "name", ""); - m_Generator = Helper.AttributeValue(node, "generator", "TextTemplatingFileGenerator"); - m_AutoGen = Helper.ParseBoolean(node, "autogen", true); m_OutputName = Helper.AttributeValue(node, "output", ""); + + foreach (XmlNode childNode in node.ChildNodes) + { + var data = Kernel.Instance.ParseNode(childNode, this); + if(data is ReferenceNode) + { + m_Libs.Add(((ReferenceNode)data).Name); + } + } + } #endregion @@ -71,6 +80,14 @@ namespace Prebuild.Core.Nodes } } + public string Libraries + { + get + { + return String.Join("..", m_Libs); + } + } + #endregion } } diff --git a/source/Prebuild/Core/Targets/VSGenericTarget.cs b/source/Prebuild/Core/Targets/VSGenericTarget.cs index 4683a5a..323ac79 100644 --- a/source/Prebuild/Core/Targets/VSGenericTarget.cs +++ b/source/Prebuild/Core/Targets/VSGenericTarget.cs @@ -696,7 +696,7 @@ public abstract class VSGenericTarget : ITarget string outputFile = Path.Combine(project.Path, node.OutputName); ps.WriteLine(" "); - ps.WriteLine($" "); + ps.WriteLine($" "); ps.WriteLine($" "); } } diff --git a/source/SnapWrap/SnapWrap.cs b/source/SnapWrap/SnapWrap.cs index dcf352f..bb578b0 100644 --- a/source/SnapWrap/SnapWrap.cs +++ b/source/SnapWrap/SnapWrap.cs @@ -1,11 +1,8 @@ -using Microsoft.CodeAnalysis.CSharp.Scripting; -using Microsoft.CodeAnalysis.Scripting; -using System; -using System.Collections.Generic; +using System; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Microsoft.CodeAnalysis.CSharp.Scripting; +using Microsoft.CodeAnalysis.Scripting; +using System.Diagnostics; namespace SnapWrap { @@ -15,26 +12,31 @@ namespace SnapWrap { string input = args[0]; string output = args[1]; + var customImports = args[2].Split(".."); try { var inputCode = File.ReadAllText(input); - var options = ScriptOptions.Default - .WithReferences(AppDomain.CurrentDomain.GetAssemblies()) // Add necessary assemblies - .WithImports("System"); + .WithReferences(AppDomain.CurrentDomain.GetAssemblies()) // Add necessary assemblies + .WithImports(customImports) + .WithAllowUnsafe(true); - using (var sw = new StreamWriter(output)) + + // Capture console output using custom class + using (var consoleOutput = new ConsoleOutput()) { - Console.SetOut(sw); // Redirect console output var scriptState = CSharpScript.RunAsync(inputCode, options).Result; - // Reset console output - Console.SetOut(new StreamWriter(Console.OpenStandardOutput())); + // Get captured output from the ConsoleOutput class + string capturedOutput = consoleOutput.GetOutput(); + + // Write captured output to output file + File.WriteAllText(output, capturedOutput); - Console.WriteLine("Output file generated successfully."); } + Console.WriteLine("Output file generated successfully."); } catch (Exception ex) { @@ -42,4 +44,32 @@ namespace SnapWrap } } } + + // Custom class to capture console output + public class ConsoleOutput : IDisposable + { + private StringWriter _stringWriter; + private TextWriter _originalOutput; + + public ConsoleOutput() + { + _stringWriter = new StringWriter(); + _originalOutput = Console.Out; + Console.SetOut(_stringWriter); + } + + public string GetOutput() + { + Console.SetOut(_originalOutput); + string capturedOutput = _stringWriter.ToString(); + _stringWriter.Dispose(); + return capturedOutput; + } + + public void Dispose() + { + Console.SetOut(_originalOutput); + _stringWriter.Dispose(); + } + } } diff --git a/source/SnapWrap/SnapWrap.csproj b/source/SnapWrap/SnapWrap.csproj index 4349f9a..5a36060 100644 --- a/source/SnapWrap/SnapWrap.csproj +++ b/source/SnapWrap/SnapWrap.csproj @@ -61,8 +61,10 @@ AnyCPU + +