summaryrefslogtreecommitdiff
path: root/Library/Artifacts/33/339c85c2b3f188b9635880228b001560
blob: 079668f1660583596b8791809b95f13205f44821 (plain)
ofshex dumpascii
0000 00 00 0f 81 00 00 8c 68 00 00 00 15 00 00 10 00 00 00 00 00 32 30 31 39 2e 33 2e 36 66 31 00 fe .......h............2019.3.6f1..
0020 ff ff ff 01 02 00 00 00 0b 04 00 00 00 ff ff 66 9a 86 21 eb 14 35 98 39 dd 34 1d 51 0e c1 f3 42 ...............f..!..5.9.4.Q...B
0040 00 00 00 ed 00 00 00 02 00 00 00 00 00 00 00 37 00 00 80 ff ff ff ff 00 00 00 00 00 80 00 00 00 ...............7................
0060 00 00 00 00 00 00 00 01 00 01 00 a6 03 00 80 b2 01 00 80 04 00 00 00 01 00 00 00 01 00 00 00 00 ................................
0080 00 00 00 00 00 00 00 01 00 01 00 0d 00 00 00 45 04 00 80 0c 00 00 00 02 00 00 00 01 00 00 00 00 ...............E................
00a0 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 03 00 00 00 01 00 80 00 00 ...............#................
00c0 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 04 00 00 00 01 00 80 00 00 ...............,................
00e0 00 00 00 00 00 00 00 01 00 01 00 35 00 00 00 61 04 00 80 0c 00 00 00 05 00 00 00 01 00 00 00 00 ...........5...a................
0100 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 06 00 00 00 01 00 80 00 00 ...............#................
0120 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 07 00 00 00 01 00 80 00 00 ...............,................
0140 00 00 00 00 00 00 00 01 00 01 00 86 02 00 80 72 04 00 80 0c 00 00 00 08 00 00 00 01 00 00 00 00 ...............r................
0160 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 09 00 00 00 01 00 80 00 00 ...............#................
0180 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 0a 00 00 00 01 00 80 00 00 ...............,................
01a0 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ab 01 00 80 ff ff ff ff 0b 00 00 00 01 80 08 00 00 ...........H....................
01c0 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 0c 00 00 00 01 40 08 00 00 ...........1...1............@...
01e0 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 0d 00 00 00 01 00 08 00 00 ................................
0200 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 0e 00 00 00 01 00 08 00 00 ...........Q...j................
0220 00 00 00 00 00 00 00 01 00 01 00 f1 00 00 80 4a 00 00 00 ff ff ff ff 0f 00 00 00 00 c0 00 00 00 ...............J................
0240 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 10 00 00 00 00 80 00 00 00 ...........1...1................
0260 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 11 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a 00 00 80 ff ff ff ff 12 00 00 00 00 80 00 00 00 ...............j................
02a0 00 00 00 00 00 00 00 01 00 04 00 5c 00 00 00 9b 00 00 80 ff ff ff ff 13 00 00 00 00 80 00 00 00 ...........\....................
02c0 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 72 00 00 00 ff ff ff ff 14 00 00 00 00 80 00 00 00 ...........H...r................
02e0 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 15 00 00 00 01 40 00 00 00 ...........1...1............@...
0300 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 16 00 00 00 01 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 17 00 00 00 01 00 00 00 00 ...........Q...j................
0340 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 77 00 00 00 ff ff ff ff 18 00 00 00 00 80 00 00 00 ...........H...w................
0360 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 19 00 00 00 01 40 00 00 00 ...........1...1............@...
0380 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 1a 00 00 00 01 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 1b 00 00 00 01 00 00 00 00 ...........Q...j................
03c0 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 80 00 00 00 ff ff ff ff 1c 00 00 00 00 80 00 00 00 ...........H....................
03e0 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 1d 00 00 00 01 40 00 00 00 ...........1...1............@...
0400 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 1e 00 00 00 01 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 1f 00 00 00 01 00 00 00 00 ...........Q...j................
0440 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a 03 00 80 0c 00 00 00 20 00 00 00 00 00 00 00 00 ...........y....................
0460 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 23 00 00 00 04 00 00 00 21 00 00 00 01 00 80 00 00 ...............#.......!........
0480 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 2c 00 00 00 08 00 00 00 22 00 00 00 01 00 80 00 00 ...............,......."........
04a0 00 00 00 00 00 00 00 01 00 01 00 11 03 00 80 85 00 00 00 ff ff ff ff 23 00 00 00 01 40 08 00 00 .......................#....@...
04c0 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 24 00 00 00 01 00 08 00 00 ...........1...1.......$........
04e0 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 25 00 00 00 01 00 08 00 00 .......................%........
0500 00 00 00 00 00 00 00 01 00 03 00 2e 03 00 80 6a 00 00 80 08 00 00 00 26 00 00 00 01 00 08 00 00 ...............j.......&........
0520 00 00 00 00 00 00 00 01 00 01 00 d5 03 00 80 93 00 00 00 ff ff ff ff 27 00 00 00 00 80 00 00 00 .......................'........
0540 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 28 00 00 00 00 c0 00 00 00 ...........1...1.......(........
0560 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 29 00 00 00 00 00 00 00 00 .......................)........
0580 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a 00 00 80 ff ff ff ff 2a 00 00 00 00 80 00 00 00 ...............j.......*........
05a0 00 00 00 00 00 00 00 01 00 04 00 48 03 00 80 9b 00 00 80 ff ff ff ff 2b 00 00 00 00 80 00 00 00 ...........H...........+........
05c0 00 00 00 00 00 00 00 01 00 05 01 31 00 00 80 31 00 00 80 ff ff ff ff 2c 00 00 00 01 40 00 00 00 ...........1...1.......,....@...
05e0 00 00 00 00 00 00 00 01 00 06 00 de 00 00 80 1b 03 00 80 04 00 00 00 2d 00 00 00 01 00 00 00 00 .......................-........
0600 00 00 00 00 00 00 00 01 00 06 00 51 00 00 80 6a 00 00 80 01 00 00 00 2e 00 00 00 01 00 00 00 00 ...........Q...j................
0620 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a 03 00 80 0c 00 00 00 2f 00 00 00 00 00 00 00 00 ...........y.........../........
0640 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 23 00 00 00 04 00 00 00 30 00 00 00 01 00 80 00 00 ...............#.......0........
0660 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 2c 00 00 00 08 00 00 00 31 00 00 00 01 00 80 00 00 ...............,.......1........
0680 00 00 00 00 00 00 00 01 00 01 00 20 03 00 80 a7 00 00 00 02 00 00 00 32 00 00 00 00 40 00 00 00 .......................2....@...
06a0 00 00 00 00 00 00 00 01 00 01 00 be 02 00 80 b6 00 00 00 0c 00 00 00 33 00 00 00 00 40 00 00 00 .......................3....@...
06c0 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 34 00 00 00 01 00 80 00 00 ...............#.......4........
06e0 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 35 00 00 00 01 00 80 00 00 ...............,.......5........
0700 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 bb 00 00 00 ff ff ff ff 36 00 00 00 01 80 00 00 00 ...........H...........6........
0720 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 37 00 00 00 01 40 00 00 00 ...........1...1.......7....@...
0740 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 38 00 00 00 01 00 00 00 00 .......................8........
0760 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 39 00 00 00 01 00 00 00 00 ...........Q...j.......9........
0780 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 c6 00 00 00 ff ff ff ff 3a 00 00 00 01 80 00 00 00 ...........H...........:........
07a0 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 3b 00 00 00 01 40 00 00 00 ...........1...1.......;....@...
07c0 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 3c 00 00 00 01 00 00 00 00 .......................<........
07e0 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 3d 00 00 00 01 00 00 00 00 ...........Q...j.......=........
0800 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 d8 00 00 00 ff ff ff ff 3e 00 00 00 01 80 00 00 00 ...........H...........>........
0820 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 3f 00 00 00 01 40 00 00 00 ...........1...1.......?....@...
0840 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 40 00 00 00 01 00 00 00 00 .......................@........
0860 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 41 00 00 00 01 00 00 00 00 ...........Q...j.......A........
0880 00 00 00 00 00 00 00 4d 6f 6e 6f 49 6d 70 6f 72 74 65 72 00 50 50 74 72 3c 45 64 69 74 6f 72 45 .......MonoImporter.PPtr<EditorE
08a0 78 74 65 6e 73 69 6f 6e 3e 00 6d 5f 46 69 6c 65 49 44 00 6d 5f 50 61 74 68 49 44 00 50 50 74 72 xtension>.m_FileID.m_PathID.PPtr
08c0 3c 50 72 65 66 61 62 49 6e 73 74 61 6e 63 65 3e 00 6d 5f 45 78 74 65 72 6e 61 6c 4f 62 6a 65 63 <PrefabInstance>.m_ExternalObjec
08e0 74 73 00 53 6f 75 72 63 65 41 73 73 65 74 49 64 65 6e 74 69 66 69 65 72 00 74 79 70 65 00 61 73 ts.SourceAssetIdentifier.type.as
0900 73 65 6d 62 6c 79 00 6e 61 6d 65 00 6d 5f 55 73 65 64 46 69 6c 65 49 44 73 00 6d 5f 44 65 66 61 sembly.name.m_UsedFileIDs.m_Defa
0920 75 6c 74 52 65 66 65 72 65 6e 63 65 73 00 65 78 65 63 75 74 69 6f 6e 4f 72 64 65 72 00 69 63 6f ultReferences.executionOrder.ico
0940 6e 00 6d 5f 55 73 65 72 44 61 74 61 00 6d 5f 41 73 73 65 74 42 75 6e 64 6c 65 4e 61 6d 65 00 6d n.m_UserData.m_AssetBundleName.m
0960 5f 41 73 73 65 74 42 75 6e 64 6c 65 56 61 72 69 61 6e 74 00 00 00 00 00 73 00 00 00 00 ff ff a3 _AssetBundleVariant.....s.......
0980 47 f1 d7 dc 8f 5a 35 36 a0 3a 21 40 69 c1 4a 2a 00 00 00 81 00 00 00 05 00 00 00 15 01 00 80 37 G....Z56.:!@i.J*...............7
09a0 00 00 80 ff ff ff ff 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 01 00 01 00 a6 03 00 80 b2 ................................
09c0 01 00 80 04 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 45 ...............................E
09e0 04 00 80 0c 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0a00 00 00 00 04 00 00 00 03 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0a20 00 00 00 08 00 00 00 04 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 28 00 00 00 61 ...........................(...a
0a40 04 00 80 0c 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0a60 00 00 00 04 00 00 00 06 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0a80 00 00 00 08 00 00 00 07 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 86 02 00 80 72 ...............................r
0aa0 04 00 80 0c 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0ac0 00 00 00 04 00 00 00 09 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0ae0 00 00 00 08 00 00 00 0a 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ab ...........................H....
0b00 01 00 80 ff ff ff ff 0b 00 00 00 01 80 08 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ...........................1...1
0b20 00 00 80 ff ff ff ff 0c 00 00 00 01 40 08 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b ............@...................
0b40 03 00 80 04 00 00 00 0d 00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a ...........................Q...j
0b60 00 00 80 01 00 00 00 0e 00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ea ...........................H....
0b80 01 00 80 ff ff ff ff 0f 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ...........................1...1
0ba0 00 00 80 ff ff ff ff 10 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b ............@...................
0bc0 03 00 80 04 00 00 00 11 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a ...........................Q...j
0be0 00 00 80 01 00 00 00 12 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 f1 00 00 80 3d ...............................=
0c00 00 00 00 ff ff ff ff 13 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ...........................1...1
0c20 00 00 80 ff ff ff ff 14 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b ................................
0c40 03 00 80 04 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a ...............................j
0c60 00 00 80 ff ff ff ff 16 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 04 00 48 03 00 80 9b ...........................H....
0c80 00 00 80 ff ff ff ff 17 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 05 01 31 00 00 80 31 ...........................1...1
0ca0 00 00 80 ff ff ff ff 18 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 01 00 06 00 de 00 00 80 1b ............@...................
0cc0 03 00 80 04 00 00 00 19 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 06 00 51 00 00 80 6a ...........................Q...j
0ce0 00 00 80 01 00 00 00 1a 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a ...........................y....
0d00 03 00 80 0c 00 00 00 1b 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 16 ................................
0d20 00 00 00 04 00 00 00 1c 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 1f ................................
0d40 00 00 00 08 00 00 00 1d 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 79 02 00 80 51 ...........................y...Q
0d60 00 00 00 0c 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0d80 00 00 00 04 00 00 00 1f 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0da0 00 00 00 08 00 00 00 20 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 de 00 00 80 58 ...............................X
0dc0 00 00 00 04 00 00 00 21 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 69 .......!...................H...i
0de0 00 00 00 ff ff ff ff 22 00 00 00 10 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ......."...................1...1
0e00 00 00 80 ff ff ff ff 23 00 00 00 11 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b .......#....@...................
0e20 03 00 80 04 00 00 00 24 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a .......$...................Q...j
0e40 00 00 80 01 00 00 00 25 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 75 .......%...................H...u
0e60 00 00 00 ff ff ff ff 26 00 00 00 10 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 .......&...................1...1
0e80 00 00 80 ff ff ff ff 27 00 00 00 11 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b .......'....@...................
0ea0 03 00 80 04 00 00 00 28 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a .......(...................Q...j
0ec0 00 00 80 01 00 00 00 29 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 50 50 74 72 3c 45 64 69 74 .......)...............PPtr<Edit
0ee0 6f 72 45 78 74 65 6e 73 69 6f 6e 3e 00 6d 5f 46 69 6c 65 49 44 00 6d 5f 50 61 74 68 49 44 00 50 orExtension>.m_FileID.m_PathID.P
0f00 50 74 72 3c 50 72 65 66 61 62 49 6e 73 74 61 6e 63 65 3e 00 6d 5f 44 65 66 61 75 6c 74 52 65 66 Ptr<PrefabInstance>.m_DefaultRef
0f20 65 72 65 6e 63 65 73 00 6d 5f 49 63 6f 6e 00 6d 5f 45 78 65 63 75 74 69 6f 6e 4f 72 64 65 72 00 erences.m_Icon.m_ExecutionOrder.
0f40 6d 5f 43 6c 61 73 73 4e 61 6d 65 00 6d 5f 4e 61 6d 65 73 70 61 63 65 00 00 00 00 00 02 00 00 00 m_ClassName.m_Namespace.........
0f60 03 00 00 00 00 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 e0 79 af 00 00 00 00 00 60 00 00 00 ............\........y......`...
0f80 08 7c 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .|..............................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 79 af 00 00 00 00 00 00 00 00 00 .....................y..........
1040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1080 00 00 00 00 00 00 00 00 11 00 00 00 50 72 6f 6a 65 63 74 47 65 6e 65 72 61 74 69 6f 6e 00 00 00 ............ProjectGeneration...
10a0 88 7b 00 00 75 73 69 6e 67 20 53 79 73 74 65 6d 3b 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 43 .{..using.System;.using.System.C
10c0 6f 6c 6c 65 63 74 69 6f 6e 73 2e 47 65 6e 65 72 69 63 3b 0a 75 73 69 6e 67 20 53 79 73 74 65 6d ollections.Generic;.using.System
10e0 2e 49 4f 3b 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 4c 69 6e 71 3b 0a 75 73 69 6e 67 20 53 79 .IO;.using.System.Linq;.using.Sy
1100 73 74 65 6d 2e 53 65 63 75 72 69 74 79 3b 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 53 65 63 75 stem.Security;.using.System.Secu
1120 72 69 74 79 2e 43 72 79 70 74 6f 67 72 61 70 68 79 3b 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e rity.Cryptography;.using.System.
1140 54 65 78 74 3b 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 54 65 78 74 2e 52 65 67 75 6c 61 72 45 Text;.using.System.Text.RegularE
1160 78 70 72 65 73 73 69 6f 6e 73 3b 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 64 69 74 6f 72 3b 0a 75 xpressions;.using.UnityEditor;.u
1180 73 69 6e 67 20 55 6e 69 74 79 45 64 69 74 6f 72 2e 43 6f 6d 70 69 6c 61 74 69 6f 6e 3b 0a 75 73 sing.UnityEditor.Compilation;.us
11a0 69 6e 67 20 55 6e 69 74 79 45 64 69 74 6f 72 2e 50 61 63 6b 61 67 65 4d 61 6e 61 67 65 72 3b 0a ing.UnityEditor.PackageManager;.
11c0 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 69 6e 65 3b 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e using.UnityEngine;.using.UnityEn
11e0 67 69 6e 65 2e 50 72 6f 66 69 6c 69 6e 67 3b 0a 0a 6e 61 6d 65 73 70 61 63 65 20 56 53 43 6f 64 gine.Profiling;..namespace.VSCod
1200 65 45 64 69 74 6f 72 0a 7b 0a 20 20 20 20 70 75 62 6c 69 63 20 69 6e 74 65 72 66 61 63 65 20 49 eEditor.{.....public.interface.I
1220 47 65 6e 65 72 61 74 6f 72 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 53 79 6e Generator.....{.........bool.Syn
1240 63 49 66 4e 65 65 64 65 64 28 4c 69 73 74 3c 73 74 72 69 6e 67 3e 20 61 66 66 65 63 74 65 64 46 cIfNeeded(List<string>.affectedF
1260 69 6c 65 73 2c 20 73 74 72 69 6e 67 5b 5d 20 72 65 69 6d 70 6f 72 74 65 64 46 69 6c 65 73 29 3b iles,.string[].reimportedFiles);
1280 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20 53 79 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 73 74 .........void.Sync();.........st
12a0 72 69 6e 67 20 53 6f 6c 75 74 69 6f 6e 46 69 6c 65 28 29 3b 0a 20 20 20 20 20 20 20 20 73 74 72 ring.SolutionFile();.........str
12c0 69 6e 67 20 50 72 6f 6a 65 63 74 44 69 72 65 63 74 6f 72 79 20 7b 20 67 65 74 3b 20 7d 0a 20 20 ing.ProjectDirectory.{.get;.}...
12e0 20 20 20 20 20 20 76 6f 69 64 20 47 65 6e 65 72 61 74 65 41 6c 6c 28 62 6f 6f 6c 20 67 65 6e 65 ......void.GenerateAll(bool.gene
1300 72 61 74 65 41 6c 6c 29 3b 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 53 6f 6c 75 74 69 6f 6e 45 rateAll);.........bool.SolutionE
1320 78 69 73 74 73 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 63 6c 61 73 73 xists();.....}......public.class
1340 20 50 72 6f 6a 65 63 74 47 65 6e 65 72 61 74 69 6f 6e 20 3a 20 49 47 65 6e 65 72 61 74 6f 72 0a .ProjectGeneration.:.IGenerator.
1360 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 65 6e 75 6d 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 ....{.........enum.ScriptingLang
1380 75 61 67 65 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 6e 65 2c uage.........{.............None,
13a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 68 61 72 70 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 .............CSharp.........}...
13c0 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 72 65 61 64 6f 6e 6c 79 20 73 74 .......public.static.readonly.st
13e0 72 69 6e 67 20 4d 53 42 75 69 6c 64 4e 61 6d 65 73 70 61 63 65 55 72 69 20 3d 20 22 68 74 74 70 ring.MSBuildNamespaceUri.=."http
1400 3a 2f 2f 73 63 68 65 6d 61 73 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 64 65 76 65 6c 6f 70 ://schemas.microsoft.com/develop
1420 65 72 2f 6d 73 62 75 69 6c 64 2f 32 30 30 33 22 3b 0a 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 er/msbuild/2003";..........const
1440 20 73 74 72 69 6e 67 20 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 20 3d 20 22 5c 72 5c 6e .string.k_WindowsNewline.=."\r\n
1460 22 3b 0a 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72 69 6e 67 20 6b 5f 53 65 74 74 69 ";..........const.string.k_Setti
1480 6e 67 73 4a 73 6f 6e 20 3d 20 40 22 7b 0a 20 20 20 20 22 22 66 69 6c 65 73 2e 65 78 63 6c 75 64 ngsJson.=.@"{.....""files.exclud
14a0 65 22 22 3a 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2e 44 53 5f 53 74 6f 72 e"":.....{.........""**/.DS_Stor
14c0 65 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2e 67 69 74 22 22 3a 74 72 e"":true,.........""**/.git"":tr
14e0 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2e 67 69 74 69 67 6e 6f 72 65 22 22 3a 74 72 ue,.........""**/.gitignore"":tr
1500 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2e 67 69 74 6d 6f 64 75 6c 65 73 22 22 3a 74 ue,.........""**/.gitmodules"":t
1520 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 62 6f 6f 70 72 6f 6a 22 22 3a 74 72 rue,.........""**/*.booproj"":tr
1540 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 70 69 64 62 22 22 3a 74 72 75 65 2c 0a ue,.........""**/*.pidb"":true,.
1560 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 73 75 6f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 ........""**/*.suo"":true,......
1580 20 20 20 22 22 2a 2a 2f 2a 2e 75 73 65 72 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 ...""**/*.user"":true,........."
15a0 22 2a 2a 2f 2a 2e 75 73 65 72 70 72 65 66 73 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 "**/*.userprefs"":true,.........
15c0 22 22 2a 2a 2f 2a 2e 75 6e 69 74 79 70 72 6f 6a 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 ""**/*.unityproj"":true,........
15e0 20 22 22 2a 2a 2f 2a 2e 64 6c 6c 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a .""**/*.dll"":true,.........""**
1600 2f 2a 2e 65 78 65 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 70 64 /*.exe"":true,.........""**/*.pd
1620 66 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 6d 69 64 22 22 3a 74 f"":true,.........""**/*.mid"":t
1640 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 6d 69 64 69 22 22 3a 74 72 75 65 2c rue,.........""**/*.midi"":true,
1660 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 77 61 76 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 .........""**/*.wav"":true,.....
1680 20 20 20 20 22 22 2a 2a 2f 2a 2e 67 69 66 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 ....""**/*.gif"":true,........."
16a0 22 2a 2a 2f 2a 2e 69 63 6f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a "**/*.ico"":true,.........""**/*
16c0 2e 6a 70 67 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 6a 70 65 67 .jpg"":true,.........""**/*.jpeg
16e0 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 70 6e 67 22 22 3a 74 72 "":true,.........""**/*.png"":tr
1700 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 70 73 64 22 22 3a 74 72 75 65 2c 0a 20 ue,.........""**/*.psd"":true,..
1720 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 74 67 61 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 .......""**/*.tga"":true,.......
1740 20 20 22 22 2a 2a 2f 2a 2e 74 69 66 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a ..""**/*.tif"":true,.........""*
1760 2a 2f 2a 2e 74 69 66 66 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e */*.tiff"":true,.........""**/*.
1780 33 64 73 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 33 44 53 22 22 3ds"":true,.........""**/*.3DS""
17a0 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 66 62 78 22 22 3a 74 72 75 65 :true,.........""**/*.fbx"":true
17c0 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 46 42 58 22 22 3a 74 72 75 65 2c 0a 20 20 20 ,.........""**/*.FBX"":true,....
17e0 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 6c 78 6f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 .....""**/*.lxo"":true,.........
1800 22 22 2a 2a 2f 2a 2e 4c 58 4f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f ""**/*.LXO"":true,.........""**/
1820 2a 2e 6d 61 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 4d 41 22 22 *.ma"":true,.........""**/*.MA""
1840 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 6f 62 6a 22 22 3a 74 72 75 65 :true,.........""**/*.obj"":true
1860 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 4f 42 4a 22 22 3a 74 72 75 65 2c 0a 20 20 20 ,.........""**/*.OBJ"":true,....
1880 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 61 73 73 65 74 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 .....""**/*.asset"":true,.......
18a0 20 20 22 22 2a 2a 2f 2a 2e 63 75 62 65 6d 61 70 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 ..""**/*.cubemap"":true,........
18c0 20 22 22 2a 2a 2f 2a 2e 66 6c 61 72 65 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 .""**/*.flare"":true,.........""
18e0 2a 2a 2f 2a 2e 6d 61 74 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e **/*.mat"":true,.........""**/*.
1900 6d 65 74 61 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 70 72 65 66 meta"":true,.........""**/*.pref
1920 61 62 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 2a 2a 2f 2a 2e 75 6e 69 74 79 22 ab"":true,.........""**/*.unity"
1940 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 62 75 69 6c 64 2f 22 22 3a 74 72 75 65 2c ":true,.........""build/"":true,
1960 0a 20 20 20 20 20 20 20 20 22 22 42 75 69 6c 64 2f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 .........""Build/"":true,.......
1980 20 20 22 22 4c 69 62 72 61 72 79 2f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 6c ..""Library/"":true,.........""l
19a0 69 62 72 61 72 79 2f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 6f 62 6a 2f 22 22 ibrary/"":true,.........""obj/""
19c0 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 22 22 4f 62 6a 2f 22 22 3a 74 72 75 65 2c 0a 20 20 :true,.........""Obj/"":true,...
19e0 20 20 20 20 20 20 22 22 50 72 6f 6a 65 63 74 53 65 74 74 69 6e 67 73 2f 22 22 3a 74 72 75 65 2c ......""ProjectSettings/"":true,
1a00 0a 20 20 20 20 20 20 20 20 22 22 74 65 6d 70 2f 22 22 3a 74 72 75 65 2c 0a 20 20 20 20 20 20 20 .........""temp/"":true,........
1a20 20 22 22 54 65 6d 70 2f 22 22 3a 74 72 75 65 0a 20 20 20 20 7d 0a 7d 22 3b 0a 0a 20 20 20 20 20 .""Temp/"":true.....}.}";.......
1a40 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4d 61 70 ...///.<summary>.........///.Map
1a60 20 73 6f 75 72 63 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 53 63 72 69 70 74 69 6e 67 4c .source.extensions.to.ScriptingL
1a80 61 6e 67 75 61 67 65 73 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a anguages.........///.</summary>.
1aa0 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 72 65 61 64 6f 6e 6c 79 20 44 69 63 74 69 6f 6e 61 ........static.readonly.Dictiona
1ac0 72 79 3c 73 74 72 69 6e 67 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 3e 20 6b 5f ry<string,.ScriptingLanguage>.k_
1ae0 42 75 69 6c 74 69 6e 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 6e 65 77 BuiltinSupportedExtensions.=.new
1b00 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e .Dictionary<string,.ScriptingLan
1b20 67 75 61 67 65 3e 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 guage>.........{.............{."
1b40 63 73 22 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 43 53 68 61 72 70 20 7d 2c cs",.ScriptingLanguage.CSharp.},
1b60 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 75 78 6d 6c 22 2c 20 53 63 72 69 70 74 69 6e 67 .............{."uxml",.Scripting
1b80 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 Language.None.},.............{."
1ba0 75 73 73 22 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 20 7d 2c 0a uss",.ScriptingLanguage.None.},.
1bc0 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 73 68 61 64 65 72 22 2c 20 53 63 72 69 70 74 69 6e ............{."shader",.Scriptin
1be0 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 gLanguage.None.},.............{.
1c00 22 63 6f 6d 70 75 74 65 22 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e "compute",.ScriptingLanguage.Non
1c20 65 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 63 67 69 6e 63 22 2c 20 53 63 72 69 e.},.............{."cginc",.Scri
1c40 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 ptingLanguage.None.},...........
1c60 20 20 7b 20 22 68 6c 73 6c 22 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f ..{."hlsl",.ScriptingLanguage.No
1c80 6e 65 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 67 6c 73 6c 69 6e 63 22 2c 20 53 ne.},.............{."glslinc",.S
1ca0 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 20 7d 2c 0a 20 20 20 20 20 20 20 criptingLanguage.None.},........
1cc0 20 20 20 20 20 7b 20 22 74 65 6d 70 6c 61 74 65 22 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 .....{."template",.ScriptingLang
1ce0 75 61 67 65 2e 4e 6f 6e 65 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 22 72 61 79 74 uage.None.},.............{."rayt
1d00 72 61 63 65 22 2c 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 20 7d 0a race",.ScriptingLanguage.None.}.
1d20 20 20 20 20 20 20 20 20 7d 3b 0a 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 6d 5f 53 6f 6c ........};..........string.m_Sol
1d40 75 74 69 6f 6e 50 72 6f 6a 65 63 74 45 6e 74 72 79 54 65 6d 70 6c 61 74 65 20 3d 20 73 74 72 69 utionProjectEntryTemplate.=.stri
1d60 6e 67 2e 4a 6f 69 6e 28 22 5c 72 5c 6e 22 2c 20 40 22 50 72 6f 6a 65 63 74 28 22 22 7b 7b 7b 30 ng.Join("\r\n",.@"Project(""{{{0
1d80 7d 7d 7d 22 22 29 20 3d 20 22 22 7b 31 7d 22 22 2c 20 22 22 7b 32 7d 22 22 2c 20 22 22 7b 7b 7b }}}"").=.""{1}"",.""{2}"",.""{{{
1da0 33 7d 7d 7d 22 22 22 2c 20 40 22 45 6e 64 50 72 6f 6a 65 63 74 22 29 2e 52 65 70 6c 61 63 65 28 3}}}""",.@"EndProject").Replace(
1dc0 22 20 20 20 20 22 2c 20 22 5c 74 22 29 3b 0a 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 6d "....",."\t");..........string.m
1de0 5f 53 6f 6c 75 74 69 6f 6e 50 72 6f 6a 65 63 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 54 65 6d _SolutionProjectConfigurationTem
1e00 70 6c 61 74 65 20 3d 20 73 74 72 69 6e 67 2e 4a 6f 69 6e 28 22 5c 72 5c 6e 22 2c 20 40 22 20 20 plate.=.string.Join("\r\n",.@"..
1e20 20 20 20 20 20 20 7b 7b 7b 30 7d 7d 7d 2e 44 65 62 75 67 7c 41 6e 79 20 43 50 55 2e 41 63 74 69 ......{{{0}}}.Debug|Any.CPU.Acti
1e40 76 65 43 66 67 20 3d 20 44 65 62 75 67 7c 41 6e 79 20 43 50 55 22 2c 20 40 22 20 20 20 20 20 20 veCfg.=.Debug|Any.CPU",.@"......
1e60 20 20 7b 7b 7b 30 7d 7d 7d 2e 44 65 62 75 67 7c 41 6e 79 20 43 50 55 2e 42 75 69 6c 64 2e 30 20 ..{{{0}}}.Debug|Any.CPU.Build.0.
1e80 3d 20 44 65 62 75 67 7c 41 6e 79 20 43 50 55 22 2c 20 40 22 20 20 20 20 20 20 20 20 7b 7b 7b 30 =.Debug|Any.CPU",.@"........{{{0
1ea0 7d 7d 7d 2e 52 65 6c 65 61 73 65 7c 41 6e 79 20 43 50 55 2e 41 63 74 69 76 65 43 66 67 20 3d 20 }}}.Release|Any.CPU.ActiveCfg.=.
1ec0 52 65 6c 65 61 73 65 7c 41 6e 79 20 43 50 55 22 2c 20 40 22 20 20 20 20 20 20 20 20 7b 7b 7b 30 Release|Any.CPU",.@"........{{{0
1ee0 7d 7d 7d 2e 52 65 6c 65 61 73 65 7c 41 6e 79 20 43 50 55 2e 42 75 69 6c 64 2e 30 20 3d 20 52 65 }}}.Release|Any.CPU.Build.0.=.Re
1f00 6c 65 61 73 65 7c 41 6e 79 20 43 50 55 22 29 2e 52 65 70 6c 61 63 65 28 22 20 20 20 20 22 2c 20 lease|Any.CPU").Replace("....",.
1f20 22 5c 74 22 29 3b 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 72 65 61 64 6f 6e 6c 79 20 "\t");..........static.readonly.
1f40 73 74 72 69 6e 67 5b 5d 20 6b 5f 52 65 69 6d 70 6f 72 74 53 79 6e 63 45 78 74 65 6e 73 69 6f 6e string[].k_ReimportSyncExtension
1f60 73 20 3d 20 7b 20 22 2e 64 6c 6c 22 2c 20 22 2e 61 73 6d 64 65 66 22 20 7d 3b 0a 0a 20 20 20 20 s.=.{.".dll",.".asmdef".};......
1f80 20 20 20 20 73 74 72 69 6e 67 5b 5d 20 6d 5f 50 72 6f 6a 65 63 74 53 75 70 70 6f 72 74 65 64 45 ....string[].m_ProjectSupportedE
1fa0 78 74 65 6e 73 69 6f 6e 73 20 3d 20 6e 65 77 20 73 74 72 69 6e 67 5b 30 5d 3b 0a 20 20 20 20 20 xtensions.=.new.string[0];......
1fc0 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 50 72 6f 6a 65 63 74 44 69 72 65 63 74 6f 72 ...public.string.ProjectDirector
1fe0 79 20 7b 20 67 65 74 3b 20 7d 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 6d 5f 53 68 6f 75 6c 64 y.{.get;.}.........bool.m_Should
2000 47 65 6e 65 72 61 74 65 41 6c 6c 3b 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 76 6f 69 GenerateAll;..........public.voi
2020 64 20 47 65 6e 65 72 61 74 65 41 6c 6c 28 62 6f 6f 6c 20 67 65 6e 65 72 61 74 65 41 6c 6c 29 0a d.GenerateAll(bool.generateAll).
2040 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 53 68 6f 75 6c 64 47 65 ........{.............m_ShouldGe
2060 6e 65 72 61 74 65 41 6c 6c 20 3d 20 67 65 6e 65 72 61 74 65 41 6c 6c 3b 0a 20 20 20 20 20 20 20 nerateAll.=.generateAll;........
2080 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 61 64 6f 6e 6c 79 20 73 74 72 69 6e 67 20 6d 5f 50 72 .}..........readonly.string.m_Pr
20a0 6f 6a 65 63 74 4e 61 6d 65 3b 0a 20 20 20 20 20 20 20 20 72 65 61 64 6f 6e 6c 79 20 49 41 73 73 ojectName;.........readonly.IAss
20c0 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 emblyNameProvider.m_AssemblyName
20e0 50 72 6f 76 69 64 65 72 3b 0a 20 20 20 20 20 20 20 20 72 65 61 64 6f 6e 6c 79 20 49 46 69 6c 65 Provider;.........readonly.IFile
2100 49 4f 20 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 3b 0a 20 20 20 20 20 20 20 20 72 65 61 IO.m_FileIOProvider;.........rea
2120 64 6f 6e 6c 79 20 49 47 55 49 44 47 65 6e 65 72 61 74 6f 72 20 6d 5f 47 55 49 44 50 72 6f 76 69 donly.IGUIDGenerator.m_GUIDProvi
2140 64 65 72 3b 0a 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72 69 6e 67 20 6b 5f 54 6f 6f der;..........const.string.k_Too
2160 6c 73 56 65 72 73 69 6f 6e 20 3d 20 22 34 2e 30 22 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 lsVersion.=."4.0";.........const
2180 20 73 74 72 69 6e 67 20 6b 5f 50 72 6f 64 75 63 74 56 65 72 73 69 6f 6e 20 3d 20 22 31 30 2e 30 .string.k_ProductVersion.=."10.0
21a0 2e 32 30 35 30 36 22 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72 69 6e 67 20 6b 5f .20506";.........const.string.k_
21c0 42 61 73 65 44 69 72 65 63 74 6f 72 79 20 3d 20 22 2e 22 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e BaseDirectory.=.".";.........con
21e0 73 74 20 73 74 72 69 6e 67 20 6b 5f 54 61 72 67 65 74 46 72 61 6d 65 77 6f 72 6b 56 65 72 73 69 st.string.k_TargetFrameworkVersi
2200 6f 6e 20 3d 20 22 76 34 2e 37 2e 31 22 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72 on.=."v4.7.1";.........const.str
2220 69 6e 67 20 6b 5f 54 61 72 67 65 74 4c 61 6e 67 75 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 22 6c ing.k_TargetLanguageVersion.=."l
2240 61 74 65 73 74 22 3b 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 50 72 6f 6a 65 63 74 47 atest";..........public.ProjectG
2260 65 6e 65 72 61 74 69 6f 6e 28 73 74 72 69 6e 67 20 74 65 6d 70 44 69 72 65 63 74 6f 72 79 29 0a eneration(string.tempDirectory).
2280 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 74 68 69 73 28 74 65 6d 70 44 69 72 65 63 74 6f 72 79 ............:.this(tempDirectory
22a0 2c 20 6e 65 77 20 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 28 29 2c 20 6e 65 ,.new.AssemblyNameProvider(),.ne
22c0 77 20 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 28 29 2c 20 6e 65 77 20 47 55 49 44 50 72 6f 76 w.FileIOProvider(),.new.GUIDProv
22e0 69 64 65 72 28 29 29 20 7b 20 7d 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 50 72 6f 6a ider()).{.}..........public.Proj
2300 65 63 74 47 65 6e 65 72 61 74 69 6f 6e 28 73 74 72 69 6e 67 20 74 65 6d 70 44 69 72 65 63 74 6f ectGeneration(string.tempDirecto
2320 72 79 2c 20 49 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 20 61 73 73 65 6d 62 ry,.IAssemblyNameProvider.assemb
2340 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 2c 20 49 46 69 6c 65 49 4f 20 66 69 6c 65 49 4f 2c 20 lyNameProvider,.IFileIO.fileIO,.
2360 49 47 55 49 44 47 65 6e 65 72 61 74 6f 72 20 67 75 69 64 47 65 6e 65 72 61 74 6f 72 29 0a 20 20 IGUIDGenerator.guidGenerator)...
2380 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 72 6f 6a 65 63 74 44 69 72 65 63 ......{.............ProjectDirec
23a0 74 6f 72 79 20 3d 20 74 65 6d 70 44 69 72 65 63 74 6f 72 79 2e 52 65 70 6c 61 63 65 28 27 5c 5c tory.=.tempDirectory.Replace('\\
23c0 27 2c 20 27 2f 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 50 72 6f 6a 65 63 74 4e 61 ',.'/');.............m_ProjectNa
23e0 6d 65 20 3d 20 50 61 74 68 2e 47 65 74 46 69 6c 65 4e 61 6d 65 28 50 72 6f 6a 65 63 74 44 69 72 me.=.Path.GetFileName(ProjectDir
2400 65 63 74 6f 72 79 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 41 73 73 65 6d 62 6c 79 4e ectory);.............m_AssemblyN
2420 61 6d 65 50 72 6f 76 69 64 65 72 20 3d 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 ameProvider.=.assemblyNameProvid
2440 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 er;.............m_FileIOProvider
2460 20 3d 20 66 69 6c 65 49 4f 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 47 55 49 44 50 72 6f .=.fileIO;.............m_GUIDPro
2480 76 69 64 65 72 20 3d 20 67 75 69 64 47 65 6e 65 72 61 74 6f 72 3b 0a 20 20 20 20 20 20 20 20 7d vider.=.guidGenerator;.........}
24a0 0a 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 20 20 20 20 ..........///.<summary>.........
24c0 2f 2f 2f 20 53 79 6e 63 73 20 74 68 65 20 73 63 72 69 70 74 69 6e 67 20 73 6f 6c 75 74 69 6f 6e ///.Syncs.the.scripting.solution
24e0 20 69 66 20 61 6e 79 20 61 66 66 65 63 74 65 64 20 66 69 6c 65 73 20 61 72 65 20 72 65 6c 65 76 .if.any.affected.files.are.relev
2500 61 6e 74 2e 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 ant..........///.</summary>.....
2520 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 57 68 ....///.<returns>.........///.Wh
2540 65 74 68 65 72 20 74 68 65 20 73 6f 6c 75 74 69 6f 6e 20 77 61 73 20 73 79 6e 63 65 64 2e 0a 20 ether.the.solution.was.synced...
2560 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 74 75 72 6e 73 3e 0a 20 20 20 20 20 20 20 20 2f 2f .......///.</returns>.........//
2580 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 27 61 66 66 65 63 74 65 64 46 69 6c 65 73 27 3e 0a 20 /.<param.name='affectedFiles'>..
25a0 20 20 20 20 20 20 20 2f 2f 2f 20 41 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 77 68 6f 73 65 20 .......///.A.set.of.files.whose.
25c0 73 74 61 74 75 73 20 68 61 73 20 63 68 61 6e 67 65 64 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c status.has.changed.........///.<
25e0 2f 70 61 72 61 6d 3e 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d /param>.........///.<param.name=
2600 22 72 65 69 6d 70 6f 72 74 65 64 46 69 6c 65 73 22 3e 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 41 "reimportedFiles">.........///.A
2620 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 67 6f 74 20 72 65 69 6d 70 6f 72 74 65 .set.of.files.that.got.reimporte
2640 64 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 70 61 72 61 6d 3e 0a 20 20 20 20 20 20 20 20 70 d.........///.</param>.........p
2660 75 62 6c 69 63 20 62 6f 6f 6c 20 53 79 6e 63 49 66 4e 65 65 64 65 64 28 4c 69 73 74 3c 73 74 72 ublic.bool.SyncIfNeeded(List<str
2680 69 6e 67 3e 20 61 66 66 65 63 74 65 64 46 69 6c 65 73 2c 20 73 74 72 69 6e 67 5b 5d 20 72 65 69 ing>.affectedFiles,.string[].rei
26a0 6d 70 6f 72 74 65 64 46 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 mportedFiles).........{.........
26c0 20 20 20 20 50 72 6f 66 69 6c 65 72 2e 42 65 67 69 6e 53 61 6d 70 6c 65 28 22 53 6f 6c 75 74 69 ....Profiler.BeginSample("Soluti
26e0 6f 6e 53 79 6e 63 68 72 6f 6e 69 7a 65 72 53 79 6e 63 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 onSynchronizerSync");...........
2700 20 20 53 65 74 75 70 50 72 6f 6a 65 63 74 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e ..SetupProjectSupportedExtension
2720 73 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 6f 6e 27 74 20 73 79 6e 63 20 s();..............//.Don't.sync.
2740 69 66 20 77 65 20 68 61 76 65 6e 27 74 20 73 79 6e 63 65 64 20 62 65 66 6f 72 65 0a 20 20 20 20 if.we.haven't.synced.before.....
2760 20 20 20 20 20 20 20 20 69 66 20 28 53 6f 6c 75 74 69 6f 6e 45 78 69 73 74 73 28 29 20 26 26 20 ........if.(SolutionExists().&&.
2780 48 61 73 46 69 6c 65 73 42 65 65 6e 4d 6f 64 69 66 69 65 64 28 61 66 66 65 63 74 65 64 46 69 6c HasFilesBeenModified(affectedFil
27a0 65 73 2c 20 72 65 69 6d 70 6f 72 74 65 64 46 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 es,.reimportedFiles))...........
27c0 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 61 73 73 65 6d 62 6c 69 ..{.................var.assembli
27e0 65 73 20 3d 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 2e 47 65 74 41 es.=.m_AssemblyNameProvider.GetA
2800 73 73 65 6d 62 6c 69 65 73 28 53 68 6f 75 6c 64 46 69 6c 65 42 65 50 61 72 74 4f 66 53 6f 6c 75 ssemblies(ShouldFileBePartOfSolu
2820 74 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 61 6c 6c 50 72 tion);.................var.allPr
2840 6f 6a 65 63 74 41 73 73 65 6d 62 6c 69 65 73 20 3d 20 52 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 ojectAssemblies.=.RelevantAssemb
2860 6c 69 65 73 46 6f 72 4d 6f 64 65 28 61 73 73 65 6d 62 6c 69 65 73 29 2e 54 6f 4c 69 73 74 28 29 liesForMode(assemblies).ToList()
2880 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 61 6c 6c 41 73 73 65 74 50 72 ;.................var.allAssetPr
28a0 6f 6a 65 63 74 50 61 72 74 73 20 3d 20 47 65 6e 65 72 61 74 65 41 6c 6c 41 73 73 65 74 50 72 6f ojectParts.=.GenerateAllAssetPro
28c0 6a 65 63 74 50 61 72 74 73 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 jectParts();..................va
28e0 72 20 61 66 66 65 63 74 65 64 4e 61 6d 65 73 20 3d 20 61 66 66 65 63 74 65 64 46 69 6c 65 73 2e r.affectedNames.=.affectedFiles.
2900 53 65 6c 65 63 74 28 61 73 73 65 74 20 3d 3e 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 Select(asset.=>.m_AssemblyNamePr
2920 6f 76 69 64 65 72 2e 47 65 74 41 73 73 65 6d 62 6c 79 4e 61 6d 65 46 72 6f 6d 53 63 72 69 70 74 ovider.GetAssemblyNameFromScript
2940 50 61 74 68 28 61 73 73 65 74 29 3f 2e 53 70 6c 69 74 28 6e 65 77 20 5b 5d 20 7b 22 2e 64 6c 6c Path(asset)?.Split(new.[].{".dll
2960 22 7d 2c 20 53 74 72 69 6e 67 53 70 6c 69 74 4f 70 74 69 6f 6e 73 2e 52 65 6d 6f 76 65 45 6d 70 "},.StringSplitOptions.RemoveEmp
2980 74 79 45 6e 74 72 69 65 73 29 5b 30 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tyEntries)[0]);.................
29a0 76 61 72 20 72 65 69 6d 70 6f 72 74 65 64 4e 61 6d 65 73 20 3d 20 72 65 69 6d 70 6f 72 74 65 64 var.reimportedNames.=.reimported
29c0 46 69 6c 65 73 2e 53 65 6c 65 63 74 28 61 73 73 65 74 20 3d 3e 20 6d 5f 41 73 73 65 6d 62 6c 79 Files.Select(asset.=>.m_Assembly
29e0 4e 61 6d 65 50 72 6f 76 69 64 65 72 2e 47 65 74 41 73 73 65 6d 62 6c 79 4e 61 6d 65 46 72 6f 6d NameProvider.GetAssemblyNameFrom
2a00 53 63 72 69 70 74 50 61 74 68 28 61 73 73 65 74 29 3f 2e 53 70 6c 69 74 28 6e 65 77 20 5b 5d 20 ScriptPath(asset)?.Split(new.[].
2a20 7b 22 2e 64 6c 6c 22 7d 2c 20 53 74 72 69 6e 67 53 70 6c 69 74 4f 70 74 69 6f 6e 73 2e 52 65 6d {".dll"},.StringSplitOptions.Rem
2a40 6f 76 65 45 6d 70 74 79 45 6e 74 72 69 65 73 29 5b 30 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 oveEmptyEntries)[0]);...........
2a60 20 20 20 20 20 20 76 61 72 20 61 66 66 65 63 74 65 64 41 6e 64 52 65 69 6d 70 6f 72 74 65 64 20 ......var.affectedAndReimported.
2a80 3d 20 6e 65 77 20 48 61 73 68 53 65 74 3c 73 74 72 69 6e 67 3e 28 61 66 66 65 63 74 65 64 4e 61 =.new.HashSet<string>(affectedNa
2aa0 6d 65 73 2e 43 6f 6e 63 61 74 28 72 65 69 6d 70 6f 72 74 65 64 4e 61 6d 65 73 29 29 3b 0a 20 20 mes.Concat(reimportedNames));...
2ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 20 ..............var.assemblyNames.
2ae0 3d 20 6e 65 77 20 48 61 73 68 53 65 74 3c 73 74 72 69 6e 67 3e 28 61 6c 6c 50 72 6f 6a 65 63 74 =.new.HashSet<string>(allProject
2b00 41 73 73 65 6d 62 6c 69 65 73 2e 53 65 6c 65 63 74 28 61 73 73 65 6d 62 6c 79 20 3d 3e 20 50 61 Assemblies.Select(assembly.=>.Pa
2b20 74 68 2e 47 65 74 46 69 6c 65 4e 61 6d 65 28 61 73 73 65 6d 62 6c 79 2e 6f 75 74 70 75 74 50 61 th.GetFileName(assembly.outputPa
2b40 74 68 29 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 th)));..................foreach.
2b60 28 76 61 72 20 61 73 73 65 6d 62 6c 79 20 69 6e 20 61 6c 6c 50 72 6f 6a 65 63 74 41 73 73 65 6d (var.assembly.in.allProjectAssem
2b80 62 6c 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 blies).................{........
2ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 61 66 66 65 63 74 65 64 41 6e 64 52 65 69 .............if.(!affectedAndRei
2bc0 6d 70 6f 72 74 65 64 2e 43 6f 6e 74 61 69 6e 73 28 61 73 73 65 6d 62 6c 79 2e 6e 61 6d 65 29 29 mported.Contains(assembly.name))
2be0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 .........................continu
2c00 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 79 6e 63 50 72 6f 6a e;......................SyncProj
2c20 65 63 74 28 61 73 73 65 6d 62 6c 79 2c 20 61 6c 6c 41 73 73 65 74 50 72 6f 6a 65 63 74 50 61 72 ect(assembly,.allAssetProjectPar
2c40 74 73 2c 20 50 61 72 73 65 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 28 61 73 73 65 6d 62 ts,.ParseResponseFileData(assemb
2c60 6c 79 29 2c 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ly),.assemblyNames);............
2c80 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 6f 66 69 6c 65 72 .....}..................Profiler
2ca0 2e 45 6e 64 53 61 6d 70 6c 65 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .EndSample();.................re
2cc0 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 turn.true;.............}........
2ce0 20 20 20 20 20 20 50 72 6f 66 69 6c 65 72 2e 45 6e 64 53 61 6d 70 6c 65 28 29 3b 0a 20 20 20 20 ......Profiler.EndSample();.....
2d00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a ........return.false;.........}.
2d20 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 48 61 73 46 69 6c 65 73 42 65 65 6e 4d 6f 64 69 66 69 .........bool.HasFilesBeenModifi
2d40 65 64 28 4c 69 73 74 3c 73 74 72 69 6e 67 3e 20 61 66 66 65 63 74 65 64 46 69 6c 65 73 2c 20 73 ed(List<string>.affectedFiles,.s
2d60 74 72 69 6e 67 5b 5d 20 72 65 69 6d 70 6f 72 74 65 64 46 69 6c 65 73 29 0a 20 20 20 20 20 20 20 tring[].reimportedFiles)........
2d80 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 66 66 65 63 74 65 64 46 69 .{.............return.affectedFi
2da0 6c 65 73 2e 41 6e 79 28 53 68 6f 75 6c 64 46 69 6c 65 42 65 50 61 72 74 4f 66 53 6f 6c 75 74 69 les.Any(ShouldFileBePartOfSoluti
2dc0 6f 6e 29 20 7c 7c 20 72 65 69 6d 70 6f 72 74 65 64 46 69 6c 65 73 2e 41 6e 79 28 53 68 6f 75 6c on).||.reimportedFiles.Any(Shoul
2de0 64 53 79 6e 63 4f 6e 52 65 69 6d 70 6f 72 74 65 64 41 73 73 65 74 29 3b 0a 20 20 20 20 20 20 20 dSyncOnReimportedAsset);........
2e00 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 62 6f 6f 6c 20 53 68 6f 75 6c 64 53 79 .}..........static.bool.ShouldSy
2e20 6e 63 4f 6e 52 65 69 6d 70 6f 72 74 65 64 41 73 73 65 74 28 73 74 72 69 6e 67 20 61 73 73 65 74 ncOnReimportedAsset(string.asset
2e40 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6b ).........{.............return.k
2e60 5f 52 65 69 6d 70 6f 72 74 53 79 6e 63 45 78 74 65 6e 73 69 6f 6e 73 2e 43 6f 6e 74 61 69 6e 73 _ReimportSyncExtensions.Contains
2e80 28 6e 65 77 20 46 69 6c 65 49 6e 66 6f 28 61 73 73 65 74 29 2e 45 78 74 65 6e 73 69 6f 6e 29 3b (new.FileInfo(asset).Extension);
2ea0 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 76 6f 69 64 20 .........}..........public.void.
2ec0 53 79 6e 63 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 Sync().........{.............Set
2ee0 75 70 50 72 6f 6a 65 63 74 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 73 28 29 3b 0a upProjectSupportedExtensions();.
2f00 20 20 20 20 20 20 20 20 20 20 20 20 47 65 6e 65 72 61 74 65 41 6e 64 57 72 69 74 65 53 6f 6c 75 ............GenerateAndWriteSolu
2f20 74 69 6f 6e 41 6e 64 50 72 6f 6a 65 63 74 73 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 tionAndProjects();.........}....
2f40 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 6f 6f 6c 20 53 6f 6c 75 74 69 6f 6e 45 78 69 73 74 73 ......public.bool.SolutionExists
2f60 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 ().........{.............return.
2f80 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 2e 45 78 69 73 74 73 28 53 6f 6c 75 74 69 6f 6e m_FileIOProvider.Exists(Solution
2fa0 46 69 6c 65 28 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 76 6f 69 64 File());.........}..........void
2fc0 20 53 65 74 75 70 50 72 6f 6a 65 63 74 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 73 .SetupProjectSupportedExtensions
2fe0 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 50 72 6f 6a 65 ().........{.............m_Proje
3000 63 74 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 45 64 69 74 6f 72 53 65 ctSupportedExtensions.=.EditorSe
3020 74 74 69 6e 67 73 2e 70 72 6f 6a 65 63 74 47 65 6e 65 72 61 74 69 6f 6e 55 73 65 72 45 78 74 65 ttings.projectGenerationUserExte
3040 6e 73 69 6f 6e 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 nsions;.........}..........bool.
3060 53 68 6f 75 6c 64 46 69 6c 65 42 65 50 61 72 74 4f 66 53 6f 6c 75 74 69 6f 6e 28 73 74 72 69 6e ShouldFileBePartOfSolution(strin
3080 67 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 g.file).........{.............st
30a0 72 69 6e 67 20 65 78 74 65 6e 73 69 6f 6e 20 3d 20 50 61 74 68 2e 47 65 74 45 78 74 65 6e 73 69 ring.extension.=.Path.GetExtensi
30c0 6f 6e 28 66 69 6c 65 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 45 78 63 6c 75 64 on(file);..............//.Exclud
30e0 65 20 66 69 6c 65 73 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 73 20 65 78 63 e.files.coming.from.packages.exc
3100 65 70 74 20 69 66 20 74 68 65 79 20 61 72 65 20 69 6e 74 65 72 6e 61 6c 69 7a 65 64 2e 0a 20 20 ept.if.they.are.internalized....
3120 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 6d 5f 53 68 6f 75 6c 64 47 65 6e 65 72 61 74 65 41 ..........if.(!m_ShouldGenerateA
3140 6c 6c 20 26 26 20 49 73 49 6e 74 65 72 6e 61 6c 69 7a 65 64 50 61 63 6b 61 67 65 50 61 74 68 28 ll.&&.IsInternalizedPackagePath(
3160 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 file)).............{............
3180 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d .....return.false;.............}
31a0 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 6c 6c 27 73 20 61 72 65 20 6e 6f 74 20 73 ..............//.Dll's.are.not.s
31c0 63 72 69 70 74 73 20 62 75 74 20 73 74 69 6c 6c 20 6e 65 65 64 20 74 6f 20 62 65 20 69 6e 63 6c cripts.but.still.need.to.be.incl
31e0 75 64 65 64 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 78 74 65 6e 73 69 6f 6e uded...............if.(extension
3200 20 3d 3d 20 22 2e 64 6c 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 .==.".dll").................retu
3220 72 6e 20 74 72 75 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 2e 54 rn.true;..............if.(file.T
3240 6f 4c 6f 77 65 72 28 29 2e 45 6e 64 73 57 69 74 68 28 22 2e 61 73 6d 64 65 66 22 29 29 0a 20 20 oLower().EndsWith(".asmdef"))...
3260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 0a 20 20 20 20 ..............return.true;......
3280 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 49 73 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 ........return.IsSupportedExtens
32a0 69 6f 6e 28 65 78 74 65 6e 73 69 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ion(extension);.........}.......
32c0 20 20 20 62 6f 6f 6c 20 49 73 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 28 73 74 72 ...bool.IsSupportedExtension(str
32e0 69 6e 67 20 65 78 74 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 ing.extension).........{........
3300 20 20 20 20 20 65 78 74 65 6e 73 69 6f 6e 20 3d 20 65 78 74 65 6e 73 69 6f 6e 2e 54 72 69 6d 53 .....extension.=.extension.TrimS
3320 74 61 72 74 28 27 2e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6b 5f 42 75 69 tart('.');.............if.(k_Bui
3340 6c 74 69 6e 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 73 2e 43 6f 6e 74 61 69 6e 73 ltinSupportedExtensions.Contains
3360 4b 65 79 28 65 78 74 65 6e 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Key(extension)).................
3380 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 50 return.true;.............if.(m_P
33a0 72 6f 6a 65 63 74 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 73 2e 43 6f 6e 74 61 69 rojectSupportedExtensions.Contai
33c0 6e 73 28 65 78 74 65 6e 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 ns(extension)).................r
33e0 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 eturn.true;.............return.f
3400 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 alse;.........}..........static.
3420 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 ScriptingLanguage.ScriptingLangu
3440 61 67 65 46 6f 72 28 41 73 73 65 6d 62 6c 79 20 61 73 73 65 6d 62 6c 79 29 0a 20 20 20 20 20 20 ageFor(Assembly.assembly).......
3460 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 63 72 69 70 74 69 6e 67 ..{.............return.Scripting
3480 4c 61 6e 67 75 61 67 65 46 6f 72 28 47 65 74 45 78 74 65 6e 73 69 6f 6e 4f 66 53 6f 75 72 63 65 LanguageFor(GetExtensionOfSource
34a0 46 69 6c 65 73 28 61 73 73 65 6d 62 6c 79 2e 73 6f 75 72 63 65 46 69 6c 65 73 29 29 3b 0a 20 20 Files(assembly.sourceFiles));...
34c0 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 47 ......}..........static.string.G
34e0 65 74 45 78 74 65 6e 73 69 6f 6e 4f 66 53 6f 75 72 63 65 46 69 6c 65 73 28 73 74 72 69 6e 67 5b etExtensionOfSourceFiles(string[
3500 5d 20 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 ].files).........{.............r
3520 65 74 75 72 6e 20 66 69 6c 65 73 2e 4c 65 6e 67 74 68 20 3e 20 30 20 3f 20 47 65 74 45 78 74 65 eturn.files.Length.>.0.?.GetExte
3540 6e 73 69 6f 6e 4f 66 53 6f 75 72 63 65 46 69 6c 65 28 66 69 6c 65 73 5b 30 5d 29 20 3a 20 22 4e nsionOfSourceFile(files[0]).:."N
3560 41 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 73 74 A";.........}..........static.st
3580 72 69 6e 67 20 47 65 74 45 78 74 65 6e 73 69 6f 6e 4f 66 53 6f 75 72 63 65 46 69 6c 65 28 73 74 ring.GetExtensionOfSourceFile(st
35a0 72 69 6e 67 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ring.file).........{............
35c0 20 76 61 72 20 65 78 74 20 3d 20 50 61 74 68 2e 47 65 74 45 78 74 65 6e 73 69 6f 6e 28 66 69 6c .var.ext.=.Path.GetExtension(fil
35e0 65 29 2e 54 6f 4c 6f 77 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 20 3d 20 e).ToLower();.............ext.=.
3600 65 78 74 2e 53 75 62 73 74 72 69 6e 67 28 31 29 3b 20 2f 2f 73 74 72 69 70 20 64 6f 74 0a 20 20 ext.Substring(1);.//strip.dot...
3620 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 78 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a ..........return.ext;.........}.
3640 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 .........static.ScriptingLanguag
3660 65 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 46 6f 72 28 73 74 72 69 6e 67 20 65 78 e.ScriptingLanguageFor(string.ex
3680 74 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 tension).........{.............r
36a0 65 74 75 72 6e 20 6b 5f 42 75 69 6c 74 69 6e 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f eturn.k_BuiltinSupportedExtensio
36c0 6e 73 2e 54 72 79 47 65 74 56 61 6c 75 65 28 65 78 74 65 6e 73 69 6f 6e 2e 54 72 69 6d 53 74 61 ns.TryGetValue(extension.TrimSta
36e0 72 74 28 27 2e 27 29 2c 20 6f 75 74 20 76 61 72 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 rt('.'),.out.var.result)........
3700 20 20 20 20 20 20 20 20 20 3f 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........?.result...............
3720 20 20 3a 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 3b 0a 20 20 20 20 ..:.ScriptingLanguage.None;.....
3740 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 76 6f 69 64 20 47 65 6e 65 72 ....}..........public.void.Gener
3760 61 74 65 41 6e 64 57 72 69 74 65 53 6f 6c 75 74 69 6f 6e 41 6e 64 50 72 6f 6a 65 63 74 73 28 29 ateAndWriteSolutionAndProjects()
3780 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 73 .........{.............//.Only.s
37a0 79 6e 63 68 72 6f 6e 69 7a 65 20 61 73 73 65 6d 62 6c 69 65 73 20 74 68 61 74 20 68 61 76 65 20 ynchronize.assemblies.that.have.
37c0 61 73 73 6f 63 69 61 74 65 64 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 61 6e 64 20 6f 6e 65 73 associated.source.files.and.ones
37e0 20 74 68 61 74 20 77 65 20 61 63 74 75 61 6c 6c 79 20 77 61 6e 74 20 69 6e 20 74 68 65 20 70 72 .that.we.actually.want.in.the.pr
3800 6f 6a 65 63 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 61 6c 73 6f 20 oject..............//.This.also.
3820 66 69 6c 74 65 72 73 20 6f 75 74 20 44 4c 4c 73 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 2e 61 73 filters.out.DLLs.coming.from..as
3840 6d 64 65 66 20 66 69 6c 65 73 20 69 6e 20 70 61 63 6b 61 67 65 73 2e 0a 20 20 20 20 20 20 20 20 mdef.files.in.packages..........
3860 20 20 20 20 76 61 72 20 61 73 73 65 6d 62 6c 69 65 73 20 3d 20 6d 5f 41 73 73 65 6d 62 6c 79 4e ....var.assemblies.=.m_AssemblyN
3880 61 6d 65 50 72 6f 76 69 64 65 72 2e 47 65 74 41 73 73 65 6d 62 6c 69 65 73 28 53 68 6f 75 6c 64 ameProvider.GetAssemblies(Should
38a0 46 69 6c 65 42 65 50 61 72 74 4f 66 53 6f 6c 75 74 69 6f 6e 29 3b 0a 0a 20 20 20 20 20 20 20 20 FileBePartOfSolution);..........
38c0 20 20 20 20 76 61 72 20 61 6c 6c 41 73 73 65 74 50 72 6f 6a 65 63 74 50 61 72 74 73 20 3d 20 47 ....var.allAssetProjectParts.=.G
38e0 65 6e 65 72 61 74 65 41 6c 6c 41 73 73 65 74 50 72 6f 6a 65 63 74 50 61 72 74 73 28 29 3b 0a 0a enerateAllAssetProjectParts();..
3900 20 20 20 20 20 20 20 20 20 20 20 20 53 79 6e 63 53 6f 6c 75 74 69 6f 6e 28 61 73 73 65 6d 62 6c ............SyncSolution(assembl
3920 69 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 61 6c 6c 50 72 6f 6a 65 63 74 ies);.............var.allProject
3940 41 73 73 65 6d 62 6c 69 65 73 20 3d 20 52 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 6c 69 65 73 46 Assemblies.=.RelevantAssembliesF
3960 6f 72 4d 6f 64 65 28 61 73 73 65 6d 62 6c 69 65 73 29 2e 54 6f 4c 69 73 74 28 29 3b 0a 20 20 20 orMode(assemblies).ToList();....
3980 20 20 20 20 20 20 20 20 20 76 61 72 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 20 3d 20 6e 65 77 .........var.assemblyNames.=.new
39a0 20 48 61 73 68 53 65 74 3c 73 74 72 69 6e 67 3e 28 61 6c 6c 50 72 6f 6a 65 63 74 41 73 73 65 6d .HashSet<string>(allProjectAssem
39c0 62 6c 69 65 73 2e 53 65 6c 65 63 74 28 61 73 73 65 6d 62 6c 79 20 3d 3e 20 50 61 74 68 2e 47 65 blies.Select(assembly.=>.Path.Ge
39e0 74 46 69 6c 65 4e 61 6d 65 28 61 73 73 65 6d 62 6c 79 2e 6f 75 74 70 75 74 50 61 74 68 29 29 29 tFileName(assembly.outputPath)))
3a00 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 41 73 73 65 6d 62 6c 79 20 ;.............foreach.(Assembly.
3a20 61 73 73 65 6d 62 6c 79 20 69 6e 20 61 6c 6c 50 72 6f 6a 65 63 74 41 73 73 65 6d 62 6c 69 65 73 assembly.in.allProjectAssemblies
3a40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).............{.................
3a60 76 61 72 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 20 3d 20 50 61 72 73 65 52 65 73 70 var.responseFileData.=.ParseResp
3a80 6f 6e 73 65 46 69 6c 65 44 61 74 61 28 61 73 73 65 6d 62 6c 79 29 3b 0a 20 20 20 20 20 20 20 20 onseFileData(assembly);.........
3aa0 20 20 20 20 20 20 20 20 53 79 6e 63 50 72 6f 6a 65 63 74 28 61 73 73 65 6d 62 6c 79 2c 20 61 6c ........SyncProject(assembly,.al
3ac0 6c 41 73 73 65 74 50 72 6f 6a 65 63 74 50 61 72 74 73 2c 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 lAssetProjectParts,.responseFile
3ae0 44 61 74 61 2c 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 Data,.assemblyNames);...........
3b00 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 72 69 74 65 56 53 43 6f 64 65 53 65 74 74 ..}..............WriteVSCodeSett
3b20 69 6e 67 73 46 69 6c 65 73 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 ingsFiles();.........}..........
3b40 49 45 6e 75 6d 65 72 61 62 6c 65 3c 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 3e 20 50 61 IEnumerable<ResponseFileData>.Pa
3b60 72 73 65 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 28 41 73 73 65 6d 62 6c 79 20 61 73 73 rseResponseFileData(Assembly.ass
3b80 65 6d 62 6c 79 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 embly).........{.............var
3ba0 20 73 79 73 74 65 6d 52 65 66 65 72 65 6e 63 65 44 69 72 65 63 74 6f 72 69 65 73 20 3d 20 43 6f .systemReferenceDirectories.=.Co
3bc0 6d 70 69 6c 61 74 69 6f 6e 50 69 70 65 6c 69 6e 65 2e 47 65 74 53 79 73 74 65 6d 41 73 73 65 6d mpilationPipeline.GetSystemAssem
3be0 62 6c 79 44 69 72 65 63 74 6f 72 69 65 73 28 61 73 73 65 6d 62 6c 79 2e 63 6f 6d 70 69 6c 65 72 blyDirectories(assembly.compiler
3c00 4f 70 74 69 6f 6e 73 2e 41 70 69 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 4c 65 76 65 6c 29 3b 0a Options.ApiCompatibilityLevel);.
3c20 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 .............Dictionary<string,.
3c40 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 3e 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 73 44 ResponseFileData>.responseFilesD
3c60 61 74 61 20 3d 20 61 73 73 65 6d 62 6c 79 2e 63 6f 6d 70 69 6c 65 72 4f 70 74 69 6f 6e 73 2e 52 ata.=.assembly.compilerOptions.R
3c80 65 73 70 6f 6e 73 65 46 69 6c 65 73 2e 54 6f 44 69 63 74 69 6f 6e 61 72 79 28 78 20 3d 3e 20 78 esponseFiles.ToDictionary(x.=>.x
3ca0 2c 20 78 20 3d 3e 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 2e 50 61 ,.x.=>.m_AssemblyNameProvider.Pa
3cc0 72 73 65 52 65 73 70 6f 6e 73 65 46 69 6c 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rseResponseFile(................
3ce0 20 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 6f 6a 65 63 74 44 69 72 65 63 .x,.................ProjectDirec
3d00 74 6f 72 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 73 74 65 6d 52 65 66 65 tory,.................systemRefe
3d20 72 65 6e 63 65 44 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 29 3b renceDirectories.............));
3d40 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c ..............Dictionary<string,
3d60 20 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 3e 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 73 .ResponseFileData>.responseFiles
3d80 57 69 74 68 45 72 72 6f 72 73 20 3d 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 73 44 61 74 61 2e 57 WithErrors.=.responseFilesData.W
3da0 68 65 72 65 28 78 20 3d 3e 20 78 2e 56 61 6c 75 65 2e 45 72 72 6f 72 73 2e 41 6e 79 28 29 29 0a here(x.=>.x.Value.Errors.Any()).
3dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 54 6f 44 69 63 74 69 6f 6e 61 72 79 28 78 20 .................ToDictionary(x.
3de0 3d 3e 20 78 2e 4b 65 79 2c 20 78 20 3d 3e 20 78 2e 56 61 6c 75 65 29 3b 0a 0a 20 20 20 20 20 20 =>.x.Key,.x.=>.x.Value);........
3e00 20 20 20 20 20 20 69 66 20 28 72 65 73 70 6f 6e 73 65 46 69 6c 65 73 57 69 74 68 45 72 72 6f 72 ......if.(responseFilesWithError
3e20 73 2e 41 6e 79 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 s.Any()).............{..........
3e40 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 76 61 72 20 65 72 72 6f 72 20 69 6e 20 72 65 73 .......foreach.(var.error.in.res
3e60 70 6f 6e 73 65 46 69 6c 65 73 57 69 74 68 45 72 72 6f 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 ponseFilesWithErrors)...........
3e80 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 76 61 72 20 76 61 6c 75 65 45 72 72 6f 72 20 69 6e ......foreach.(var.valueError.in
3ea0 20 65 72 72 6f 72 2e 56 61 6c 75 65 2e 45 72 72 6f 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 .error.Value.Errors)............
3ec0 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 .....{.....................Debug
3ee0 2e 4c 6f 67 45 72 72 6f 72 28 24 22 7b 65 72 72 6f 72 2e 4b 65 79 7d 20 50 61 72 73 65 20 45 72 .LogError($"{error.Key}.Parse.Er
3f00 72 6f 72 20 3a 20 7b 76 61 6c 75 65 45 72 72 6f 72 7d 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ror.:.{valueError}");...........
3f20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 ......}.............}...........
3f40 20 20 20 72 65 74 75 72 6e 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 73 44 61 74 61 2e 53 65 6c 65 ...return.responseFilesData.Sele
3f60 63 74 28 78 20 3d 3e 20 78 2e 56 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 ct(x.=>.x.Value);.........}.....
3f80 20 20 20 20 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 73 74 72 69 6e 67 3e 20 .....Dictionary<string,.string>.
3fa0 47 65 6e 65 72 61 74 65 41 6c 6c 41 73 73 65 74 50 72 6f 6a 65 63 74 50 61 72 74 73 28 29 0a 20 GenerateAllAssetProjectParts()..
3fc0 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 69 63 74 69 6f 6e 61 72 79 3c .......{.............Dictionary<
3fe0 73 74 72 69 6e 67 2c 20 53 74 72 69 6e 67 42 75 69 6c 64 65 72 3e 20 73 74 72 69 6e 67 42 75 69 string,.StringBuilder>.stringBui
4000 6c 64 65 72 73 20 3d 20 6e 65 77 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 53 lders.=.new.Dictionary<string,.S
4020 74 72 69 6e 67 42 75 69 6c 64 65 72 3e 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f tringBuilder>();..............fo
4040 72 65 61 63 68 20 28 73 74 72 69 6e 67 20 61 73 73 65 74 20 69 6e 20 6d 5f 41 73 73 65 6d 62 6c reach.(string.asset.in.m_Assembl
4060 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 2e 47 65 74 41 6c 6c 41 73 73 65 74 50 61 74 68 73 28 29 yNameProvider.GetAllAssetPaths()
4080 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).............{.................
40a0 2f 2f 20 45 78 63 6c 75 64 65 20 66 69 6c 65 73 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 70 61 63 //.Exclude.files.coming.from.pac
40c0 6b 61 67 65 73 20 65 78 63 65 70 74 20 69 66 20 74 68 65 79 20 61 72 65 20 69 6e 74 65 72 6e 61 kages.except.if.they.are.interna
40e0 6c 69 7a 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 4f 44 4f 3a 20 lized..................//.TODO:.
4100 57 65 20 6e 65 65 64 20 61 73 73 65 74 73 20 66 72 6f 6d 20 74 68 65 20 61 73 73 65 6d 62 6c 79 We.need.assets.from.the.assembly
4120 20 41 50 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 6d 5f 53 68 6f 75 .API.................if.(!m_Shou
4140 6c 64 47 65 6e 65 72 61 74 65 41 6c 6c 20 26 26 20 49 73 49 6e 74 65 72 6e 61 6c 69 7a 65 64 50 ldGenerateAll.&&.IsInternalizedP
4160 61 63 6b 61 67 65 50 61 74 68 28 61 73 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ackagePath(asset))..............
4180 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 ...{.....................continu
41a0 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 e;.................}............
41c0 20 20 20 20 20 20 73 74 72 69 6e 67 20 65 78 74 65 6e 73 69 6f 6e 20 3d 20 50 61 74 68 2e 47 65 ......string.extension.=.Path.Ge
41e0 74 45 78 74 65 6e 73 69 6f 6e 28 61 73 73 65 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tExtension(asset);..............
4200 20 20 20 69 66 20 28 49 73 53 75 70 70 6f 72 74 65 64 45 78 74 65 6e 73 69 6f 6e 28 65 78 74 65 ...if.(IsSupportedExtension(exte
4220 6e 73 69 6f 6e 29 20 26 26 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 2e 4e 6f 6e 65 nsion).&&.ScriptingLanguage.None
4240 20 3d 3d 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 46 6f 72 28 65 78 74 65 6e 73 69 .==.ScriptingLanguageFor(extensi
4260 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 on)).................{..........
4280 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 69 6e 64 20 61 73 73 65 6d 62 6c 79 20 74 68 65 20 ...........//.Find.assembly.the.
42a0 61 73 73 65 74 20 62 65 6c 6f 6e 67 73 20 74 6f 20 62 79 20 61 64 64 69 6e 67 20 73 63 72 69 70 asset.belongs.to.by.adding.scrip
42c0 74 20 65 78 74 65 6e 73 69 6f 6e 20 61 6e 64 20 75 73 69 6e 67 20 63 6f 6d 70 69 6c 61 74 69 6f t.extension.and.using.compilatio
42e0 6e 20 70 69 70 65 6c 69 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.pipeline......................
4300 76 61 72 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 20 3d 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d var.assemblyName.=.m_AssemblyNam
4320 65 50 72 6f 76 69 64 65 72 2e 47 65 74 41 73 73 65 6d 62 6c 79 4e 61 6d 65 46 72 6f 6d 53 63 72 eProvider.GetAssemblyNameFromScr
4340 69 70 74 50 61 74 68 28 61 73 73 65 74 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iptPath(asset);.................
4360 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 61 73 .....if.(string.IsNullOrEmpty(as
4380 73 65 6d 62 6c 79 4e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 semblyName))....................
43a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 .{.........................conti
43c0 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 nue;.....................}......
43e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 20 3d 20 50 ................assemblyName.=.P
4400 61 74 68 2e 47 65 74 46 69 6c 65 4e 61 6d 65 57 69 74 68 6f 75 74 45 78 74 65 6e 73 69 6f 6e 28 ath.GetFileNameWithoutExtension(
4420 61 73 73 65 6d 62 6c 79 4e 61 6d 65 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 assemblyName);..................
4440 20 20 20 20 69 66 20 28 21 73 74 72 69 6e 67 42 75 69 6c 64 65 72 73 2e 54 72 79 47 65 74 56 61 ....if.(!stringBuilders.TryGetVa
4460 6c 75 65 28 61 73 73 65 6d 62 6c 79 4e 61 6d 65 2c 20 6f 75 74 20 76 61 72 20 70 72 6f 6a 65 63 lue(assemblyName,.out.var.projec
4480 74 42 75 69 6c 64 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b tBuilder)).....................{
44a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 .........................project
44c0 42 75 69 6c 64 65 72 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 42 75 69 6c 64 65 72 28 29 3b 0a 20 Builder.=.new.StringBuilder();..
44e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 42 75 69 .......................stringBui
4500 6c 64 65 72 73 5b 61 73 73 65 6d 62 6c 79 4e 61 6d 65 5d 20 3d 20 70 72 6f 6a 65 63 74 42 75 69 lders[assemblyName].=.projectBui
4520 6c 64 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 lder;.....................}.....
4540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e .................projectBuilder.
4560 41 70 70 65 6e 64 28 22 20 20 20 20 20 3c 4e 6f 6e 65 20 49 6e 63 6c 75 64 65 3d 5c 22 22 29 2e Append(".....<None.Include=\"").
4580 41 70 70 65 6e 64 28 45 73 63 61 70 65 64 52 65 6c 61 74 69 76 65 50 61 74 68 46 6f 72 28 61 73 Append(EscapedRelativePathFor(as
45a0 73 65 74 29 29 2e 41 70 70 65 6e 64 28 22 5c 22 20 2f 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 set)).Append("\"./>").Append(k_W
45c0 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 indowsNewline);.................
45e0 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 }.............}..............var
4600 20 72 65 73 75 6c 74 20 3d 20 6e 65 77 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c .result.=.new.Dictionary<string,
4620 20 73 74 72 69 6e 67 3e 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 .string>();..............foreach
4640 20 28 76 61 72 20 65 6e 74 72 79 20 69 6e 20 73 74 72 69 6e 67 42 75 69 6c 64 65 72 73 29 0a 20 .(var.entry.in.stringBuilders)..
4660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 5b 65 6e 74 72 79 2e 4b 65 79 5d ...............result[entry.Key]
4680 20 3d 20 65 6e 74 72 79 2e 56 61 6c 75 65 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0a 0a 20 20 20 20 .=.entry.Value.ToString();......
46a0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 7d ........return.result;.........}
46c0 0a 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 49 73 49 6e 74 65 72 6e 61 6c 69 7a 65 64 50 61 63 ..........bool.IsInternalizedPac
46e0 6b 61 67 65 50 61 74 68 28 73 74 72 69 6e 67 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 7b 0a kagePath(string.file).........{.
4700 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 57 ............if.(string.IsNullOrW
4720 68 69 74 65 53 70 61 63 65 28 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 hiteSpace(file)).............{..
4740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 ...............return.false;....
4760 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 61 63 6b .........}..............var.pack
4780 61 67 65 49 6e 66 6f 20 3d 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 64 65 72 ageInfo.=.m_AssemblyNameProvider
47a0 2e 46 69 6e 64 46 6f 72 41 73 73 65 74 50 61 74 68 28 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 .FindForAssetPath(file);........
47c0 20 20 20 20 20 69 66 20 28 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 3d 20 6e 75 6c 6c 29 0a 20 20 .....if.(packageInfo.==.null)...
47e0 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ..........{.................retu
4800 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 rn.false;.............}.........
4820 20 20 20 20 20 76 61 72 20 70 61 63 6b 61 67 65 53 6f 75 72 63 65 20 3d 20 70 61 63 6b 61 67 65 .....var.packageSource.=.package
4840 49 6e 66 6f 2e 73 6f 75 72 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 Info.source;.............return.
4860 70 61 63 6b 61 67 65 53 6f 75 72 63 65 20 21 3d 20 50 61 63 6b 61 67 65 53 6f 75 72 63 65 2e 45 packageSource.!=.PackageSource.E
4880 6d 62 65 64 64 65 64 20 26 26 20 70 61 63 6b 61 67 65 53 6f 75 72 63 65 20 21 3d 20 50 61 63 6b mbedded.&&.packageSource.!=.Pack
48a0 61 67 65 53 6f 75 72 63 65 2e 4c 6f 63 61 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 ageSource.Local;.........}......
48c0 20 20 20 20 76 6f 69 64 20 53 79 6e 63 50 72 6f 6a 65 63 74 28 0a 20 20 20 20 20 20 20 20 20 20 ....void.SyncProject(...........
48e0 20 20 41 73 73 65 6d 62 6c 79 20 61 73 73 65 6d 62 6c 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..Assembly.assembly,............
4900 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 73 74 72 69 6e 67 3e 20 61 6c 6c 41 .Dictionary<string,.string>.allA
4920 73 73 65 74 73 50 72 6f 6a 65 63 74 50 61 72 74 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 ssetsProjectParts,.............I
4940 45 6e 75 6d 65 72 61 62 6c 65 3c 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 3e 20 72 65 73 Enumerable<ResponseFileData>.res
4960 70 6f 6e 73 65 46 69 6c 65 73 44 61 74 61 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 61 73 68 ponseFilesData,.............Hash
4980 53 65 74 3c 73 74 72 69 6e 67 3e 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 29 0a 20 20 20 20 20 Set<string>.assemblyNames)......
49a0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 6e 63 50 72 6f 6a 65 63 74 46 69 6c 65 ...{.............SyncProjectFile
49c0 49 66 4e 6f 74 43 68 61 6e 67 65 64 28 50 72 6f 6a 65 63 74 46 69 6c 65 28 61 73 73 65 6d 62 6c IfNotChanged(ProjectFile(assembl
49e0 79 29 2c 20 50 72 6f 6a 65 63 74 54 65 78 74 28 61 73 73 65 6d 62 6c 79 2c 20 61 6c 6c 41 73 73 y),.ProjectText(assembly,.allAss
4a00 65 74 73 50 72 6f 6a 65 63 74 50 61 72 74 73 2c 20 72 65 73 70 6f 6e 73 65 46 69 6c 65 73 44 61 etsProjectParts,.responseFilesDa
4a20 74 61 2c 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a ta,.assemblyNames));.........}..
4a40 20 20 20 20 20 20 20 20 76 6f 69 64 20 53 79 6e 63 50 72 6f 6a 65 63 74 46 69 6c 65 49 66 4e 6f ........void.SyncProjectFileIfNo
4a60 74 43 68 61 6e 67 65 64 28 73 74 72 69 6e 67 20 70 61 74 68 2c 20 73 74 72 69 6e 67 20 6e 65 77 tChanged(string.path,.string.new
4a80 43 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 Contents).........{.............
4aa0 53 79 6e 63 46 69 6c 65 49 66 4e 6f 74 43 68 61 6e 67 65 64 28 70 61 74 68 2c 20 6e 65 77 43 6f SyncFileIfNotChanged(path,.newCo
4ac0 6e 74 65 6e 74 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 76 6f 69 64 ntents);.........}..........void
4ae0 20 53 79 6e 63 53 6f 6c 75 74 69 6f 6e 46 69 6c 65 49 66 4e 6f 74 43 68 61 6e 67 65 64 28 73 74 .SyncSolutionFileIfNotChanged(st
4b00 72 69 6e 67 20 70 61 74 68 2c 20 73 74 72 69 6e 67 20 6e 65 77 43 6f 6e 74 65 6e 74 73 29 0a 20 ring.path,.string.newContents)..
4b20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 6e 63 46 69 6c 65 49 66 4e .......{.............SyncFileIfN
4b40 6f 74 43 68 61 6e 67 65 64 28 70 61 74 68 2c 20 6e 65 77 43 6f 6e 74 65 6e 74 73 29 3b 0a 20 20 otChanged(path,.newContents);...
4b60 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20 53 79 6e 63 46 69 6c 65 49 66 ......}..........void.SyncFileIf
4b80 4e 6f 74 43 68 61 6e 67 65 64 28 73 74 72 69 6e 67 20 66 69 6c 65 6e 61 6d 65 2c 20 73 74 72 69 NotChanged(string.filename,.stri
4ba0 6e 67 20 6e 65 77 43 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 ng.newContents).........{.......
4bc0 20 20 20 20 20 20 69 66 20 28 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 2e 45 78 69 73 74 ......if.(m_FileIOProvider.Exist
4be0 73 28 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 s(filename)).............{......
4c00 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 75 72 72 65 6e 74 43 6f 6e 74 65 6e 74 73 20 3d ...........var.currentContents.=
4c20 20 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 2e 52 65 61 64 41 6c 6c 54 65 78 74 28 66 69 .m_FileIOProvider.ReadAllText(fi
4c40 6c 65 6e 61 6d 65 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 75 lename);..................if.(cu
4c60 72 72 65 6e 74 43 6f 6e 74 65 6e 74 73 20 3d 3d 20 6e 65 77 43 6f 6e 74 65 6e 74 73 29 0a 20 20 rrentContents.==.newContents)...
4c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............{.................
4ca0 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ....return;.................}...
4cc0 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 46 69 6c 65 49 ..........}..............m_FileI
4ce0 4f 50 72 6f 76 69 64 65 72 2e 57 72 69 74 65 41 6c 6c 54 65 78 74 28 66 69 6c 65 6e 61 6d 65 2c OProvider.WriteAllText(filename,
4d00 20 6e 65 77 43 6f 6e 74 65 6e 74 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 .newContents);.........}........
4d20 20 20 73 74 72 69 6e 67 20 50 72 6f 6a 65 63 74 54 65 78 74 28 0a 20 20 20 20 20 20 20 20 20 20 ..string.ProjectText(...........
4d40 20 20 41 73 73 65 6d 62 6c 79 20 61 73 73 65 6d 62 6c 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..Assembly.assembly,............
4d60 20 44 69 63 74 69 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 73 74 72 69 6e 67 3e 20 61 6c 6c 41 .Dictionary<string,.string>.allA
4d80 73 73 65 74 73 50 72 6f 6a 65 63 74 50 61 72 74 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 ssetsProjectParts,.............I
4da0 45 6e 75 6d 65 72 61 62 6c 65 3c 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 3e 20 72 65 73 Enumerable<ResponseFileData>.res
4dc0 70 6f 6e 73 65 46 69 6c 65 73 44 61 74 61 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 61 73 68 ponseFilesData,.............Hash
4de0 53 65 74 3c 73 74 72 69 6e 67 3e 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 73 29 0a 20 20 20 20 20 Set<string>.assemblyNames)......
4e00 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 72 6f 6a 65 63 74 42 75 69 6c ...{.............var.projectBuil
4e20 64 65 72 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 42 75 69 6c 64 65 72 28 29 3b 0a 20 20 20 20 20 der.=.new.StringBuilder();......
4e40 20 20 20 20 20 20 20 50 72 6f 6a 65 63 74 48 65 61 64 65 72 28 61 73 73 65 6d 62 6c 79 2c 20 72 .......ProjectHeader(assembly,.r
4e60 65 73 70 6f 6e 73 65 46 69 6c 65 73 44 61 74 61 2c 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 esponseFilesData,.projectBuilder
4e80 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 72 65 66 65 72 65 6e 63 65 73 20 3d 20 );.............var.references.=.
4ea0 6e 65 77 20 4c 69 73 74 3c 73 74 72 69 6e 67 3e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 new.List<string>();.............
4ec0 76 61 72 20 70 72 6f 6a 65 63 74 52 65 66 65 72 65 6e 63 65 73 20 3d 20 6e 65 77 20 4c 69 73 74 var.projectReferences.=.new.List
4ee0 3c 41 73 73 65 6d 62 6c 79 3e 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 <Assembly>();..............forea
4f00 63 68 20 28 73 74 72 69 6e 67 20 66 69 6c 65 20 69 6e 20 61 73 73 65 6d 62 6c 79 2e 73 6f 75 72 ch.(string.file.in.assembly.sour
4f20 63 65 46 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 ceFiles).............{..........
4f40 20 20 20 20 20 20 20 69 66 20 28 21 53 68 6f 75 6c 64 46 69 6c 65 42 65 50 61 72 74 4f 66 53 6f .......if.(!ShouldFileBePartOfSo
4f60 6c 75 74 69 6f 6e 28 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lution(file))...................
4f80 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 ..continue;..................var
4fa0 20 65 78 74 65 6e 73 69 6f 6e 20 3d 20 50 61 74 68 2e 47 65 74 45 78 74 65 6e 73 69 6f 6e 28 66 .extension.=.Path.GetExtension(f
4fc0 69 6c 65 29 2e 54 6f 4c 6f 77 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile).ToLower();.................
4fe0 76 61 72 20 66 75 6c 6c 46 69 6c 65 20 3d 20 45 73 63 61 70 65 64 52 65 6c 61 74 69 76 65 50 61 var.fullFile.=.EscapedRelativePa
5000 74 68 46 6f 72 28 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 thFor(file);.................if.
5020 28 22 2e 64 6c 6c 22 20 21 3d 20 65 78 74 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 (".dll".!=.extension)...........
5040 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a ......{.....................proj
5060 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 20 20 20 20 3c 43 6f 6d 70 69 6c 65 ectBuilder.Append(".....<Compile
5080 20 49 6e 63 6c 75 64 65 3d 5c 22 22 29 2e 41 70 70 65 6e 64 28 66 75 6c 6c 46 69 6c 65 29 2e 41 .Include=\"").Append(fullFile).A
50a0 70 70 65 6e 64 28 22 5c 22 20 2f 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e ppend("\"./>").Append(k_WindowsN
50c0 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ewline);.................}......
50e0 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........else.................
5100 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 66 65 72 65 6e 63 65 73 {.....................references
5120 2e 41 64 64 28 66 75 6c 6c 46 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Add(fullFile);.................
5140 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 }.............}..............//.
5160 41 70 70 65 6e 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 6e 6f 6e 2d 73 63 72 69 70 74 20 66 69 6c Append.additional.non-script.fil
5180 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 70 72 es.that.should.be.included.in.pr
51a0 6f 6a 65 63 74 20 67 65 6e 65 72 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 oject.generation..............if
51c0 20 28 61 6c 6c 41 73 73 65 74 73 50 72 6f 6a 65 63 74 50 61 72 74 73 2e 54 72 79 47 65 74 56 61 .(allAssetsProjectParts.TryGetVa
51e0 6c 75 65 28 61 73 73 65 6d 62 6c 79 2e 6e 61 6d 65 2c 20 6f 75 74 20 76 61 72 20 61 64 64 69 74 lue(assembly.name,.out.var.addit
5200 69 6f 6e 61 6c 41 73 73 65 74 73 46 6f 72 50 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 ionalAssetsForProject)).........
5220 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 61 64 ........projectBuilder.Append(ad
5240 64 69 74 69 6f 6e 61 6c 41 73 73 65 74 73 46 6f 72 50 72 6f 6a 65 63 74 29 3b 0a 0a 20 20 20 20 ditionalAssetsForProject);......
5260 20 20 20 20 20 20 20 20 76 61 72 20 72 65 73 70 6f 6e 73 65 52 65 66 73 20 3d 20 72 65 73 70 6f ........var.responseRefs.=.respo
5280 6e 73 65 46 69 6c 65 73 44 61 74 61 2e 53 65 6c 65 63 74 4d 61 6e 79 28 78 20 3d 3e 20 78 2e 46 nseFilesData.SelectMany(x.=>.x.F
52a0 75 6c 6c 50 61 74 68 52 65 66 65 72 65 6e 63 65 73 2e 53 65 6c 65 63 74 28 72 20 3d 3e 20 72 29 ullPathReferences.Select(r.=>.r)
52c0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 76 61 72 20 72 65 66 65 );.............foreach.(var.refe
52e0 72 65 6e 63 65 20 69 6e 20 61 73 73 65 6d 62 6c 79 2e 63 6f 6d 70 69 6c 65 64 41 73 73 65 6d 62 rence.in.assembly.compiledAssemb
5300 6c 79 52 65 66 65 72 65 6e 63 65 73 2e 55 6e 69 6f 6e 28 72 65 73 70 6f 6e 73 65 52 65 66 73 29 lyReferences.Union(responseRefs)
5320 2e 55 6e 69 6f 6e 28 72 65 66 65 72 65 6e 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .Union(references)).............
5340 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 66 75 6c 6c 52 65 66 {.................string.fullRef
5360 65 72 65 6e 63 65 20 3d 20 50 61 74 68 2e 49 73 50 61 74 68 52 6f 6f 74 65 64 28 72 65 66 65 72 erence.=.Path.IsPathRooted(refer
5380 65 6e 63 65 29 20 3f 20 72 65 66 65 72 65 6e 63 65 20 3a 20 50 61 74 68 2e 43 6f 6d 62 69 6e 65 ence).?.reference.:.Path.Combine
53a0 28 50 72 6f 6a 65 63 74 44 69 72 65 63 74 6f 72 79 2c 20 72 65 66 65 72 65 6e 63 65 29 3b 0a 20 (ProjectDirectory,.reference);..
53c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 70 70 65 6e 64 52 65 66 65 72 65 6e 63 65 28 66 ...............AppendReference(f
53e0 75 6c 6c 52 65 66 65 72 65 6e 63 65 2c 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 29 3b 0a 20 ullReference,.projectBuilder);..
5400 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 ...........}..............if.(0.
5420 3c 20 61 73 73 65 6d 62 6c 79 2e 61 73 73 65 6d 62 6c 79 52 65 66 65 72 65 6e 63 65 73 2e 4c 65 <.assembly.assemblyReferences.Le
5440 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ngth).............{.............
5460 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 20 3c 2f 49 ....projectBuilder.Append("..</I
5480 74 65 6d 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c temGroup>").Append(k_WindowsNewl
54a0 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 ine);.................projectBui
54c0 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 20 3c 49 74 65 6d 47 72 6f 75 70 3e 22 29 2e 41 70 70 lder.Append("..<ItemGroup>").App
54e0 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 end(k_WindowsNewline);..........
5500 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 41 73 73 65 6d 62 6c 79 20 72 65 66 65 72 65 6e .......foreach.(Assembly.referen
5520 63 65 20 69 6e 20 61 73 73 65 6d 62 6c 79 2e 61 73 73 65 6d 62 6c 79 52 65 66 65 72 65 6e 63 65 ce.in.assembly.assemblyReference
5540 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 s).................{............
5560 20 20 20 20 20 20 20 20 20 76 61 72 20 72 65 66 65 72 65 6e 63 65 64 50 72 6f 6a 65 63 74 20 3d .........var.referencedProject.=
5580 20 72 65 66 65 72 65 6e 63 65 2e 6f 75 74 70 75 74 50 61 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 .reference.outputPath;..........
55a0 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e ............projectBuilder.Appen
55c0 64 28 22 20 20 20 20 3c 50 72 6f 6a 65 63 74 52 65 66 65 72 65 6e 63 65 20 49 6e 63 6c 75 64 65 d("....<ProjectReference.Include
55e0 3d 5c 22 22 29 2e 41 70 70 65 6e 64 28 72 65 66 65 72 65 6e 63 65 2e 6e 61 6d 65 29 2e 41 70 70 =\"").Append(reference.name).App
5600 65 6e 64 28 47 65 74 50 72 6f 6a 65 63 74 45 78 74 65 6e 73 69 6f 6e 28 29 29 2e 41 70 70 65 6e end(GetProjectExtension()).Appen
5620 64 28 22 5c 22 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 d("\">").Append(k_WindowsNewline
5640 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 );.....................projectBu
5660 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 20 20 20 20 20 3c 50 72 6f 6a 65 63 74 3e 7b 22 29 ilder.Append("......<Project>{")
5680 2e 41 70 70 65 6e 64 28 50 72 6f 6a 65 63 74 47 75 69 64 28 72 65 66 65 72 65 6e 63 65 2e 6e 61 .Append(ProjectGuid(reference.na
56a0 6d 65 29 29 2e 41 70 70 65 6e 64 28 22 7d 3c 2f 50 72 6f 6a 65 63 74 3e 22 29 2e 41 70 70 65 6e me)).Append("}</Project>").Appen
56c0 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 d(k_WindowsNewline);............
56e0 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 .........projectBuilder.Append("
5700 20 20 20 20 20 20 3c 4e 61 6d 65 3e 22 29 2e 41 70 70 65 6e 64 28 72 65 66 65 72 65 6e 63 65 2e ......<Name>").Append(reference.
5720 6e 61 6d 65 29 2e 41 70 70 65 6e 64 28 22 3c 2f 4e 61 6d 65 3e 22 29 2e 41 70 70 65 6e 64 28 6b name).Append("</Name>").Append(k
5740 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _WindowsNewline);...............
5760 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 20 20 ......projectBuilder.Append("...
5780 20 3c 2f 50 72 6f 6a 65 63 74 52 65 66 65 72 65 6e 63 65 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f .</ProjectReference>").Append(k_
57a0 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 WindowsNewline);................
57c0 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 .}.............}..............pr
57e0 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 50 72 6f 6a 65 63 74 46 6f 6f 74 65 ojectBuilder.Append(ProjectFoote
5800 72 28 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 72 6f 6a 65 63 74 r());.............return.project
5820 42 75 69 6c 64 65 72 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 Builder.ToString();.........}...
5840 20 20 20 20 20 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 41 70 70 65 6e 64 52 65 66 65 72 65 6e .......static.void.AppendReferen
5860 63 65 28 73 74 72 69 6e 67 20 66 75 6c 6c 52 65 66 65 72 65 6e 63 65 2c 20 53 74 72 69 6e 67 42 ce(string.fullReference,.StringB
5880 75 69 6c 64 65 72 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 29 0a 20 20 20 20 20 20 20 20 7b uilder.projectBuilder).........{
58a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 72 65 70 6c 61 63 65 20 5c 20 77 69 74 68 20 2f 20 .............//replace.\.with./.
58c0 61 6e 64 20 5c 5c 20 77 69 74 68 20 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 65 73 and.\\.with./.............var.es
58e0 63 61 70 65 64 46 75 6c 6c 50 61 74 68 20 3d 20 53 65 63 75 72 69 74 79 45 6c 65 6d 65 6e 74 2e capedFullPath.=.SecurityElement.
5900 45 73 63 61 70 65 28 66 75 6c 6c 52 65 66 65 72 65 6e 63 65 29 3b 0a 20 20 20 20 20 20 20 20 20 Escape(fullReference);..........
5920 20 20 20 65 73 63 61 70 65 64 46 75 6c 6c 50 61 74 68 20 3d 20 65 73 63 61 70 65 64 46 75 6c 6c ...escapedFullPath.=.escapedFull
5940 50 61 74 68 2e 52 65 70 6c 61 63 65 28 22 5c 5c 5c 5c 22 2c 20 22 2f 22 29 3b 0a 20 20 20 20 20 Path.Replace("\\\\",."/");......
5960 20 20 20 20 20 20 20 65 73 63 61 70 65 64 46 75 6c 6c 50 61 74 68 20 3d 20 65 73 63 61 70 65 64 .......escapedFullPath.=.escaped
5980 46 75 6c 6c 50 61 74 68 2e 52 65 70 6c 61 63 65 28 22 5c 5c 22 2c 20 22 2f 22 29 3b 0a 20 20 20 FullPath.Replace("\\",."/");....
59a0 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 .........projectBuilder.Append("
59c0 20 3c 52 65 66 65 72 65 6e 63 65 20 49 6e 63 6c 75 64 65 3d 5c 22 22 29 2e 41 70 70 65 6e 64 28 .<Reference.Include=\"").Append(
59e0 50 61 74 68 2e 47 65 74 46 69 6c 65 4e 61 6d 65 57 69 74 68 6f 75 74 45 78 74 65 6e 73 69 6f 6e Path.GetFileNameWithoutExtension
5a00 28 65 73 63 61 70 65 64 46 75 6c 6c 50 61 74 68 29 29 2e 41 70 70 65 6e 64 28 22 5c 22 3e 22 29 (escapedFullPath)).Append("\">")
5a20 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 .Append(k_WindowsNewline);......
5a40 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 3c .......projectBuilder.Append(".<
5a60 48 69 6e 74 50 61 74 68 3e 22 29 2e 41 70 70 65 6e 64 28 65 73 63 61 70 65 64 46 75 6c 6c 50 61 HintPath>").Append(escapedFullPa
5a80 74 68 29 2e 41 70 70 65 6e 64 28 22 3c 2f 48 69 6e 74 50 61 74 68 3e 22 29 2e 41 70 70 65 6e 64 th).Append("</HintPath>").Append
5aa0 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 (k_WindowsNewline);.............
5ac0 70 72 6f 6a 65 63 74 42 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 22 20 3c 2f 52 65 66 65 72 65 projectBuilder.Append(".</Refere
5ae0 6e 63 65 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b nce>").Append(k_WindowsNewline);
5b00 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e .........}..........public.strin
5b20 67 20 50 72 6f 6a 65 63 74 46 69 6c 65 28 41 73 73 65 6d 62 6c 79 20 61 73 73 65 6d 62 6c 79 29 g.ProjectFile(Assembly.assembly)
5b40 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 66 69 6c 65 42 .........{.............var.fileB
5b60 75 69 6c 64 65 72 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 42 75 69 6c 64 65 72 28 61 73 73 65 6d uilder.=.new.StringBuilder(assem
5b80 62 6c 79 2e 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 42 75 69 6c 64 bly.name);.............fileBuild
5ba0 65 72 2e 41 70 70 65 6e 64 28 22 2e 63 73 70 72 6f 6a 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 er.Append(".csproj");...........
5bc0 20 20 72 65 74 75 72 6e 20 50 61 74 68 2e 43 6f 6d 62 69 6e 65 28 50 72 6f 6a 65 63 74 44 69 72 ..return.Path.Combine(ProjectDir
5be0 65 63 74 6f 72 79 2c 20 66 69 6c 65 42 75 69 6c 64 65 72 2e 54 6f 53 74 72 69 6e 67 28 29 29 3b ectory,.fileBuilder.ToString());
5c00 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e .........}..........public.strin
5c20 67 20 53 6f 6c 75 74 69 6f 6e 46 69 6c 65 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 g.SolutionFile().........{......
5c40 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 50 61 74 68 2e 43 6f 6d 62 69 6e 65 28 50 72 6f 6a 65 .......return.Path.Combine(Proje
5c60 63 74 44 69 72 65 63 74 6f 72 79 2c 20 24 22 7b 6d 5f 50 72 6f 6a 65 63 74 4e 61 6d 65 7d 2e 73 ctDirectory,.$"{m_ProjectName}.s
5c80 6c 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20 50 72 ln");.........}..........void.Pr
5ca0 6f 6a 65 63 74 48 65 61 64 65 72 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 73 73 65 6d 62 6c ojectHeader(.............Assembl
5cc0 79 20 61 73 73 65 6d 62 6c 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 45 6e 75 6d 65 72 61 y.assembly,.............IEnumera
5ce0 62 6c 65 3c 52 65 73 70 6f 6e 73 65 46 69 6c 65 44 61 74 61 3e 20 72 65 73 70 6f 6e 73 65 46 69 ble<ResponseFileData>.responseFi
5d00 6c 65 73 44 61 74 61 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 72 69 6e 67 42 75 69 6c 64 lesData,.............StringBuild
5d20 65 72 20 62 75 69 6c 64 65 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 er.builder.........).........{..
5d40 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 4f 44 4f 3a 20 2e 43 6f 6e 63 61 74 28 45 64 69 74 ...........//.TODO:..Concat(Edit
5d60 6f 72 55 73 65 72 42 75 69 6c 64 53 65 74 74 69 6e 67 73 2e 61 63 74 69 76 65 53 63 72 69 70 74 orUserBuildSettings.activeScript
5d80 43 6f 6d 70 69 6c 61 74 69 6f 6e 44 65 66 69 6e 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 CompilationDefines).............
5da0 47 65 74 50 72 6f 6a 65 63 74 48 65 61 64 65 72 54 65 6d 70 6c 61 74 65 28 0a 20 20 20 20 20 20 GetProjectHeaderTemplate(.......
5dc0 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........builder,..............
5de0 20 20 20 50 72 6f 6a 65 63 74 47 75 69 64 28 61 73 73 65 6d 62 6c 79 2e 6e 61 6d 65 29 2c 0a 20 ...ProjectGuid(assembly.name),..
5e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 6d 62 6c 79 2e 6e 61 6d 65 2c 0a 20 20 ...............assembly.name,...
5e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 2e 4a 6f 69 6e 28 22 3b 22 2c 20 6e ..............string.Join(";",.n
5e40 65 77 5b 5d 20 7b 20 22 44 45 42 55 47 22 2c 20 22 54 52 41 43 45 22 20 7d 2e 43 6f 6e 63 61 74 ew[].{."DEBUG",."TRACE".}.Concat
5e60 28 61 73 73 65 6d 62 6c 79 2e 64 65 66 69 6e 65 73 29 2e 43 6f 6e 63 61 74 28 72 65 73 70 6f 6e (assembly.defines).Concat(respon
5e80 73 65 46 69 6c 65 73 44 61 74 61 2e 53 65 6c 65 63 74 4d 61 6e 79 28 78 20 3d 3e 20 78 2e 44 65 seFilesData.SelectMany(x.=>.x.De
5ea0 66 69 6e 65 73 29 29 2e 44 69 73 74 69 6e 63 74 28 29 2e 54 6f 41 72 72 61 79 28 29 29 2c 0a 20 fines)).Distinct().ToArray()),..
5ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 6d 62 6c 79 2e 63 6f 6d 70 69 6c 65 72 ...............assembly.compiler
5ee0 4f 70 74 69 6f 6e 73 2e 41 6c 6c 6f 77 55 6e 73 61 66 65 43 6f 64 65 20 7c 20 72 65 73 70 6f 6e Options.AllowUnsafeCode.|.respon
5f00 73 65 46 69 6c 65 73 44 61 74 61 2e 41 6e 79 28 78 20 3d 3e 20 78 2e 55 6e 73 61 66 65 29 29 3b seFilesData.Any(x.=>.x.Unsafe));
5f20 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 73 74 72 69 6e .........}..........static.strin
5f40 67 20 47 65 74 53 6f 6c 75 74 69 6f 6e 54 65 78 74 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 g.GetSolutionText().........{...
5f60 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 69 6e 67 2e 4a 6f 69 6e 28 22 5c 72 ..........return.string.Join("\r
5f80 5c 6e 22 2c 20 40 22 22 2c 20 40 22 4d 69 63 72 6f 73 6f 66 74 20 56 69 73 75 61 6c 20 53 74 75 \n",.@"",.@"Microsoft.Visual.Stu
5fa0 64 69 6f 20 53 6f 6c 75 74 69 6f 6e 20 46 69 6c 65 2c 20 46 6f 72 6d 61 74 20 56 65 72 73 69 6f dio.Solution.File,.Format.Versio
5fc0 6e 20 7b 30 7d 22 2c 20 40 22 23 20 56 69 73 75 61 6c 20 53 74 75 64 69 6f 20 7b 31 7d 22 2c 20 n.{0}",.@"#.Visual.Studio.{1}",.
5fe0 40 22 7b 32 7d 22 2c 20 40 22 47 6c 6f 62 61 6c 22 2c 20 40 22 20 20 20 20 47 6c 6f 62 61 6c 53 @"{2}",.@"Global",.@"....GlobalS
6000 65 63 74 69 6f 6e 28 53 6f 6c 75 74 69 6f 6e 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 50 6c 61 74 ection(SolutionConfigurationPlat
6020 66 6f 72 6d 73 29 20 3d 20 70 72 65 53 6f 6c 75 74 69 6f 6e 22 2c 20 40 22 20 20 20 20 20 20 20 forms).=.preSolution",.@".......
6040 20 44 65 62 75 67 7c 41 6e 79 20 43 50 55 20 3d 20 44 65 62 75 67 7c 41 6e 79 20 43 50 55 22 2c .Debug|Any.CPU.=.Debug|Any.CPU",
6060 20 40 22 20 20 20 20 20 20 20 20 52 65 6c 65 61 73 65 7c 41 6e 79 20 43 50 55 20 3d 20 52 65 6c .@"........Release|Any.CPU.=.Rel
6080 65 61 73 65 7c 41 6e 79 20 43 50 55 22 2c 20 40 22 20 20 20 20 45 6e 64 47 6c 6f 62 61 6c 53 65 ease|Any.CPU",.@"....EndGlobalSe
60a0 63 74 69 6f 6e 22 2c 20 40 22 20 20 20 20 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 28 50 72 6f 6a ction",.@"....GlobalSection(Proj
60c0 65 63 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 50 6c 61 74 66 6f 72 6d 73 29 20 3d 20 70 6f 73 ectConfigurationPlatforms).=.pos
60e0 74 53 6f 6c 75 74 69 6f 6e 22 2c 20 40 22 7b 33 7d 22 2c 20 40 22 20 20 20 20 45 6e 64 47 6c 6f tSolution",.@"{3}",.@"....EndGlo
6100 62 61 6c 53 65 63 74 69 6f 6e 22 2c 20 40 22 20 20 20 20 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e balSection",.@"....GlobalSection
6120 28 53 6f 6c 75 74 69 6f 6e 50 72 6f 70 65 72 74 69 65 73 29 20 3d 20 70 72 65 53 6f 6c 75 74 69 (SolutionProperties).=.preSoluti
6140 6f 6e 22 2c 20 40 22 20 20 20 20 20 20 20 20 48 69 64 65 53 6f 6c 75 74 69 6f 6e 4e 6f 64 65 20 on",.@"........HideSolutionNode.
6160 3d 20 46 41 4c 53 45 22 2c 20 40 22 20 20 20 20 45 6e 64 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e =.FALSE",.@"....EndGlobalSection
6180 22 2c 20 40 22 45 6e 64 47 6c 6f 62 61 6c 22 2c 20 40 22 22 29 2e 52 65 70 6c 61 63 65 28 22 20 ",.@"EndGlobal",.@"").Replace(".
61a0 20 20 20 22 2c 20 22 5c 74 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 ...",."\t");.........}..........
61c0 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 47 65 74 50 72 6f 6a 65 63 74 46 6f 6f 74 65 72 54 65 static.string.GetProjectFooterTe
61e0 6d 70 6c 61 74 65 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 mplate().........{.............r
6200 65 74 75 72 6e 20 73 74 72 69 6e 67 2e 4a 6f 69 6e 28 22 5c 72 5c 6e 22 2c 20 40 22 20 20 3c 2f eturn.string.Join("\r\n",.@"..</
6220 49 74 65 6d 47 72 6f 75 70 3e 22 2c 20 40 22 20 20 3c 49 6d 70 6f 72 74 20 50 72 6f 6a 65 63 74 ItemGroup>",.@"..<Import.Project
6240 3d 22 22 24 28 4d 53 42 75 69 6c 64 54 6f 6f 6c 73 50 61 74 68 29 5c 4d 69 63 72 6f 73 6f 66 74 =""$(MSBuildToolsPath)\Microsoft
6260 2e 43 53 68 61 72 70 2e 74 61 72 67 65 74 73 22 22 20 2f 3e 22 2c 20 40 22 20 20 3c 21 2d 2d 20 .CSharp.targets""./>",.@"..<!--.
6280 54 6f 20 6d 6f 64 69 66 79 20 79 6f 75 72 20 62 75 69 6c 64 20 70 72 6f 63 65 73 73 2c 20 61 64 To.modify.your.build.process,.ad
62a0 64 20 79 6f 75 72 20 74 61 73 6b 20 69 6e 73 69 64 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 61 d.your.task.inside.one.of.the.ta
62c0 72 67 65 74 73 20 62 65 6c 6f 77 20 61 6e 64 20 75 6e 63 6f 6d 6d 65 6e 74 20 69 74 2e 22 2c 20 rgets.below.and.uncomment.it.",.
62e0 40 22 20 20 20 20 20 20 20 4f 74 68 65 72 20 73 69 6d 69 6c 61 72 20 65 78 74 65 6e 73 69 6f 6e @".......Other.similar.extension
6300 20 70 6f 69 6e 74 73 20 65 78 69 73 74 2c 20 73 65 65 20 4d 69 63 72 6f 73 6f 66 74 2e 43 6f 6d .points.exist,.see.Microsoft.Com
6320 6d 6f 6e 2e 74 61 72 67 65 74 73 2e 22 2c 20 40 22 20 20 3c 54 61 72 67 65 74 20 4e 61 6d 65 3d mon.targets.",.@"..<Target.Name=
6340 22 22 42 65 66 6f 72 65 42 75 69 6c 64 22 22 3e 22 2c 20 40 22 20 20 3c 2f 54 61 72 67 65 74 3e ""BeforeBuild"">",.@"..</Target>
6360 22 2c 20 40 22 20 20 3c 54 61 72 67 65 74 20 4e 61 6d 65 3d 22 22 41 66 74 65 72 42 75 69 6c 64 ",.@"..<Target.Name=""AfterBuild
6380 22 22 3e 22 2c 20 40 22 20 20 3c 2f 54 61 72 67 65 74 3e 22 2c 20 40 22 20 20 2d 2d 3e 22 2c 20 "">",.@"..</Target>",.@"..-->",.
63a0 40 22 3c 2f 50 72 6f 6a 65 63 74 3e 22 2c 20 40 22 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a @"</Project>",.@"");.........}..
63c0 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 47 65 74 50 72 6f 6a 65 63 74 48 65 ........static.void.GetProjectHe
63e0 61 64 65 72 54 65 6d 70 6c 61 74 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 72 69 6e 67 aderTemplate(.............String
6400 42 75 69 6c 64 65 72 20 62 75 69 6c 64 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 Builder.builder,.............str
6420 69 6e 67 20 61 73 73 65 6d 62 6c 79 47 55 49 44 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 ing.assemblyGUID,.............st
6440 72 69 6e 67 20 61 73 73 65 6d 62 6c 79 4e 61 6d 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 ring.assemblyName,.............s
6460 74 72 69 6e 67 20 64 65 66 69 6e 65 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 tring.defines,.............bool.
6480 61 6c 6c 6f 77 55 6e 73 61 66 65 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7b 0a allowUnsafe.........).........{.
64a0 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 3c 3f 78 ............builder.Append(@"<?x
64c0 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 22 31 2e 30 22 22 20 65 6e 63 6f 64 69 6e 67 3d 22 22 75 74 ml.version=""1.0"".encoding=""ut
64e0 66 2d 38 22 22 3f 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e f-8""?>").Append(k_WindowsNewlin
6500 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 e);.............builder.Append(@
6520 22 3c 50 72 6f 6a 65 63 74 20 54 6f 6f 6c 73 56 65 72 73 69 6f 6e 3d 22 22 22 29 2e 41 70 70 65 "<Project.ToolsVersion=""").Appe
6540 6e 64 28 6b 5f 54 6f 6f 6c 73 56 65 72 73 69 6f 6e 29 2e 41 70 70 65 6e 64 28 40 22 22 22 20 44 nd(k_ToolsVersion).Append(@""".D
6560 65 66 61 75 6c 74 54 61 72 67 65 74 73 3d 22 22 42 75 69 6c 64 22 22 20 78 6d 6c 6e 73 3d 22 22 efaultTargets=""Build"".xmlns=""
6580 22 29 2e 41 70 70 65 6e 64 28 4d 53 42 75 69 6c 64 4e 61 6d 65 73 70 61 63 65 55 72 69 29 2e 41 ").Append(MSBuildNamespaceUri).A
65a0 70 70 65 6e 64 28 40 22 22 22 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 ppend(@""">").Append(k_WindowsNe
65c0 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 wline);.............builder.Appe
65e0 6e 64 28 40 22 20 20 3c 50 72 6f 70 65 72 74 79 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 nd(@"..<PropertyGroup>").Append(
6600 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 k_WindowsNewline);.............b
6620 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 4c 61 6e 67 56 65 72 73 69 6f 6e uilder.Append(@"....<LangVersion
6640 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 54 61 72 67 65 74 4c 61 6e 67 75 61 67 65 56 65 72 73 69 >").Append(k_TargetLanguageVersi
6660 6f 6e 29 2e 41 70 70 65 6e 64 28 22 3c 2f 4c 61 6e 67 56 65 72 73 69 6f 6e 3e 22 29 2e 41 70 70 on).Append("</LangVersion>").App
6680 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 end(k_WindowsNewline);..........
66a0 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 3c 2f 50 72 6f 70 65 72 74 79 ...builder.Append(@"..</Property
66c0 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 Group>").Append(k_WindowsNewline
66e0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 );.............builder.Append(@"
6700 20 20 3c 50 72 6f 70 65 72 74 79 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e ..<PropertyGroup>").Append(k_Win
6720 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 dowsNewline);.............builde
6740 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 43 6f r.Append(@"....<Configuration.Co
6760 6e 64 69 74 69 6f 6e 3d 22 22 20 27 24 28 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 27 20 3d 3d ndition="".'$(Configuration)'.==
6780 20 27 27 20 22 22 3e 44 65 62 75 67 3c 2f 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3e 22 29 2e 41 .''."">Debug</Configuration>").A
67a0 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 ppend(k_WindowsNewline);........
67c0 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 50 6c 61 74 66 .....builder.Append(@"....<Platf
67e0 6f 72 6d 20 43 6f 6e 64 69 74 69 6f 6e 3d 22 22 20 27 24 28 50 6c 61 74 66 6f 72 6d 29 27 20 3d orm.Condition="".'$(Platform)'.=
6800 3d 20 27 27 20 22 22 3e 41 6e 79 43 50 55 3c 2f 50 6c 61 74 66 6f 72 6d 3e 22 29 2e 41 70 70 65 =.''."">AnyCPU</Platform>").Appe
6820 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 nd(k_WindowsNewline);...........
6840 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 50 72 6f 64 75 63 74 56 ..builder.Append(@"....<ProductV
6860 65 72 73 69 6f 6e 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 50 72 6f 64 75 63 74 56 65 72 73 69 6f ersion>").Append(k_ProductVersio
6880 6e 29 2e 41 70 70 65 6e 64 28 22 3c 2f 50 72 6f 64 75 63 74 56 65 72 73 69 6f 6e 3e 22 29 2e 41 n).Append("</ProductVersion>").A
68a0 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 ppend(k_WindowsNewline);........
68c0 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 53 63 68 65 6d .....builder.Append(@"....<Schem
68e0 61 56 65 72 73 69 6f 6e 3e 32 2e 30 3c 2f 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 3e 22 29 2e 41 aVersion>2.0</SchemaVersion>").A
6900 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 ppend(k_WindowsNewline);........
6920 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 52 6f 6f 74 4e .....builder.Append(@"....<RootN
6940 61 6d 65 73 70 61 63 65 3e 22 29 2e 41 70 70 65 6e 64 28 45 64 69 74 6f 72 53 65 74 74 69 6e 67 amespace>").Append(EditorSetting
6960 73 2e 70 72 6f 6a 65 63 74 47 65 6e 65 72 61 74 69 6f 6e 52 6f 6f 74 4e 61 6d 65 73 70 61 63 65 s.projectGenerationRootNamespace
6980 29 2e 41 70 70 65 6e 64 28 22 3c 2f 52 6f 6f 74 4e 61 6d 65 73 70 61 63 65 3e 22 29 2e 41 70 70 ).Append("</RootNamespace>").App
69a0 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 end(k_WindowsNewline);..........
69c0 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 50 72 6f 6a 65 63 74 ...builder.Append(@"....<Project
69e0 47 75 69 64 3e 7b 22 29 2e 41 70 70 65 6e 64 28 61 73 73 65 6d 62 6c 79 47 55 49 44 29 2e 41 70 Guid>{").Append(assemblyGUID).Ap
6a00 70 65 6e 64 28 22 7d 3c 2f 50 72 6f 6a 65 63 74 47 75 69 64 3e 22 29 2e 41 70 70 65 6e 64 28 6b pend("}</ProjectGuid>").Append(k
6a20 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 _WindowsNewline);.............bu
6a40 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 4f 75 74 70 75 74 54 79 70 65 3e 4c ilder.Append(@"....<OutputType>L
6a60 69 62 72 61 72 79 3c 2f 4f 75 74 70 75 74 54 79 70 65 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 ibrary</OutputType>").Append(k_W
6a80 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c indowsNewline);.............buil
6aa0 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 41 70 70 44 65 73 69 67 6e 65 72 46 6f 6c der.Append(@"....<AppDesignerFol
6ac0 64 65 72 3e 50 72 6f 70 65 72 74 69 65 73 3c 2f 41 70 70 44 65 73 69 67 6e 65 72 46 6f 6c 64 65 der>Properties</AppDesignerFolde
6ae0 72 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 r>").Append(k_WindowsNewline);..
6b00 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 ...........builder.Append(@"....
6b20 3c 41 73 73 65 6d 62 6c 79 4e 61 6d 65 3e 22 29 2e 41 70 70 65 6e 64 28 61 73 73 65 6d 62 6c 79 <AssemblyName>").Append(assembly
6b40 4e 61 6d 65 29 2e 41 70 70 65 6e 64 28 22 3c 2f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 3e 22 29 2e Name).Append("</AssemblyName>").
6b60 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 Append(k_WindowsNewline);.......
6b80 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 54 61 72 67 ......builder.Append(@"....<Targ
6ba0 65 74 46 72 61 6d 65 77 6f 72 6b 56 65 72 73 69 6f 6e 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 54 etFrameworkVersion>").Append(k_T
6bc0 61 72 67 65 74 46 72 61 6d 65 77 6f 72 6b 56 65 72 73 69 6f 6e 29 2e 41 70 70 65 6e 64 28 22 3c argetFrameworkVersion).Append("<
6be0 2f 54 61 72 67 65 74 46 72 61 6d 65 77 6f 72 6b 56 65 72 73 69 6f 6e 3e 22 29 2e 41 70 70 65 6e /TargetFrameworkVersion>").Appen
6c00 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 d(k_WindowsNewline);............
6c20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 46 69 6c 65 41 6c 69 67 6e .builder.Append(@"....<FileAlign
6c40 6d 65 6e 74 3e 35 31 32 3c 2f 46 69 6c 65 41 6c 69 67 6e 6d 65 6e 74 3e 22 29 2e 41 70 70 65 6e ment>512</FileAlignment>").Appen
6c60 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 d(k_WindowsNewline);............
6c80 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 42 61 73 65 44 69 72 65 63 .builder.Append(@"....<BaseDirec
6ca0 74 6f 72 79 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 42 61 73 65 44 69 72 65 63 74 6f 72 79 29 2e tory>").Append(k_BaseDirectory).
6cc0 41 70 70 65 6e 64 28 22 3c 2f 42 61 73 65 44 69 72 65 63 74 6f 72 79 3e 22 29 2e 41 70 70 65 6e Append("</BaseDirectory>").Appen
6ce0 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 d(k_WindowsNewline);............
6d00 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 3c 2f 50 72 6f 70 65 72 74 79 47 72 .builder.Append(@"..</PropertyGr
6d20 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b oup>").Append(k_WindowsNewline);
6d40 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 .............builder.Append(@"..
6d60 3c 50 72 6f 70 65 72 74 79 47 72 6f 75 70 20 43 6f 6e 64 69 74 69 6f 6e 3d 22 22 20 27 24 28 43 <PropertyGroup.Condition="".'$(C
6d80 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 7c 24 28 50 6c 61 74 66 6f 72 6d 29 27 20 3d 3d 20 27 44 onfiguration)|$(Platform)'.==.'D
6da0 65 62 75 67 7c 41 6e 79 43 50 55 27 20 22 22 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 ebug|AnyCPU'."">").Append(k_Wind
6dc0 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 owsNewline);.............builder
6de0 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 44 65 62 75 67 53 79 6d 62 6f 6c 73 3e 74 72 75 65 .Append(@"....<DebugSymbols>true
6e00 3c 2f 44 65 62 75 67 53 79 6d 62 6f 6c 73 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f </DebugSymbols>").Append(k_Windo
6e20 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e wsNewline);.............builder.
6e40 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 44 65 62 75 67 54 79 70 65 3e 66 75 6c 6c 3c 2f 44 65 Append(@"....<DebugType>full</De
6e60 62 75 67 54 79 70 65 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 bugType>").Append(k_WindowsNewli
6e80 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 ne);.............builder.Append(
6ea0 40 22 20 20 20 20 3c 4f 70 74 69 6d 69 7a 65 3e 66 61 6c 73 65 3c 2f 4f 70 74 69 6d 69 7a 65 3e @"....<Optimize>false</Optimize>
6ec0 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 ").Append(k_WindowsNewline);....
6ee0 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 4f .........builder.Append(@"....<O
6f00 75 74 70 75 74 50 61 74 68 3e 54 65 6d 70 5c 62 69 6e 5c 44 65 62 75 67 5c 3c 2f 4f 75 74 70 75 utputPath>Temp\bin\Debug\</Outpu
6f20 74 50 61 74 68 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 tPath>").Append(k_WindowsNewline
6f40 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 );.............builder.Append(@"
6f60 20 20 20 20 3c 44 65 66 69 6e 65 43 6f 6e 73 74 61 6e 74 73 3e 22 29 2e 41 70 70 65 6e 64 28 64 ....<DefineConstants>").Append(d
6f80 65 66 69 6e 65 73 29 2e 41 70 70 65 6e 64 28 22 3c 2f 44 65 66 69 6e 65 43 6f 6e 73 74 61 6e 74 efines).Append("</DefineConstant
6fa0 73 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 s>").Append(k_WindowsNewline);..
6fc0 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 ...........builder.Append(@"....
6fe0 3c 45 72 72 6f 72 52 65 70 6f 72 74 3e 70 72 6f 6d 70 74 3c 2f 45 72 72 6f 72 52 65 70 6f 72 74 <ErrorReport>prompt</ErrorReport
7000 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 >").Append(k_WindowsNewline);...
7020 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c ..........builder.Append(@"....<
7040 57 61 72 6e 69 6e 67 4c 65 76 65 6c 3e 34 3c 2f 57 61 72 6e 69 6e 67 4c 65 76 65 6c 3e 22 29 2e WarningLevel>4</WarningLevel>").
7060 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 Append(k_WindowsNewline);.......
7080 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 4e 6f 57 61 ......builder.Append(@"....<NoWa
70a0 72 6e 3e 30 31 36 39 3c 2f 4e 6f 57 61 72 6e 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 rn>0169</NoWarn>").Append(k_Wind
70c0 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 owsNewline);.............builder
70e0 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 41 6c 6c 6f 77 55 6e 73 61 66 65 42 6c 6f 63 6b 73 .Append(@"....<AllowUnsafeBlocks
7100 3e 22 29 2e 41 70 70 65 6e 64 28 61 6c 6c 6f 77 55 6e 73 61 66 65 29 2e 41 70 70 65 6e 64 28 22 >").Append(allowUnsafe).Append("
7120 3c 2f 41 6c 6c 6f 77 55 6e 73 61 66 65 42 6c 6f 63 6b 73 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f </AllowUnsafeBlocks>").Append(k_
7140 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 WindowsNewline);.............bui
7160 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 3c 2f 50 72 6f 70 65 72 74 79 47 72 6f 75 70 3e lder.Append(@"..</PropertyGroup>
7180 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 ").Append(k_WindowsNewline);....
71a0 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 3c 50 72 6f .........builder.Append(@"..<Pro
71c0 70 65 72 74 79 47 72 6f 75 70 20 43 6f 6e 64 69 74 69 6f 6e 3d 22 22 20 27 24 28 43 6f 6e 66 69 pertyGroup.Condition="".'$(Confi
71e0 67 75 72 61 74 69 6f 6e 29 7c 24 28 50 6c 61 74 66 6f 72 6d 29 27 20 3d 3d 20 27 52 65 6c 65 61 guration)|$(Platform)'.==.'Relea
7200 73 65 7c 41 6e 79 43 50 55 27 20 22 22 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 se|AnyCPU'."">").Append(k_Window
7220 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 sNewline);.............builder.A
7240 70 70 65 6e 64 28 40 22 20 20 20 20 3c 44 65 62 75 67 54 79 70 65 3e 70 64 62 6f 6e 6c 79 3c 2f ppend(@"....<DebugType>pdbonly</
7260 44 65 62 75 67 54 79 70 65 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 DebugType>").Append(k_WindowsNew
7280 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e line);.............builder.Appen
72a0 64 28 40 22 20 20 20 20 3c 4f 70 74 69 6d 69 7a 65 3e 74 72 75 65 3c 2f 4f 70 74 69 6d 69 7a 65 d(@"....<Optimize>true</Optimize
72c0 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 >").Append(k_WindowsNewline);...
72e0 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c ..........builder.Append(@"....<
7300 4f 75 74 70 75 74 50 61 74 68 3e 54 65 6d 70 5c 62 69 6e 5c 52 65 6c 65 61 73 65 5c 3c 2f 4f 75 OutputPath>Temp\bin\Release\</Ou
7320 74 70 75 74 50 61 74 68 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c tputPath>").Append(k_WindowsNewl
7340 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 ine);.............builder.Append
7360 28 40 22 20 20 20 20 3c 45 72 72 6f 72 52 65 70 6f 72 74 3e 70 72 6f 6d 70 74 3c 2f 45 72 72 6f (@"....<ErrorReport>prompt</Erro
7380 72 52 65 70 6f 72 74 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 rReport>").Append(k_WindowsNewli
73a0 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 ne);.............builder.Append(
73c0 40 22 20 20 20 20 3c 57 61 72 6e 69 6e 67 4c 65 76 65 6c 3e 34 3c 2f 57 61 72 6e 69 6e 67 4c 65 @"....<WarningLevel>4</WarningLe
73e0 76 65 6c 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b vel>").Append(k_WindowsNewline);
7400 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 .............builder.Append(@"..
7420 20 20 3c 4e 6f 57 61 72 6e 3e 30 31 36 39 3c 2f 4e 6f 57 61 72 6e 3e 22 29 2e 41 70 70 65 6e 64 ..<NoWarn>0169</NoWarn>").Append
7440 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 (k_WindowsNewline);.............
7460 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 41 6c 6c 6f 77 55 6e 73 61 66 builder.Append(@"....<AllowUnsaf
7480 65 42 6c 6f 63 6b 73 3e 22 29 2e 41 70 70 65 6e 64 28 61 6c 6c 6f 77 55 6e 73 61 66 65 29 2e 41 eBlocks>").Append(allowUnsafe).A
74a0 70 70 65 6e 64 28 22 3c 2f 41 6c 6c 6f 77 55 6e 73 61 66 65 42 6c 6f 63 6b 73 3e 22 29 2e 41 70 ppend("</AllowUnsafeBlocks>").Ap
74c0 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 pend(k_WindowsNewline);.........
74e0 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 3c 2f 50 72 6f 70 65 72 74 ....builder.Append(@"..</Propert
7500 79 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e yGroup>").Append(k_WindowsNewlin
7520 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 e);.............builder.Append(@
7540 22 20 20 3c 50 72 6f 70 65 72 74 79 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 "..<PropertyGroup>").Append(k_Wi
7560 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 ndowsNewline);.............build
7580 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 4e 6f 43 6f 6e 66 69 67 3e 74 72 75 65 3c 2f er.Append(@"....<NoConfig>true</
75a0 4e 6f 43 6f 6e 66 69 67 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c NoConfig>").Append(k_WindowsNewl
75c0 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 ine);.............builder.Append
75e0 28 40 22 20 20 20 20 3c 4e 6f 53 74 64 4c 69 62 3e 74 72 75 65 3c 2f 4e 6f 53 74 64 4c 69 62 3e (@"....<NoStdLib>true</NoStdLib>
7600 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 ").Append(k_WindowsNewline);....
7620 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 41 .........builder.Append(@"....<A
7640 64 64 41 64 64 69 74 69 6f 6e 61 6c 45 78 70 6c 69 63 69 74 41 73 73 65 6d 62 6c 79 52 65 66 65 ddAdditionalExplicitAssemblyRefe
7660 72 65 6e 63 65 73 3e 66 61 6c 73 65 3c 2f 41 64 64 41 64 64 69 74 69 6f 6e 61 6c 45 78 70 6c 69 rences>false</AddAdditionalExpli
7680 63 69 74 41 73 73 65 6d 62 6c 79 52 65 66 65 72 65 6e 63 65 73 3e 22 29 2e 41 70 70 65 6e 64 28 citAssemblyReferences>").Append(
76a0 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 k_WindowsNewline);.............b
76c0 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 3c 49 6d 70 6c 69 63 69 74 6c 79 45 uilder.Append(@"....<ImplicitlyE
76e0 78 70 61 6e 64 4e 45 54 53 74 61 6e 64 61 72 64 46 61 63 61 64 65 73 3e 66 61 6c 73 65 3c 2f 49 xpandNETStandardFacades>false</I
7700 6d 70 6c 69 63 69 74 6c 79 45 78 70 61 6e 64 4e 45 54 53 74 61 6e 64 61 72 64 46 61 63 61 64 65 mplicitlyExpandNETStandardFacade
7720 73 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 s>").Append(k_WindowsNewline);..
7740 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 20 20 ...........builder.Append(@"....
7760 3c 49 6d 70 6c 69 63 69 74 6c 79 45 78 70 61 6e 64 44 65 73 69 67 6e 54 69 6d 65 46 61 63 61 64 <ImplicitlyExpandDesignTimeFacad
7780 65 73 3e 66 61 6c 73 65 3c 2f 49 6d 70 6c 69 63 69 74 6c 79 45 78 70 61 6e 64 44 65 73 69 67 6e es>false</ImplicitlyExpandDesign
77a0 54 69 6d 65 46 61 63 61 64 65 73 3e 22 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e TimeFacades>").Append(k_WindowsN
77c0 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2e 41 70 70 ewline);.............builder.App
77e0 65 6e 64 28 40 22 20 20 3c 2f 50 72 6f 70 65 72 74 79 47 72 6f 75 70 3e 22 29 2e 41 70 70 65 6e end(@"..</PropertyGroup>").Appen
7800 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 d(k_WindowsNewline);............
7820 20 62 75 69 6c 64 65 72 2e 41 70 70 65 6e 64 28 40 22 20 20 3c 49 74 65 6d 47 72 6f 75 70 3e 22 .builder.Append(@"..<ItemGroup>"
7840 29 2e 41 70 70 65 6e 64 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 29 3b 0a 20 20 20 20 ).Append(k_WindowsNewline);.....
7860 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20 53 79 6e 63 53 6f 6c 75 74 69 6f 6e ....}..........void.SyncSolution
7880 28 49 45 6e 75 6d 65 72 61 62 6c 65 3c 41 73 73 65 6d 62 6c 79 3e 20 61 73 73 65 6d 62 6c 69 65 (IEnumerable<Assembly>.assemblie
78a0 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 79 6e 63 53 6f 6c s).........{.............SyncSol
78c0 75 74 69 6f 6e 46 69 6c 65 49 66 4e 6f 74 43 68 61 6e 67 65 64 28 53 6f 6c 75 74 69 6f 6e 46 69 utionFileIfNotChanged(SolutionFi
78e0 6c 65 28 29 2c 20 53 6f 6c 75 74 69 6f 6e 54 65 78 74 28 61 73 73 65 6d 62 6c 69 65 73 29 29 3b le(),.SolutionText(assemblies));
7900 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 53 6f 6c 75 74 .........}..........string.Solut
7920 69 6f 6e 54 65 78 74 28 49 45 6e 75 6d 65 72 61 62 6c 65 3c 41 73 73 65 6d 62 6c 79 3e 20 61 73 ionText(IEnumerable<Assembly>.as
7940 73 65 6d 62 6c 69 65 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 semblies).........{.............
7960 76 61 72 20 66 69 6c 65 76 65 72 73 69 6f 6e 20 3d 20 22 31 31 2e 30 30 22 3b 0a 20 20 20 20 20 var.fileversion.=."11.00";......
7980 20 20 20 20 20 20 20 76 61 72 20 76 73 76 65 72 73 69 6f 6e 20 3d 20 22 32 30 31 30 22 3b 0a 0a .......var.vsversion.=."2010";..
79a0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 72 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 6c 69 ............var.relevantAssembli
79c0 65 73 20 3d 20 52 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 6c 69 65 73 46 6f 72 4d 6f 64 65 28 61 es.=.RelevantAssembliesForMode(a
79e0 73 73 65 6d 62 6c 69 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 70 ssemblies);.............string.p
7a00 72 6f 6a 65 63 74 45 6e 74 72 69 65 73 20 3d 20 47 65 74 50 72 6f 6a 65 63 74 45 6e 74 72 69 65 rojectEntries.=.GetProjectEntrie
7a20 73 28 72 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 6c 69 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 s(relevantAssemblies);..........
7a40 20 20 20 73 74 72 69 6e 67 20 70 72 6f 6a 65 63 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 ...string.projectConfigurations.
7a60 3d 20 73 74 72 69 6e 67 2e 4a 6f 69 6e 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 2c 20 =.string.Join(k_WindowsNewline,.
7a80 72 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 6c 69 65 73 2e 53 65 6c 65 63 74 28 69 20 3d 3e 20 47 relevantAssemblies.Select(i.=>.G
7aa0 65 74 50 72 6f 6a 65 63 74 41 63 74 69 76 65 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 28 50 72 etProjectActiveConfigurations(Pr
7ac0 6f 6a 65 63 74 47 75 69 64 28 69 2e 6e 61 6d 65 29 29 29 2e 54 6f 41 72 72 61 79 28 29 29 3b 0a ojectGuid(i.name))).ToArray());.
7ae0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 69 6e 67 2e 46 6f 72 6d 61 74 ............return.string.Format
7b00 28 47 65 74 53 6f 6c 75 74 69 6f 6e 54 65 78 74 28 29 2c 20 66 69 6c 65 76 65 72 73 69 6f 6e 2c (GetSolutionText(),.fileversion,
7b20 20 76 73 76 65 72 73 69 6f 6e 2c 20 70 72 6f 6a 65 63 74 45 6e 74 72 69 65 73 2c 20 70 72 6f 6a .vsversion,.projectEntries,.proj
7b40 65 63 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 ectConfigurations);.........}...
7b60 20 20 20 20 20 20 20 73 74 61 74 69 63 20 49 45 6e 75 6d 65 72 61 62 6c 65 3c 41 73 73 65 6d 62 .......static.IEnumerable<Assemb
7b80 6c 79 3e 20 52 65 6c 65 76 61 6e 74 41 73 73 65 6d 62 6c 69 65 73 46 6f 72 4d 6f 64 65 28 49 45 ly>.RelevantAssembliesForMode(IE
7ba0 6e 75 6d 65 72 61 62 6c 65 3c 41 73 73 65 6d 62 6c 79 3e 20 61 73 73 65 6d 62 6c 69 65 73 29 0a numerable<Assembly>.assemblies).
7bc0 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 73 73 ........{.............return.ass
7be0 65 6d 62 6c 69 65 73 2e 57 68 65 72 65 28 69 20 3d 3e 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 emblies.Where(i.=>.ScriptingLang
7c00 75 61 67 65 2e 43 53 68 61 72 70 20 3d 3d 20 53 63 72 69 70 74 69 6e 67 4c 61 6e 67 75 61 67 65 uage.CSharp.==.ScriptingLanguage
7c20 46 6f 72 28 69 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 For(i));.........}..........///.
7c40 3c 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 47 65 74 20 61 20 50 72 6f 6a <summary>.........///.Get.a.Proj
7c60 65 63 74 28 22 7b 67 75 69 64 7d 22 29 20 3d 20 22 4d 79 50 72 6f 6a 65 63 74 22 2c 20 22 4d 79 ect("{guid}").=."MyProject",."My
7c80 50 72 6f 6a 65 63 74 2e 63 73 70 72 6f 6a 22 2c 20 22 7b 70 72 6f 6a 65 63 74 67 75 69 64 7d 22 Project.csproj",."{projectguid}"
7ca0 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 65 6e 74 72 79 20 66 6f 72 20 65 61 63 68 20 72 65 6c 65 .........///.entry.for.each.rele
7cc0 76 61 6e 74 20 6c 61 6e 67 75 61 67 65 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d vant.language.........///.</summ
7ce0 61 72 79 3e 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 47 65 74 50 72 6f 6a 65 63 74 45 6e ary>.........string.GetProjectEn
7d00 74 72 69 65 73 28 49 45 6e 75 6d 65 72 61 62 6c 65 3c 41 73 73 65 6d 62 6c 79 3e 20 61 73 73 65 tries(IEnumerable<Assembly>.asse
7d20 6d 62 6c 69 65 73 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 mblies).........{.............va
7d40 72 20 70 72 6f 6a 65 63 74 45 6e 74 72 69 65 73 20 3d 20 61 73 73 65 6d 62 6c 69 65 73 2e 53 65 r.projectEntries.=.assemblies.Se
7d60 6c 65 63 74 28 69 20 3d 3e 20 73 74 72 69 6e 67 2e 46 6f 72 6d 61 74 28 0a 20 20 20 20 20 20 20 lect(i.=>.string.Format(........
7d80 20 20 20 20 20 20 20 20 20 6d 5f 53 6f 6c 75 74 69 6f 6e 50 72 6f 6a 65 63 74 45 6e 74 72 79 54 .........m_SolutionProjectEntryT
7da0 65 6d 70 6c 61 74 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 6c 75 74 69 6f emplate,.................Solutio
7dc0 6e 47 75 69 64 28 69 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 2e 6e 61 6d 65 nGuid(i),.................i.name
7de0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 74 68 2e 47 65 74 46 69 6c 65 4e 61 ,.................Path.GetFileNa
7e00 6d 65 28 50 72 6f 6a 65 63 74 46 69 6c 65 28 69 29 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 me(ProjectFile(i)),.............
7e20 20 20 20 20 50 72 6f 6a 65 63 74 47 75 69 64 28 69 2e 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 ....ProjectGuid(i.name).........
7e40 20 20 20 20 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 69 ....));..............return.stri
7e60 6e 67 2e 4a 6f 69 6e 28 6b 5f 57 69 6e 64 6f 77 73 4e 65 77 6c 69 6e 65 2c 20 70 72 6f 6a 65 63 ng.Join(k_WindowsNewline,.projec
7e80 74 45 6e 74 72 69 65 73 2e 54 6f 41 72 72 61 79 28 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a tEntries.ToArray());.........}..
7ea0 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 20 20 20 20 2f 2f ........///.<summary>.........//
7ec0 2f 20 47 65 6e 65 72 61 74 65 20 74 68 65 20 61 63 74 69 76 65 20 63 6f 6e 66 69 67 75 72 61 74 /.Generate.the.active.configurat
7ee0 69 6f 6e 20 73 74 72 69 6e 67 20 66 6f 72 20 61 20 67 69 76 65 6e 20 70 72 6f 6a 65 63 74 20 67 ion.string.for.a.given.project.g
7f00 75 69 64 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 20 20 20 20 20 uid.........///.</summary>......
7f20 20 20 20 73 74 72 69 6e 67 20 47 65 74 50 72 6f 6a 65 63 74 41 63 74 69 76 65 43 6f 6e 66 69 67 ...string.GetProjectActiveConfig
7f40 75 72 61 74 69 6f 6e 73 28 73 74 72 69 6e 67 20 70 72 6f 6a 65 63 74 47 75 69 64 29 0a 20 20 20 urations(string.projectGuid)....
7f60 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 69 6e 67 .....{.............return.string
7f80 2e 46 6f 72 6d 61 74 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 53 6f 6c 75 74 .Format(.................m_Solut
7fa0 69 6f 6e 50 72 6f 6a 65 63 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 54 65 6d 70 6c 61 74 65 2c ionProjectConfigurationTemplate,
7fc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 47 75 69 64 29 3b 0a 20 .................projectGuid);..
7fe0 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 45 73 63 61 70 65 64 .......}..........string.Escaped
8000 52 65 6c 61 74 69 76 65 50 61 74 68 46 6f 72 28 73 74 72 69 6e 67 20 66 69 6c 65 29 0a 20 20 20 RelativePathFor(string.file)....
8020 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 72 6f 6a 65 63 74 44 69 .....{.............var.projectDi
8040 72 20 3d 20 50 72 6f 6a 65 63 74 44 69 72 65 63 74 6f 72 79 2e 52 65 70 6c 61 63 65 28 27 2f 27 r.=.ProjectDirectory.Replace('/'
8060 2c 20 27 5c 5c 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 20 3d 20 66 69 6c 65 ,.'\\');.............file.=.file
8080 2e 52 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 .Replace('/',.'\\');............
80a0 20 76 61 72 20 70 61 74 68 20 3d 20 53 6b 69 70 50 61 74 68 50 72 65 66 69 78 28 66 69 6c 65 2c .var.path.=.SkipPathPrefix(file,
80c0 20 70 72 6f 6a 65 63 74 44 69 72 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 .projectDir);..............var.p
80e0 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 6d 5f 41 73 73 65 6d 62 6c 79 4e 61 6d 65 50 72 6f 76 69 ackageInfo.=.m_AssemblyNameProvi
8100 64 65 72 2e 46 69 6e 64 46 6f 72 41 73 73 65 74 50 61 74 68 28 70 61 74 68 2e 52 65 70 6c 61 63 der.FindForAssetPath(path.Replac
8120 65 28 27 5c 5c 27 2c 20 27 2f 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 e('\\',.'/'));.............if.(p
8140 61 63 6b 61 67 65 49 6e 66 6f 20 21 3d 20 6e 75 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ackageInfo.!=.null).............
8160 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 65 20 68 61 76 65 20 74 6f 20 {.................//.We.have.to.
8180 6e 6f 72 6d 61 6c 69 7a 65 20 74 68 65 20 70 61 74 68 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 normalize.the.path,.because.the.
81a0 50 61 63 6b 61 67 65 4d 61 6e 61 67 65 72 52 65 6d 61 70 70 65 72 20 61 73 73 75 6d 65 73 0a 20 PackageManagerRemapper.assumes..
81c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 64 69 72 20 73 65 70 65 72 61 74 6f 72 73 ...............//.dir.seperators
81e0 20 77 69 6c 6c 20 62 65 20 6f 73 20 73 70 65 63 69 66 69 63 2e 0a 20 20 20 20 20 20 20 20 20 20 .will.be.os.specific............
8200 20 20 20 20 20 20 76 61 72 20 61 62 73 6f 6c 75 74 65 50 61 74 68 20 3d 20 50 61 74 68 2e 47 65 ......var.absolutePath.=.Path.Ge
8220 74 46 75 6c 6c 50 61 74 68 28 4e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 70 61 74 68 29 29 2e 52 tFullPath(NormalizePath(path)).R
8240 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 eplace('/',.'\\');..............
8260 20 20 20 70 61 74 68 20 3d 20 53 6b 69 70 50 61 74 68 50 72 65 66 69 78 28 61 62 73 6f 6c 75 74 ...path.=.SkipPathPrefix(absolut
8280 65 50 61 74 68 2c 20 70 72 6f 6a 65 63 74 44 69 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ePath,.projectDir);.............
82a0 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 65 63 75 72 69 74 79 45 6c }..............return.SecurityEl
82c0 65 6d 65 6e 74 2e 45 73 63 61 70 65 28 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 ement.Escape(path);.........}...
82e0 20 20 20 20 20 20 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 53 6b 69 70 50 61 74 68 50 72 65 .......static.string.SkipPathPre
8300 66 69 78 28 73 74 72 69 6e 67 20 70 61 74 68 2c 20 73 74 72 69 6e 67 20 70 72 65 66 69 78 29 0a fix(string.path,.string.prefix).
8320 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 61 74 68 2e 53 ........{.............if.(path.S
8340 74 61 72 74 73 57 69 74 68 28 24 40 22 7b 70 72 65 66 69 78 7d 5c 22 29 29 0a 20 20 20 20 20 20 tartsWith($@"{prefix}\")).......
8360 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 61 74 68 2e 53 75 62 73 74 72 69 6e 67 28 ..........return.path.Substring(
8380 70 72 65 66 69 78 2e 4c 65 6e 67 74 68 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 prefix.Length.+.1);.............
83a0 72 65 74 75 72 6e 20 70 61 74 68 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 return.path;.........}..........
83c0 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 4e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 73 74 72 69 static.string.NormalizePath(stri
83e0 6e 67 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 ng.path).........{.............i
8400 66 20 28 50 61 74 68 2e 44 69 72 65 63 74 6f 72 79 53 65 70 61 72 61 74 6f 72 43 68 61 72 20 3d f.(Path.DirectorySeparatorChar.=
8420 3d 20 27 5c 5c 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 =.'\\').................return.p
8440 61 74 68 2e 52 65 70 6c 61 63 65 28 27 2f 27 2c 20 50 61 74 68 2e 44 69 72 65 63 74 6f 72 79 53 ath.Replace('/',.Path.DirectoryS
8460 65 70 61 72 61 74 6f 72 43 68 61 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 eparatorChar);.............retur
8480 6e 20 70 61 74 68 2e 52 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 50 61 74 68 2e 44 69 72 65 63 74 n.path.Replace('\\',.Path.Direct
84a0 6f 72 79 53 65 70 61 72 61 74 6f 72 43 68 61 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 orySeparatorChar);.........}....
84c0 20 20 20 20 20 20 73 74 72 69 6e 67 20 50 72 6f 6a 65 63 74 47 75 69 64 28 73 74 72 69 6e 67 20 ......string.ProjectGuid(string.
84e0 61 73 73 65 6d 62 6c 79 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 assembly).........{.............
8500 72 65 74 75 72 6e 20 6d 5f 47 55 49 44 50 72 6f 76 69 64 65 72 2e 50 72 6f 6a 65 63 74 47 75 69 return.m_GUIDProvider.ProjectGui
8520 64 28 6d 5f 50 72 6f 6a 65 63 74 4e 61 6d 65 2c 20 61 73 73 65 6d 62 6c 79 29 3b 0a 20 20 20 20 d(m_ProjectName,.assembly);.....
8540 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 20 53 6f 6c 75 74 69 6f 6e 47 75 ....}..........string.SolutionGu
8560 69 64 28 41 73 73 65 6d 62 6c 79 20 61 73 73 65 6d 62 6c 79 29 0a 20 20 20 20 20 20 20 20 7b 0a id(Assembly.assembly).........{.
8580 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 47 55 49 44 50 72 6f 76 69 64 65 ............return.m_GUIDProvide
85a0 72 2e 53 6f 6c 75 74 69 6f 6e 47 75 69 64 28 6d 5f 50 72 6f 6a 65 63 74 4e 61 6d 65 2c 20 47 65 r.SolutionGuid(m_ProjectName,.Ge
85c0 74 45 78 74 65 6e 73 69 6f 6e 4f 66 53 6f 75 72 63 65 46 69 6c 65 73 28 61 73 73 65 6d 62 6c 79 tExtensionOfSourceFiles(assembly
85e0 2e 73 6f 75 72 63 65 46 69 6c 65 73 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 .sourceFiles));.........}.......
8600 20 20 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 50 72 6f 6a 65 63 74 46 6f 6f 74 65 72 28 29 ...static.string.ProjectFooter()
8620 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 47 65 .........{.............return.Ge
8640 74 50 72 6f 6a 65 63 74 46 6f 6f 74 65 72 54 65 6d 70 6c 61 74 65 28 29 3b 0a 20 20 20 20 20 20 tProjectFooterTemplate();.......
8660 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 47 65 74 50 72 ..}..........static.string.GetPr
8680 6f 6a 65 63 74 45 78 74 65 6e 73 69 6f 6e 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 ojectExtension().........{......
86a0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 2e 63 73 70 72 6f 6a 22 3b 0a 20 20 20 20 20 20 20 .......return.".csproj";........
86c0 20 7d 0a 0a 20 20 20 20 20 20 20 20 76 6f 69 64 20 57 72 69 74 65 56 53 43 6f 64 65 53 65 74 74 .}..........void.WriteVSCodeSett
86e0 69 6e 67 73 46 69 6c 65 73 28 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ingsFiles().........{...........
8700 20 20 76 61 72 20 76 73 43 6f 64 65 44 69 72 65 63 74 6f 72 79 20 3d 20 50 61 74 68 2e 43 6f 6d ..var.vsCodeDirectory.=.Path.Com
8720 62 69 6e 65 28 50 72 6f 6a 65 63 74 44 69 72 65 63 74 6f 72 79 2c 20 22 2e 76 73 63 6f 64 65 22 bine(ProjectDirectory,.".vscode"
8740 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 6d 5f 46 69 6c 65 49 4f 50 72 6f );..............if.(!m_FileIOPro
8760 76 69 64 65 72 2e 45 78 69 73 74 73 28 76 73 43 6f 64 65 44 69 72 65 63 74 6f 72 79 29 29 0a 20 vider.Exists(vsCodeDirectory))..
8780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 2e ...............m_FileIOProvider.
87a0 43 72 65 61 74 65 44 69 72 65 63 74 6f 72 79 28 76 73 43 6f 64 65 44 69 72 65 63 74 6f 72 79 29 CreateDirectory(vsCodeDirectory)
87c0 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 73 43 6f 64 65 53 65 74 74 69 6e 67 ;..............var.vsCodeSetting
87e0 73 4a 73 6f 6e 20 3d 20 50 61 74 68 2e 43 6f 6d 62 69 6e 65 28 76 73 43 6f 64 65 44 69 72 65 63 sJson.=.Path.Combine(vsCodeDirec
8800 74 6f 72 79 2c 20 22 73 65 74 74 69 6e 67 73 2e 6a 73 6f 6e 22 29 3b 0a 0a 20 20 20 20 20 20 20 tory,."settings.json");.........
8820 20 20 20 20 20 69 66 20 28 21 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 2e 45 78 69 73 74 .....if.(!m_FileIOProvider.Exist
8840 73 28 76 73 43 6f 64 65 53 65 74 74 69 6e 67 73 4a 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 s(vsCodeSettingsJson))..........
8860 20 20 20 20 20 20 20 6d 5f 46 69 6c 65 49 4f 50 72 6f 76 69 64 65 72 2e 57 72 69 74 65 41 6c 6c .......m_FileIOProvider.WriteAll
8880 54 65 78 74 28 76 73 43 6f 64 65 53 65 74 74 69 6e 67 73 4a 73 6f 6e 2c 20 6b 5f 53 65 74 74 69 Text(vsCodeSettingsJson,.k_Setti
88a0 6e 67 73 4a 73 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 ngsJson);.........}.....}......p
88c0 75 62 6c 69 63 20 73 74 61 74 69 63 20 63 6c 61 73 73 20 53 6f 6c 75 74 69 6f 6e 47 75 69 64 47 ublic.static.class.SolutionGuidG
88e0 65 6e 65 72 61 74 6f 72 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 4d 44 enerator.....{.........static.MD
8900 35 20 6d 44 35 20 3d 20 4d 44 35 43 72 79 70 74 6f 53 65 72 76 69 63 65 50 72 6f 76 69 64 65 72 5.mD5.=.MD5CryptoServiceProvider
8920 2e 43 72 65 61 74 65 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 .Create();..........public.stati
8940 63 20 73 74 72 69 6e 67 20 47 75 69 64 46 6f 72 50 72 6f 6a 65 63 74 28 73 74 72 69 6e 67 20 70 c.string.GuidForProject(string.p
8960 72 6f 6a 65 63 74 4e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 rojectName).........{...........
8980 20 20 72 65 74 75 72 6e 20 43 6f 6d 70 75 74 65 47 75 69 64 48 61 73 68 46 6f 72 28 70 72 6f 6a ..return.ComputeGuidHashFor(proj
89a0 65 63 74 4e 61 6d 65 20 2b 20 22 73 61 6c 74 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 ectName.+."salt");.........}....
89c0 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 47 75 69 64 46 ......public.static.string.GuidF
89e0 6f 72 53 6f 6c 75 74 69 6f 6e 28 73 74 72 69 6e 67 20 70 72 6f 6a 65 63 74 4e 61 6d 65 2c 20 73 orSolution(string.projectName,.s
8a00 74 72 69 6e 67 20 73 6f 75 72 63 65 46 69 6c 65 45 78 74 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20 tring.sourceFileExtension)......
8a20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 6f 75 72 63 65 46 69 6c 65 45 ...{.............if.(sourceFileE
8a40 78 74 65 6e 73 69 6f 6e 2e 54 6f 4c 6f 77 65 72 28 29 20 3d 3d 20 22 63 73 22 29 0a 0a 20 20 20 xtension.ToLower().==."cs").....
8a60 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 47 55 49 44 20 66 6f 72 20 61 20 43 23 20 63 6c .............//.GUID.for.a.C#.cl
8a80 61 73 73 20 6c 69 62 72 61 72 79 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 63 6f 64 65 70 72 6f 6a ass.library:.http://www.codeproj
8aa0 65 63 74 2e 63 6f 6d 2f 52 65 66 65 72 65 6e 63 65 2f 37 32 30 35 31 32 2f 4c 69 73 74 2d 6f 66 ect.com/Reference/720512/List-of
8ac0 2d 56 69 73 75 61 6c 2d 53 74 75 64 69 6f 2d 50 72 6f 6a 65 63 74 2d 54 79 70 65 2d 47 55 49 44 -Visual-Studio-Project-Type-GUID
8ae0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 46 41 45 30 34 45 s.................return."FAE04E
8b00 43 30 2d 33 30 31 46 2d 31 31 44 33 2d 42 46 34 42 2d 30 30 43 30 34 46 37 39 45 46 42 43 22 3b C0-301F-11D3-BF4B-00C04F79EFBC";
8b20 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 43 6f 6d 70 75 74 65 47 75 69 64 ..............return.ComputeGuid
8b40 48 61 73 68 46 6f 72 28 70 72 6f 6a 65 63 74 4e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a HashFor(projectName);.........}.
8b60 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 43 6f 6d 70 75 74 65 47 75 .........static.string.ComputeGu
8b80 69 64 48 61 73 68 46 6f 72 28 73 74 72 69 6e 67 20 69 6e 70 75 74 29 0a 20 20 20 20 20 20 20 20 idHashFor(string.input).........
8ba0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 68 61 73 68 20 3d 20 6d 44 35 2e 43 6f 6d {.............var.hash.=.mD5.Com
8bc0 70 75 74 65 48 61 73 68 28 45 6e 63 6f 64 69 6e 67 2e 44 65 66 61 75 6c 74 2e 47 65 74 42 79 74 puteHash(Encoding.Default.GetByt
8be0 65 73 28 69 6e 70 75 74 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e es(input));.............return.n
8c00 65 77 20 47 75 69 64 28 68 61 73 68 29 2e 54 6f 53 74 72 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 ew.Guid(hash).ToString();.......
8c20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..}.....}.}.....................
8c40 11 00 00 00 50 72 6f 6a 65 63 74 47 65 6e 65 72 61 74 69 6f 6e 00 00 00 0c 00 00 00 56 53 43 6f ....ProjectGeneration.......VSCo
8c60 64 65 45 64 69 74 6f 72 deEditor