diff options
57 files changed, 2241 insertions, 44 deletions
diff --git a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip index 2b6473d3a..eec051e8e 100644 --- a/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip +++ b/Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip @@ -24,10 +24,10 @@ <ROW Property="CompanyLogo" Value="blue.jpg" MultiBuildValue="DefaultBuild:twine_logo_installer_.png_1" Type="1" MsiKey="CompanyLogo"/> <ROW Property="LogoIcon" Value="externalui.ico" MultiBuildValue="DefaultBuild:machine_full_0UZ_icon.ico_1" Type="1" MsiKey="LogoIcon"/> <ROW Property="Manufacturer" Value="Twine Solutions LTD"/> - <ROW Property="ProductCode" Value="1033:{F29F3244-DFC0-46A6-9EA1-1FE5421704E4} " Type="16"/> + <ROW Property="ProductCode" Value="1033:{2577892B-14AF-4543-AF25-6BB7A8F81B9B} " Type="16"/> <ROW Property="ProductLanguage" Value="1033"/> <ROW Property="ProductName" Value="Tango FSE"/> - <ROW Property="ProductVersion" Value="1.0.1.0" Type="32"/> + <ROW Property="ProductVersion" Value="1.0.3.0" Type="32"/> <ROW Property="RUNAPPLICATION" Value="1" Type="4"/> <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/> <ROW Property="UpgradeCode" Value="{0E13CB0D-89F7-465E-9F56-F1CBD6773E6E}"/> @@ -51,8 +51,21 @@ <ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/> <ROW Directory="SQLExaminer_Dir" Directory_Parent="APPDIR" DefaultDir="SQLEXA~1|SQLExaminer" DirectoryOptions="3"/> <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/> + <ROW Directory="cs_Dir" Directory_Parent="APPDIR" DefaultDir="cs" DirectoryOptions="3"/> + <ROW Directory="de_Dir" Directory_Parent="APPDIR" DefaultDir="de" DirectoryOptions="3"/> + <ROW Directory="es_Dir" Directory_Parent="APPDIR" DefaultDir="es" DirectoryOptions="3"/> + <ROW Directory="fr_Dir" Directory_Parent="APPDIR" DefaultDir="fr" DirectoryOptions="3"/> + <ROW Directory="it_Dir" Directory_Parent="APPDIR" DefaultDir="it" DirectoryOptions="3"/> + <ROW Directory="ja_Dir" Directory_Parent="APPDIR" DefaultDir="ja" DirectoryOptions="3"/> + <ROW Directory="ko_Dir" Directory_Parent="APPDIR" DefaultDir="ko" DirectoryOptions="3"/> + <ROW Directory="pl_Dir" Directory_Parent="APPDIR" DefaultDir="pl" DirectoryOptions="3"/> + <ROW Directory="ptBR_Dir" Directory_Parent="APPDIR" DefaultDir="pt-BR" DirectoryOptions="3"/> + <ROW Directory="ru_Dir" Directory_Parent="APPDIR" DefaultDir="ru" DirectoryOptions="3"/> + <ROW Directory="tr_Dir" Directory_Parent="APPDIR" DefaultDir="tr" DirectoryOptions="3"/> <ROW Directory="win7x64_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x64" DirectoryOptions="3"/> <ROW Directory="win7x86_Dir" Directory_Parent="APPDIR" DefaultDir="win7-x86" DirectoryOptions="3"/> + <ROW Directory="zhHans_Dir" Directory_Parent="APPDIR" DefaultDir="zh-Hans" DirectoryOptions="3"/> + <ROW Directory="zhHant_Dir" Directory_Parent="APPDIR" DefaultDir="zh-Hant" DirectoryOptions="3"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent"> <ROW Component="AI_ExePath" ComponentId="{C34670D7-E692-46D3-8154-6A8F253B99E5}" Directory_="APPDIR" Attributes="4" KeyPath="AI_ExePath"/> @@ -84,10 +97,14 @@ <ROW Component="Microsoft.AspNet.SignalR.Client.dll" ComponentId="{A6A1BE43-A965-4718-8B9B-E8BB2D2B6FA9}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.AspNet.SignalR.Client.dll"/> <ROW Component="Microsoft.Azure.ActiveDirectory.GraphClient.dll" ComponentId="{623FE6DD-F44D-4E99-8FD5-E54A608BE511}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Azure.ActiveDirectory.GraphClient.dll"/> <ROW Component="Microsoft.CodeAnalysis.CSharp.Scripting.dll_1" ComponentId="{2D21153E-2576-4B08-8FFD-966EA9074B3E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.Scripting.dll_1"/> + <ROW Component="Microsoft.CodeAnalysis.CSharp.Workspaces.dll" ComponentId="{B3C5C7BB-DDA3-4D96-B6F7-820284A57D70}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.Workspaces.dll"/> <ROW Component="Microsoft.CodeAnalysis.CSharp.dll_1" ComponentId="{19BBB256-0863-41A0-A93F-B98CE50E55F0}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.CSharp.dll_1"/> <ROW Component="Microsoft.CodeAnalysis.Scripting.dll_1" ComponentId="{D262D06F-31E7-4CAE-9B99-6E0A8D0389EF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Scripting.dll_1"/> <ROW Component="Microsoft.CodeAnalysis.Workspaces.dll" ComponentId="{49A621D3-E54C-46A2-8A72-BD89E56DE547}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.Workspaces.dll"/> <ROW Component="Microsoft.CodeAnalysis.dll_1" ComponentId="{D74916F9-4E71-47FC-99FC-4535D7D867CE}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.CodeAnalysis.dll_1"/> + <ROW Component="Microsoft.Data.Edm.dll" ComponentId="{E241416E-25EE-47BE-9DEA-F7AEAE58C0C6}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Edm.dll"/> + <ROW Component="Microsoft.Data.OData.dll" ComponentId="{40495172-6C90-4601-84AD-3522E50C7860}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.OData.dll"/> + <ROW Component="Microsoft.Data.Services.Client.dll" ComponentId="{427064AC-B731-4B07-8D8D-2B9DF00473FD}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Data.Services.Client.dll"/> <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll" ComponentId="{9639E91B-464A-4C60-9703-1AAF4503B269}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"/> <ROW Component="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" ComponentId="{C8FF51E6-B8BB-401D-BD03-58FD08E4C389}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.IdentityModel.Clients.ActiveDirectory.dll"/> <ROW Component="Microsoft.ServiceBus.dll" ComponentId="{B19BCB1E-6C52-4BF7-A128-DDA1DC047D0E}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.ServiceBus.dll"/> @@ -100,19 +117,149 @@ <ROW Component="Microsoft.SqlServer.SqlClrProvider.dll" ComponentId="{663B932B-CC2D-4C7A-BFC6-C24A28947911}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlClrProvider.dll"/> <ROW Component="Microsoft.SqlServer.SqlEnum.dll" ComponentId="{2C0BB304-99D7-40AF-8CC5-190214B83909}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.SqlServer.SqlEnum.dll"/> <ROW Component="Microsoft.TeamFoundation.Client.dll" ComponentId="{1B6E9891-BC09-4453-9F52-574F24B863C3}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.dll"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll" ComponentId="{79CC0292-B6C4-410F-9F62-96FE30AAE8FC}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_1" ComponentId="{B8603FBE-0E40-478A-8340-AE96377CD29E}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_1"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_10" ComponentId="{1F6C03EB-07F7-4B48-9CCB-6BA910B725D3}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_10"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_11" ComponentId="{0EE1C439-C926-4C06-BB39-391717D06886}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_11"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_12" ComponentId="{C4163710-8D72-4D6A-8BCC-0AD5DF2E3FF1}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_12"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_2" ComponentId="{B54FF4D8-970B-4E2A-84A4-4902724DF004}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_2"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_3" ComponentId="{6176E394-41B8-486D-A68A-886E0E990D98}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_3"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_4" ComponentId="{F282F92F-52C6-4727-A3B3-F8AE70E8B6A3}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_4"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_5" ComponentId="{67F1C9D0-75F4-4AC4-AB3E-8F50EE9B7452}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_5"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_6" ComponentId="{C6AE2CCA-103F-4C3E-A7D6-C455F2933735}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_6"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_7" ComponentId="{C5ACFC48-FB51-4B04-BEBF-36D53A097BA0}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_7"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_8" ComponentId="{2382CA1D-E9D8-4D02-88AB-9DAEE344F892}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_8"/> + <ROW Component="Microsoft.TeamFoundation.Client.resources.dll_9" ComponentId="{53465DF0-C38D-4989-82E7-D7EEBC8E7875}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Client.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.Common.dll" ComponentId="{F1ABF859-C507-4C36-80D6-171C43D966EB}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.dll"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll" ComponentId="{DDB77CD7-FF2E-4ADC-8A04-6BF99B00FB6C}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_1" ComponentId="{66772858-12AB-4381-8340-A092C876E2D4}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_1"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_10" ComponentId="{38981361-9724-4F89-98F4-0C8E7E238DD1}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_10"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_11" ComponentId="{2A582473-B8D6-44DC-A62E-B50ADCF2A188}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_11"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_12" ComponentId="{757FBC61-50A3-4BA2-AD85-53EE5164DE3D}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_12"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_2" ComponentId="{08C8490E-6A2E-4091-BBAE-FA55EA9BFF05}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_2"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_3" ComponentId="{980AFD0F-A0BB-4660-ACD0-96E40E146D51}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_3"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_4" ComponentId="{7780FD48-ACDA-426E-8E92-1AB76C7FE501}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_4"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_5" ComponentId="{93DA72F6-03F2-41FC-8819-084E27B29619}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_5"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_6" ComponentId="{77F1C6C1-88C7-44D3-B7B5-85F8C51BB70B}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_6"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_7" ComponentId="{DCA893D5-B31C-41DB-8D26-AA909FEC23D9}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_7"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_8" ComponentId="{2EBFC093-CB80-4FFE-9C74-84E4D7A50D8E}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_8"/> + <ROW Component="Microsoft.TeamFoundation.Common.resources.dll_9" ComponentId="{D84A9165-3417-483D-9533-F815BFFD0760}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Common.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.Core.WebApi.dll" ComponentId="{18ABDE2D-4B43-423F-BE25-4197869067D2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.dll"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll" ComponentId="{600DF3C2-9EC7-4A83-8574-4B602C60877B}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1" ComponentId="{675F95D5-FA40-472B-8B3C-1872FCB85E69}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10" ComponentId="{0A20AA4A-706F-4BE0-BB48-8B469668C2F0}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11" ComponentId="{82296A66-1035-42FE-BCE3-D315054F7B33}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12" ComponentId="{3C2E8859-3574-4477-9FD2-A80AC9A60DC4}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2" ComponentId="{786E000A-54F6-4ECC-A5F4-18801AA4D1D9}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3" ComponentId="{757B16E5-0ADB-4F2C-A421-C5699DA58FE5}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4" ComponentId="{B220D3DA-6EAD-42C3-B3FF-85DE57B95D3C}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5" ComponentId="{4C23DBAB-A947-402D-BFAB-8CC638679C35}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6" ComponentId="{162EB4D6-0CA3-45BC-BF77-1CC735E21829}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7" ComponentId="{BEAD12EC-6A24-4579-A54A-B4A20A79FC78}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8" ComponentId="{28FEC59B-420C-4A7E-8339-426D7E1F6B7F}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8"/> + <ROW Component="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9" ComponentId="{706E6117-8FC5-44F4-AA19-9531A091046C}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.Diff.dll" ComponentId="{A9022AA7-0A3A-4349-9FDA-F8E0D686B8D6}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Diff.dll"/> <ROW Component="Microsoft.TeamFoundation.Work.WebApi.dll" ComponentId="{6588A696-5B35-4047-BFB4-0BB3DF658E1C}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.Work.WebApi.dll"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" ComponentId="{E67B3909-1475-4D71-8B9B-243446473DB2}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" ComponentId="{76044DC4-0F7E-46FD-A7A7-841B742C6983}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_10" ComponentId="{53D16D1B-179A-4C9B-9319-FE9184609602}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_10"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_11" ComponentId="{6BAFBA73-245D-4B59-9B50-EAF9F0F7D3B9}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_11"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_12" ComponentId="{2E63A7C2-8A5C-48DB-A0AA-FC01065CD7FF}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_12"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_1" ComponentId="{9452855A-BDBB-48C1-B099-37614C3083C3}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_1"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_2" ComponentId="{B80DF800-0725-4570-AEFB-5B1D4ED208A2}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_2"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_3" ComponentId="{5AC1703D-6CE3-4CBC-BC74-B7F002A9B094}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_3"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_4" ComponentId="{7055EBE3-3393-4158-B749-625F3750903E}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_4"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_5" ComponentId="{1CE81BF4-32E6-4699-834D-72E5066F3BA9}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_5"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_6" ComponentId="{03958F6B-6345-4B04-8735-CA8A2C2BF70B}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_6"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_7" ComponentId="{E696F9B0-2D8A-4DA7-BC6B-9E40B74FF82B}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_7"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_8" ComponentId="{C9F8C5C4-0F58-4E87-8093-BD552D78B8CE}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_8"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_9" ComponentId="{F424ABEA-BAED-420B-A53B-5188D9F40B0A}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_9"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources" ComponentId="{F1075215-1FE3-45B1-833E-AB2F3F173992}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.dll" ComponentId="{3DCDC5D8-66CD-423F-95DD-A8B66C057978}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" ComponentId="{EC6703ED-7096-43A0-BF31-3AEA825E5CC6}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1" ComponentId="{E81851FF-D160-4546-8AFA-90492E2F369F}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10" ComponentId="{4E6D0668-968A-4778-8E43-1D2DA675E0DF}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11" ComponentId="{B5CDD9DC-8940-4BEF-94D3-55118E60D09F}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12" ComponentId="{25AB1B19-6C52-4AD8-A673-37F15BC0F95F}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2" ComponentId="{EBD40518-19A5-4C56-8468-CC870625F66A}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3" ComponentId="{55BFEB70-0DE0-41D2-B43D-7F9842ED0E82}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4" ComponentId="{D1B7736F-1316-4EA7-839A-509E8A6C442B}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5" ComponentId="{FBB5A01E-E694-4AF6-A9BA-C58D121468C3}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6" ComponentId="{46D93E07-0752-4507-8076-481AA5B94E9A}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7" ComponentId="{1F79E159-E7AD-4AC4-B34C-439084402ED1}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8" ComponentId="{2B7AC328-A13B-48BF-845A-E91F8FE64A0C}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9" ComponentId="{A4563722-BACA-4AF2-9333-38800E375AB1}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.dll" ComponentId="{CD70CBEE-9217-4403-9325-967B0A2555CD}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" ComponentId="{436CB3CF-312D-4F28-9F61-A6D7E938E3CC}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1" ComponentId="{8057DDF1-E58B-4AAD-9C70-CF9675D43053}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10" ComponentId="{8B4B0F90-D6BC-4B38-919E-DE4619DBF7FE}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11" ComponentId="{33B5EF93-ED4D-4110-BFF2-216B96047DAA}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12" ComponentId="{ADE9A3C9-3D45-4D4A-AC88-88BE9DB4509E}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2" ComponentId="{9BFBCCAC-3BCF-4F96-806F-7DD257EC36BE}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3" ComponentId="{74F6E7F7-7E55-45DC-87AE-5DD5539ECC1D}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4" ComponentId="{F08F8F60-699A-46C1-8D31-953C9CEF0631}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5" ComponentId="{C58FCC9D-677C-4560-9E93-7900552A48D5}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6" ComponentId="{4DEA665C-D978-4528-A372-414409CAA68B}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7" ComponentId="{5C7D7ECF-6CAD-44F1-85E8-06E7DCC257F0}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8" ComponentId="{3AAB1F76-7B08-46FA-963D-707AD963D59B}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9" ComponentId="{7FF0AFD9-A5C9-4684-A550-534912520EAC}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" ComponentId="{A7420E27-FCC6-4CBA-A635-1C4F527C515A}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" ComponentId="{F62BEF5C-7B19-4709-9A88-1FA43BB683D0}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1" ComponentId="{376FC45B-A292-45D9-BABD-C62BA41686B8}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10" ComponentId="{81F7938C-DF13-4F1B-B79B-B8B7C1154426}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11" ComponentId="{C9CF4488-C935-40B6-9A42-66B93530673F}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12" ComponentId="{0A2F9DD0-CC53-4E3D-B3C5-4FF1D493E162}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2" ComponentId="{E198461A-903A-4570-B144-22EF3416D697}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3" ComponentId="{6CE02AE1-BF1C-4DD4-9895-77D320FA8446}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4" ComponentId="{9C156392-8930-446F-83FF-A05B6E2475B4}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5" ComponentId="{FD3E5BC4-CF0D-4856-93C2-99FD830627D5}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6" ComponentId="{1F22515B-DD6D-4ADF-9E69-02A4ED5230F2}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7" ComponentId="{2EEA64FE-D406-4CF8-B86F-63A6BEDF6E4A}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8" ComponentId="{0260ED94-A283-4DEB-B2F5-72836C528EB9}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8"/> + <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9" ComponentId="{F9D60078-3E1B-408A-8381-B8D6D6C9AF69}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9"/> <ROW Component="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" ComponentId="{73EED192-EA47-4773-8D12-E0F9FB011EB8}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll"/> <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.dll" ComponentId="{6502617E-EF70-48C2-A9A6-80A30BA01489}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" ComponentId="{BD397A2C-24D2-4B22-BD10-0203FA5DC6DD}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1" ComponentId="{ECFD0FFD-CE3C-42F9-AE1B-7B50AA05763D}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10" ComponentId="{8AC98F9C-A7DD-4628-9EB1-EF6560394D8D}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11" ComponentId="{B4FF370D-E8BE-4537-AB40-FF50AFF3D5F9}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12" ComponentId="{7CE78DDA-5B79-48F5-AE94-D9B39C279ED7}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2" ComponentId="{6F07CC30-A01C-46E3-BFA5-145D44F2E012}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3" ComponentId="{1A1AD5CB-9E1E-4EF2-9E16-659568A3B6B4}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4" ComponentId="{3A635D9A-E658-40AE-80EE-76CFD6D4689C}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5" ComponentId="{0288E947-C118-46D6-A76B-F46C4E42EC79}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6" ComponentId="{1224A405-54D3-40BB-A421-61F7FA3B13B4}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7" ComponentId="{236A7BF4-98A1-4BDE-9853-8386E1C582CB}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8" ComponentId="{48E607BB-1DAF-45F5-8E95-0E418B0FEDD3}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8"/> + <ROW Component="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9" ComponentId="{AF2AE577-A057-44CE-8912-CD096AC6A360}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9"/> <ROW Component="Microsoft.VisualStudio.Services.Common.dll" ComponentId="{13946089-BCD5-48A5-A1A6-3891EF5D890C}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll" ComponentId="{FA206CB9-D8D5-4C66-9181-C23BE1F3FEA1}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_1" ComponentId="{41F1C1F1-9D48-4353-90D3-56CC2926AEE0}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_1"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_10" ComponentId="{D4BF1FF0-AF4D-4204-839C-9DB3E3811A14}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_10"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_11" ComponentId="{0618719A-2D5A-4260-8F08-CDDA125ACAEA}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_11"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_12" ComponentId="{651AFDCD-0B79-4864-B0C1-E82BD63201C5}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_12"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_2" ComponentId="{728927E3-C358-4269-9596-E665F4D6CB87}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_2"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_3" ComponentId="{E634D6BD-5CF4-4E7F-859F-132A709DFCAB}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_3"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_4" ComponentId="{589CA5F9-0FE1-431A-A39E-CF8B282EC69F}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_4"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_5" ComponentId="{B7EEEEEB-C32C-4C76-8D7F-A5C0BBA91358}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_5"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_6" ComponentId="{F19CF88C-ECC7-4511-AEF7-ACD6B42B1702}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_6"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_7" ComponentId="{F3D678EA-6A88-469F-B32E-104D53B9A614}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_7"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_8" ComponentId="{723E53D7-F517-4D99-A326-9ED4314DA4DD}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_8"/> + <ROW Component="Microsoft.VisualStudio.Services.Common.resources.dll_9" ComponentId="{67349E83-70EB-4F56-898F-97B30BDCAD5E}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.Common.resources.dll_9"/> <ROW Component="Microsoft.VisualStudio.Services.WebApi.dll" ComponentId="{C7189E85-DD7D-4AE6-B417-4EC21AF1CE83}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll" ComponentId="{F5269611-5AA5-4336-897E-5B08D35BA308}" Directory_="cs_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_1" ComponentId="{08781642-9B05-4F4B-BAC5-97FFB7FB66FA}" Directory_="de_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_1"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_10" ComponentId="{29265020-D633-4E60-A598-AAFE6EE4C6C7}" Directory_="tr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_10"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_11" ComponentId="{94D73E38-1124-40AA-BEB9-5D8C4F33C690}" Directory_="zhHans_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_11"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_12" ComponentId="{3C31BF06-53C5-4C93-91D6-11B6AF88D807}" Directory_="zhHant_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_12"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_2" ComponentId="{F9062766-0CEF-4025-A32A-9EBE8DC79CCE}" Directory_="es_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_2"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_3" ComponentId="{CA10224E-D44F-41D3-B4B5-1739F34E7D13}" Directory_="fr_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_3"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_4" ComponentId="{E39602DE-A75A-48C6-B866-265EEAC3F6F6}" Directory_="it_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_4"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_5" ComponentId="{CA04C478-0AF0-4FC4-BFAD-550B70E9F785}" Directory_="ja_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_5"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_6" ComponentId="{FD6354C0-230E-4623-A58E-92D2ABA18762}" Directory_="ko_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_6"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_7" ComponentId="{473F6946-C13C-4C97-AE08-DC149FD59362}" Directory_="pl_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_7"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_8" ComponentId="{2427E3CF-5073-40B3-82D5-0D0F00662DE0}" Directory_="ptBR_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_8"/> + <ROW Component="Microsoft.VisualStudio.Services.WebApi.resources.dll_9" ComponentId="{ED44D5E8-5118-455E-9454-7FDD5BFDC43A}" Directory_="ru_Dir" Attributes="0" KeyPath="Microsoft.VisualStudio.Services.WebApi.resources.dll_9"/> <ROW Component="Microsoft.WITDataStore32.dll" ComponentId="{4C13EE15-BCEC-400D-A528-50AF945B8F8D}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WITDataStore32.dll"/> <ROW Component="Microsoft.Win32.Primitives.dll" ComponentId="{BF151A6C-FFF4-4A01-BC24-A9F7DD9A5FDF}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.Win32.Primitives.dll"/> <ROW Component="Microsoft.WindowsAPICodePack.Shell.dll" ComponentId="{9012CCFC-2D61-447A-BD29-4A21EB0F931B}" Directory_="APPDIR" Attributes="0" KeyPath="Microsoft.WindowsAPICodePack.Shell.dll"/> @@ -232,6 +379,7 @@ <ROW Component="System.Security.Cryptography.X509Certificates.dll" ComponentId="{00F4F6C1-6B4D-4DFD-BD59-72EE690FC246}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Cryptography.X509Certificates.dll"/> <ROW Component="System.Security.Principal.dll" ComponentId="{127424E0-24F8-456F-BBEC-F23E331E1669}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.Principal.dll"/> <ROW Component="System.Security.SecureString.dll" ComponentId="{C40FA779-F72E-4CF2-9A42-368ADB1D05E4}" Directory_="APPDIR" Attributes="0" KeyPath="System.Security.SecureString.dll"/> + <ROW Component="System.Spatial.dll" ComponentId="{B880CEB4-0CD8-47A2-A935-18E80A65E916}" Directory_="APPDIR" Attributes="0" KeyPath="System.Spatial.dll"/> <ROW Component="System.Text.Encoding.CodePages.dll_1" ComponentId="{9E367053-E910-4CE6-BE25-3065F9E18374}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.CodePages.dll_1"/> <ROW Component="System.Text.Encoding.Extensions.dll" ComponentId="{C177E423-71AE-4FB7-BDC1-1FFF650EFEBC}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.Extensions.dll"/> <ROW Component="System.Text.Encoding.dll" ComponentId="{903DBCE1-0C97-4F99-BF85-41B54EF26B33}" Directory_="APPDIR" Attributes="0" KeyPath="System.Text.Encoding.dll"/> @@ -272,6 +420,7 @@ <ROW Component="Tango.FSE.Firmware.dll" ComponentId="{39C1ACAC-0329-4779-BBD7-59921B537853}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.Firmware.dll"/> <ROW Component="Tango.FSE.PPCConsole.dll" ComponentId="{439D6114-54E3-4FCB-A01E-148ECB966139}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.PPCConsole.dll"/> <ROW Component="Tango.FSE.Procedures.dll" ComponentId="{FDA82EB3-2A9B-4A57-AB30-970433B497BE}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.Procedures.dll"/> + <ROW Component="Tango.FSE.Stubs.dll" ComponentId="{1EC53E3E-28E2-41F9-9FD2-3075C3320111}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.Stubs.dll"/> <ROW Component="Tango.FSE.UI.exe" ComponentId="{79C3B470-6540-474A-90AE-F0E7C34AEA43}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.UI.exe"/> <ROW Component="Tango.FSE.Upgrade.dll" ComponentId="{883D8D60-CC3C-4F25-B8EC-8CA100F83DD0}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.Upgrade.dll"/> <ROW Component="Tango.FSE.UsersAndRoles.dll" ComponentId="{61296AF0-2382-4A54-BEBD-C798C0F00B02}" Directory_="APPDIR" Attributes="0" KeyPath="Tango.FSE.UsersAndRoles.dll"/> @@ -310,10 +459,10 @@ <ROW Component="msvcp140d.dll" ComponentId="{6B725C2A-71DF-44D3-A761-EB3D28379956}" Directory_="APPDIR" Attributes="0" KeyPath="msvcp140d.dll"/> <ROW Component="netstandard.dll" ComponentId="{27E9F013-8E50-4251-9C63-C53A5AA66DD1}" Directory_="APPDIR" Attributes="0" KeyPath="netstandard.dll"/> <ROW Component="protobufnet.dll" ComponentId="{ED37672F-F343-44FB-8FBD-F9003BD20D52}" Directory_="APPDIR" Attributes="0" KeyPath="protobufnet.dll"/> - <ROW Component="turbojpeg.dll" ComponentId="{8BFA83DF-71E2-4EF2-B53A-F61C87B06F64}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> - <ROW Component="turbojpeg.dll.meta" ComponentId="{75E8DD23-A09C-4B0C-B5DA-D9FC1FC540C1}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/> - <ROW Component="turbojpeg.dll.meta_1" ComponentId="{C4C6A5D4-FE58-46F5-B4C0-986F1B9EDEC8}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> - <ROW Component="turbojpeg.dll_1" ComponentId="{1743C0ED-1F8A-4E56-93AB-511EE40DA656}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> + <ROW Component="turbojpeg.dll" ComponentId="{7E419F79-6BA2-4C8E-9A53-628577A67D45}" Directory_="win7x64_Dir" Attributes="256" KeyPath="turbojpeg.dll"/> + <ROW Component="turbojpeg.dll.meta" ComponentId="{05FF724D-165F-47C4-8019-ADB5431A3655}" Directory_="win7x64_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta" Type="0"/> + <ROW Component="turbojpeg.dll.meta_1" ComponentId="{A1EB946E-CC09-4210-813A-9CB3639EA14B}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll.meta_1" Type="0"/> + <ROW Component="turbojpeg.dll_1" ComponentId="{D0DB10F1-D363-4770-A3E3-12149E42AA7A}" Directory_="win7x86_Dir" Attributes="0" KeyPath="turbojpeg.dll_1"/> <ROW Component="ucrtbased.dll" ComponentId="{4188BB88-A714-488A-A02D-98710ACC94F5}" Directory_="APPDIR" Attributes="0" KeyPath="ucrtbased.dll"/> <ROW Component="vcruntime140.dll" ComponentId="{078A42AF-E964-4CA3-8A9C-CBE6D0FD76AA}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140.dll"/> <ROW Component="vcruntime140d.dll" ComponentId="{AF42196B-67BB-4EBA-8C3A-38B9527F9775}" Directory_="APPDIR" Attributes="0" KeyPath="vcruntime140d.dll"/> @@ -624,10 +773,6 @@ <ROW File="Tango.WebRTC.dll" Component_="Tango.WebRTC.dll" FileName="TANGOW~2.DLL|Tango.WebRTC.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.WebRTC.dll" SelfReg="false"/> <ROW File="Tango.WebRTC.pdb" Component_="Tango.WebRTC.dll" FileName="TANGOW~2.PDB|Tango.WebRTC.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.WebRTC.pdb" SelfReg="false"/> <ROW File="WebRtc.NET.dll" Component_="WebRtc.NET.dll" FileName="WEBRTC~1.DLL|WebRtc.NET.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\WebRtc.NET.dll" SelfReg="false"/> - <ROW File="turbojpeg.dll" Component_="turbojpeg.dll" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x64\turbojpeg.dll" SelfReg="false"/> - <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x64\turbojpeg.dll.meta" SelfReg="false"/> - <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll" SelfReg="false"/> - <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll.meta" SelfReg="false"/> <ROW File="WindowsInput.dll" Component_="WindowsInput.dll" FileName="WINDOW~1.DLL|WindowsInput.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\WindowsInput.dll" SelfReg="false"/> <ROW File="Z.EntityFramework.Extensions.dll" Component_="Z.EntityFramework.Extensions.dll" FileName="ZENTIT~1.DLL|Z.EntityFramework.Extensions.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Z.EntityFramework.Extensions.dll" SelfReg="false"/> <ROW File="Z.EntityFramework.Plus.EF6.dll" Component_="Z.EntityFramework.Plus.EF6.dll" FileName="ZENTIT~2.DLL|Z.EntityFramework.Plus.EF6.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Z.EntityFramework.Plus.EF6.dll" SelfReg="false"/> @@ -642,14 +787,109 @@ <ROW File="Tango.FSE.UsersAndRoles.pdb" Component_="Tango.FSE.UsersAndRoles.dll" FileName="TANGO~10.PDB|Tango.FSE.UsersAndRoles.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.UsersAndRoles.pdb" SelfReg="false"/> <ROW File="Tango.Visuals.dll" Component_="Tango.Visuals.dll" FileName="TANGOV~1.DLL|Tango.Visuals.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.Visuals.dll" SelfReg="false"/> <ROW File="Tango.Visuals.pdb" Component_="Tango.Visuals.dll" FileName="TANGOV~1.PDB|Tango.Visuals.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.Visuals.pdb" SelfReg="false"/> + <ROW File="diagnostics.tdp" Component_="Dragablz.xml" FileName="DIAGNO~1.TDP|diagnostics.tdp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\diagnostics.tdp" SelfReg="false"/> + <ROW File="ffmpeg.exe" Component_="ffmpeg.exe" FileName="ffmpeg.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ffmpeg.exe" SelfReg="false" DigSign="true"/> + <ROW File="Tango.CSV.dll" Component_="Tango.CSV.dll" FileName="TANGOC~4.DLL|Tango.CSV.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.CSV.dll" SelfReg="false"/> + <ROW File="Tango.CSV.pdb" Component_="Tango.CSV.dll" FileName="TANGOC~3.PDB|Tango.CSV.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.CSV.pdb" SelfReg="false"/> + <ROW File="Tango.FSE.Procedures.dll" Component_="Tango.FSE.Procedures.dll" FileName="TANGO~11.DLL|Tango.FSE.Procedures.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.dll" SelfReg="false"/> + <ROW File="Tango.FSE.Procedures.dll.config" Component_="Dragablz.xml" FileName="TANGOF~9.CON|Tango.FSE.Procedures.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.dll.config" SelfReg="false"/> + <ROW File="Tango.FSE.Procedures.pdb" Component_="Tango.FSE.Procedures.dll" FileName="TANGO~11.PDB|Tango.FSE.Procedures.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.pdb" SelfReg="false"/> + <ROW File="Tango.FSE.Procedures.xml" Component_="Dragablz.xml" FileName="TANGOF~2.XML|Tango.FSE.Procedures.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.xml" SelfReg="false"/> + <ROW File="Microsoft.CodeAnalysis.CSharp.Workspaces.dll" Component_="Microsoft.CodeAnalysis.CSharp.Workspaces.dll" FileName="MICROS~2.DLL|Microsoft.CodeAnalysis.CSharp.Workspaces.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.CodeAnalysis.CSharp.Workspaces.dll" SelfReg="false"/> + <ROW File="Microsoft.Data.Edm.dll" Component_="Microsoft.Data.Edm.dll" FileName="MICRO~21.DLL|Microsoft.Data.Edm.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.Data.Edm.dll" SelfReg="false"/> + <ROW File="Microsoft.Data.OData.dll" Component_="Microsoft.Data.OData.dll" FileName="MICRO~24.DLL|Microsoft.Data.OData.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.Data.OData.dll" SelfReg="false"/> + <ROW File="Microsoft.Data.Services.Client.dll" Component_="Microsoft.Data.Services.Client.dll" FileName="MICRO~26.DLL|Microsoft.Data.Services.Client.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.Data.Services.Client.dll" SelfReg="false"/> + <ROW File="System.Spatial.dll" Component_="System.Spatial.dll" FileName="SYSTEM~2.DLL|System.Spatial.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Spatial.dll" SelfReg="false"/> + <ROW File="Tango.FSE.Stubs.dll" Component_="Tango.FSE.Stubs.dll" FileName="TANGOF~9.DLL|Tango.FSE.Stubs.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Stubs.dll" SelfReg="false"/> + <ROW File="Tango.FSE.Stubs.dll.config" Component_="Dragablz.xml" FileName="TANGOF~5.CON|Tango.FSE.Stubs.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Stubs.dll.config" SelfReg="false"/> + <ROW File="Tango.FSE.Stubs.pdb" Component_="Tango.FSE.Stubs.dll" FileName="TANGOF~9.PDB|Tango.FSE.Stubs.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Stubs.pdb" SelfReg="false"/> + <ROW File="Tango.FSE.Stubs.xml" Component_="Dragablz.xml" FileName="TANGOF~1.XML|Tango.FSE.Stubs.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Stubs.xml" SelfReg="false"/> + <ROW File="turbojpeg.dll" Component_="turbojpeg.dll" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x64\turbojpeg.dll" SelfReg="false"/> + <ROW File="turbojpeg.dll.meta" Component_="turbojpeg.dll.meta" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x64\turbojpeg.dll.meta" SelfReg="false"/> + <ROW File="turbojpeg.dll_1" Component_="turbojpeg.dll_1" FileName="TURBOJ~1.DLL|turbojpeg.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll" SelfReg="false"/> + <ROW File="turbojpeg.dll.meta_1" Component_="turbojpeg.dll.meta_1" FileName="TURBOJ~1.MET|turbojpeg.dll.meta" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\win7-x86\turbojpeg.dll.meta" SelfReg="false"/> <ROW File="ColorMine.pdb" Component_="ColorMine.dll" FileName="COLORM~1.PDB|ColorMine.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ColorMine.pdb" SelfReg="false"/> <ROW File="ControlzEx.pdb" Component_="ControlzEx.dll" FileName="CONTRO~1.PDB|ControlzEx.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ControlzEx.pdb" SelfReg="false"/> - <ROW File="diagnostics.tdp" Component_="Dragablz.xml" FileName="DIAGNO~1.TDP|diagnostics.tdp" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\diagnostics.tdp" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll" Component_="Microsoft.TeamFoundation.Client.resources.dll" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll" Component_="Microsoft.TeamFoundation.Common.resources.dll" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll" Component_="Microsoft.VisualStudio.Services.Common.resources.dll" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\cs\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_1" Component_="Microsoft.TeamFoundation.Client.resources.dll_1" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_1" Component_="Microsoft.TeamFoundation.Common.resources.dll_1" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_1" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_1" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_1" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_1" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_1" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\de\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> <ROW File="DocumentFormat.OpenXml.xml" Component_="Dragablz.xml" FileName="DOCUME~1.XML|DocumentFormat.OpenXml.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\DocumentFormat.OpenXml.xml" SelfReg="false"/> <ROW File="EntityFramework.SqlServer.xml" Component_="Dragablz.xml" FileName="ENTITY~1.XML|EntityFramework.SqlServer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\EntityFramework.SqlServer.xml" SelfReg="false"/> <ROW File="EntityFramework.xml" Component_="Dragablz.xml" FileName="ENTITY~2.XML|EntityFramework.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\EntityFramework.xml" SelfReg="false"/> - <ROW File="ffmpeg.exe" Component_="ffmpeg.exe" FileName="ffmpeg.exe" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ffmpeg.exe" SelfReg="false" DigSign="true"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_2" Component_="Microsoft.TeamFoundation.Client.resources.dll_2" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_2" Component_="Microsoft.TeamFoundation.Common.resources.dll_2" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_2" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_2" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_2" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_2" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_2" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\es\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_3" Component_="Microsoft.TeamFoundation.Client.resources.dll_3" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_3" Component_="Microsoft.TeamFoundation.Common.resources.dll_3" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_3" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_3" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_3" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_3" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_3" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\fr\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Humanizer.xml" Component_="Dragablz.xml" FileName="HUMANI~1.XML|Humanizer.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Humanizer.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_4" Component_="Microsoft.TeamFoundation.Client.resources.dll_4" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_4" Component_="Microsoft.TeamFoundation.Common.resources.dll_4" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_4" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_4" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_4" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_4" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_4" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\it\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_5" Component_="Microsoft.TeamFoundation.Client.resources.dll_5" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_5" Component_="Microsoft.TeamFoundation.Common.resources.dll_5" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_5" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_5" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_5" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_5" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_5" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ja\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="JWT.xml" Component_="Dragablz.xml" FileName="JWT.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\JWT.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_6" Component_="Microsoft.TeamFoundation.Client.resources.dll_6" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_6" Component_="Microsoft.TeamFoundation.Common.resources.dll_6" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_6" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_6" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_6" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_6" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_6" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ko\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> <ROW File="LiteDB.xml" Component_="Dragablz.xml" FileName="LiteDB.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiteDB.xml" SelfReg="false"/> + <ROW File="LiveCharts.pdb" Component_="LiveCharts.dll" FileName="LIVECH~1.PDB|LiveCharts.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.pdb" SelfReg="false"/> + <ROW File="LiveCharts.Wpf.pdb" Component_="LiveCharts.Wpf.dll" FileName="LIVECH~2.PDB|LiveCharts.Wpf.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.Wpf.pdb" SelfReg="false"/> + <ROW File="LiveCharts.Wpf.xml" Component_="Dragablz.xml" FileName="LIVECH~1.XML|LiveCharts.Wpf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.Wpf.xml" SelfReg="false"/> + <ROW File="LiveCharts.xml" Component_="Dragablz.xml" FileName="LIVECH~2.XML|LiveCharts.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\LiveCharts.xml" SelfReg="false"/> <ROW File="MahApps.Metro.pdb" Component_="MahApps.Metro.dll" FileName="MAHAPP~1.PDB|MahApps.Metro.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MahApps.Metro.pdb" SelfReg="false"/> <ROW File="MahApps.Metro.xml" Component_="Dragablz.xml" FileName="MAHAPP~1.XML|MahApps.Metro.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MahApps.Metro.xml" SelfReg="false"/> <ROW File="MaterialDesignColors.pdb" Component_="MaterialDesignColors.dll" FileName="MATERI~1.PDB|MaterialDesignColors.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MaterialDesignColors.pdb" SelfReg="false"/> @@ -657,21 +897,112 @@ <ROW File="MaterialDesignThemes.Wpf.xml" Component_="Dragablz.xml" FileName="MATERI~1.XML|MaterialDesignThemes.Wpf.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\MaterialDesignThemes.Wpf.xml" SelfReg="false"/> <ROW File="Microsoft.AspNet.SignalR.Client.pdb" Component_="Microsoft.AspNet.SignalR.Client.dll" FileName="MICROS~1.PDB|Microsoft.AspNet.SignalR.Client.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.AspNet.SignalR.Client.pdb" SelfReg="false"/> <ROW File="Microsoft.AspNet.SignalR.Client.xml" Component_="Dragablz.xml" FileName="MICROS~1.XML|Microsoft.AspNet.SignalR.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.AspNet.SignalR.Client.xml" SelfReg="false"/> + <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Component_="Microsoft.IdentityModel.Clients.ActiveDirectory.dll" FileName="MICROS~2.PDB|Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.pdb" SelfReg="false"/> + <ROW File="Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Component_="Dragablz.xml" FileName="MICROS~2.XML|Microsoft.IdentityModel.Clients.ActiveDirectory.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.IdentityModel.Clients.ActiveDirectory.xml" SelfReg="false"/> + <ROW File="Microsoft.ServiceBus.xml" Component_="Dragablz.xml" FileName="MICROS~3.XML|Microsoft.ServiceBus.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.ServiceBus.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.ConnectionInfo.xml" Component_="Dragablz.xml" FileName="MICROS~4.XML|Microsoft.SqlServer.ConnectionInfo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.ConnectionInfo.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Dmf.Common.xml" Component_="Dragablz.xml" FileName="MICROS~5.XML|Microsoft.SqlServer.Dmf.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.Dmf.Common.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Management.Sdk.Sfc.xml" Component_="Dragablz.xml" FileName="MICROS~6.XML|Microsoft.SqlServer.Management.Sdk.Sfc.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.Management.Sdk.Sfc.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.ServiceBrokerEnum.xml" Component_="Dragablz.xml" FileName="MICROS~7.XML|Microsoft.SqlServer.ServiceBrokerEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.ServiceBrokerEnum.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.Smo.xml" Component_="Dragablz.xml" FileName="MICROS~8.XML|Microsoft.SqlServer.Smo.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.Smo.xml" SelfReg="false"/> + <ROW File="Microsoft.SqlServer.SqlEnum.xml" Component_="Dragablz.xml" FileName="MICROS~9.XML|Microsoft.SqlServer.SqlEnum.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.SqlServer.SqlEnum.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.xml" Component_="Dragablz.xml" FileName="MICRO~10.XML|Microsoft.TeamFoundation.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Client.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.xml" Component_="Dragablz.xml" FileName="MICRO~11.XML|Microsoft.TeamFoundation.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Common.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~12.XML|Microsoft.TeamFoundation.Core.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Core.WebApi.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Diff.xml" Component_="Dragablz.xml" FileName="MICRO~13.XML|Microsoft.TeamFoundation.Diff.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Diff.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Work.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~14.XML|Microsoft.TeamFoundation.Work.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.Work.WebApi.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.xml" Component_="Dragablz.xml" FileName="MICRO~15.XML|Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.xml" Component_="Dragablz.xml" FileName="MICRO~16.XML|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.xml" Component_="Dragablz.xml" FileName="MICRO~17.XML|Microsoft.TeamFoundation.WorkItemTracking.Client.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Client.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.xml" Component_="Dragablz.xml" FileName="MICRO~18.XML|Microsoft.TeamFoundation.WorkItemTracking.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Common.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.xml" Component_="Dragablz.xml" FileName="MICRO~19.XML|Microsoft.TeamFoundation.WorkItemTracking.Proxy.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.Proxy.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~20.XML|Microsoft.TeamFoundation.WorkItemTracking.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.TeamFoundation.WorkItemTracking.WebApi.xml" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.xml" Component_="Dragablz.xml" FileName="MICRO~21.XML|Microsoft.VisualStudio.Services.Client.Interactive.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.VisualStudio.Services.Client.Interactive.xml" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.xml" Component_="Dragablz.xml" FileName="MICRO~22.XML|Microsoft.VisualStudio.Services.Common.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.VisualStudio.Services.Common.xml" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.xml" Component_="Dragablz.xml" FileName="MICRO~23.XML|Microsoft.VisualStudio.Services.WebApi.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.VisualStudio.Services.WebApi.xml" SelfReg="false"/> + <ROW File="Microsoft.WindowsAPICodePack.Shell.xml" Component_="Dragablz.xml" FileName="MICRO~24.XML|Microsoft.WindowsAPICodePack.Shell.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.WindowsAPICodePack.Shell.xml" SelfReg="false"/> + <ROW File="Microsoft.WindowsAPICodePack.xml" Component_="Dragablz.xml" FileName="MICRO~25.XML|Microsoft.WindowsAPICodePack.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Microsoft.WindowsAPICodePack.xml" SelfReg="false"/> <ROW File="Newtonsoft.Json.xml" Component_="Dragablz.xml" FileName="NEWTON~1.XML|Newtonsoft.Json.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Newtonsoft.Json.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_7" Component_="Microsoft.TeamFoundation.Client.resources.dll_7" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_7" Component_="Microsoft.TeamFoundation.Common.resources.dll_7" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_7" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_7" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_7" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_7" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_7" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pl\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> <ROW File="protobufnet.xml" Component_="Dragablz.xml" FileName="PROTOB~1.XML|protobuf-net.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\protobuf-net.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_8" Component_="Microsoft.TeamFoundation.Client.resources.dll_8" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_8" Component_="Microsoft.TeamFoundation.Common.resources.dll_8" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_8" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_8" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_8" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_8" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_8" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\pt-BR\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Quamotion.TurboJpegWrapper.pdb" Component_="Quamotion.TurboJpegWrapper.dll" FileName="QUAMOT~1.PDB|Quamotion.TurboJpegWrapper.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Quamotion.TurboJpegWrapper.pdb" SelfReg="false"/> <ROW File="RealTimeGraphX.pdb" Component_="RealTimeGraphX.dll" FileName="REALTI~1.PDB|RealTimeGraphX.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\RealTimeGraphX.pdb" SelfReg="false"/> <ROW File="RealTimeGraphX.WPF.pdb" Component_="RealTimeGraphX.WPF.dll" FileName="REALTI~2.PDB|RealTimeGraphX.WPF.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\RealTimeGraphX.WPF.pdb" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_9" Component_="Microsoft.TeamFoundation.Client.resources.dll_9" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_9" Component_="Microsoft.TeamFoundation.Common.resources.dll_9" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.reso_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_9" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_9" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_9" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_9" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_9" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\ru\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="SharpDX.Direct3D11.xml" Component_="Dragablz.xml" FileName="SHARPD~1.XML|SharpDX.Direct3D11.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SharpDX.Direct3D11.xml" SelfReg="false"/> + <ROW File="SharpDX.DXGI.xml" Component_="Dragablz.xml" FileName="SHARPD~2.XML|SharpDX.DXGI.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SharpDX.DXGI.xml" SelfReg="false"/> + <ROW File="SharpDX.Mathematics.xml" Component_="Dragablz.xml" FileName="SHARPD~3.XML|SharpDX.Mathematics.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SharpDX.Mathematics.xml" SelfReg="false"/> + <ROW File="SharpDX.xml" Component_="Dragablz.xml" FileName="SharpDX.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\SharpDX.xml" SelfReg="false"/> <ROW File="System.Data.SQLite.xml" Component_="Dragablz.xml" FileName="SYSTEM~1.XML|System.Data.SQLite.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Data.SQLite.xml" SelfReg="false"/> - <ROW File="System.Reactive.Core.xml" Component_="Dragablz.xml" FileName="SYSTEM~2.XML|System.Reactive.Core.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Core.xml" SelfReg="false"/> - <ROW File="System.Reactive.Interfaces.xml" Component_="Dragablz.xml" FileName="SYSTEM~3.XML|System.Reactive.Interfaces.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Interfaces.xml" SelfReg="false"/> - <ROW File="System.Reactive.Linq.xml" Component_="Dragablz.xml" FileName="SYSTEM~4.XML|System.Reactive.Linq.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Linq.xml" SelfReg="false"/> - <ROW File="System.Reactive.PlatformServices.xml" Component_="Dragablz.xml" FileName="SYSTEM~5.XML|System.Reactive.PlatformServices.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.PlatformServices.xml" SelfReg="false"/> - <ROW File="Tango.CSV.dll" Component_="Tango.CSV.dll" FileName="TANGOC~4.DLL|Tango.CSV.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.CSV.dll" SelfReg="false"/> - <ROW File="Tango.CSV.pdb" Component_="Tango.CSV.dll" FileName="TANGOC~3.PDB|Tango.CSV.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.CSV.pdb" SelfReg="false"/> - <ROW File="Tango.FSE.Procedures.dll" Component_="Tango.FSE.Procedures.dll" FileName="TANGO~11.DLL|Tango.FSE.Procedures.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.dll" SelfReg="false"/> - <ROW File="Tango.FSE.Procedures.dll.config" Component_="Dragablz.xml" FileName="TANGOF~9.CON|Tango.FSE.Procedures.dll.config" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.dll.config" SelfReg="false"/> - <ROW File="Tango.FSE.Procedures.pdb" Component_="Tango.FSE.Procedures.dll" FileName="TANGO~11.PDB|Tango.FSE.Procedures.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.pdb" SelfReg="false"/> - <ROW File="Tango.FSE.Procedures.xml" Component_="Dragablz.xml" FileName="TANGOF~2.XML|Tango.FSE.Procedures.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\Tango.FSE.Procedures.xml" SelfReg="false"/> + <ROW File="System.IdentityModel.Tokens.Jwt.pdb" Component_="System.IdentityModel.Tokens.Jwt.dll" FileName="SYSTEM~1.PDB|System.IdentityModel.Tokens.Jwt.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.IdentityModel.Tokens.Jwt.pdb" SelfReg="false"/> + <ROW File="System.IdentityModel.Tokens.Jwt.xml" Component_="Dragablz.xml" FileName="SYSTEM~2.XML|System.IdentityModel.Tokens.Jwt.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.IdentityModel.Tokens.Jwt.xml" SelfReg="false"/> + <ROW File="System.Net.Http.Formatting.xml" Component_="Dragablz.xml" FileName="SYSTEM~3.XML|System.Net.Http.Formatting.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Net.Http.Formatting.xml" SelfReg="false"/> + <ROW File="System.Reactive.Core.xml" Component_="Dragablz.xml" FileName="SYSTEM~4.XML|System.Reactive.Core.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Core.xml" SelfReg="false"/> + <ROW File="System.Reactive.Interfaces.xml" Component_="Dragablz.xml" FileName="SYSTEM~5.XML|System.Reactive.Interfaces.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Interfaces.xml" SelfReg="false"/> + <ROW File="System.Reactive.Linq.xml" Component_="Dragablz.xml" FileName="SYSTEM~6.XML|System.Reactive.Linq.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.Linq.xml" SelfReg="false"/> + <ROW File="System.Reactive.PlatformServices.xml" Component_="Dragablz.xml" FileName="SYSTEM~7.XML|System.Reactive.PlatformServices.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Reactive.PlatformServices.xml" SelfReg="false"/> + <ROW File="System.Web.Http.WebHost.xml" Component_="Dragablz.xml" FileName="SYSTEM~8.XML|System.Web.Http.WebHost.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Web.Http.WebHost.xml" SelfReg="false"/> + <ROW File="System.Web.Http.xml" Component_="Dragablz.xml" FileName="SYSTEM~9.XML|System.Web.Http.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\System.Web.Http.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_10" Component_="Microsoft.TeamFoundation.Client.resources.dll_10" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_10" Component_="Microsoft.TeamFoundation.Common.resources.dll_10" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_10" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_10" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_10" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_10" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_10" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\tr\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="WebRtc.NET.pdb" Component_="WebRtc.NET.dll" FileName="WEBRTC~1.PDB|WebRtc.NET.pdb" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\WebRtc.NET.pdb" SelfReg="false"/> + <ROW File="WindowsInput.xml" Component_="Dragablz.xml" FileName="WINDOW~1.XML|WindowsInput.xml" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\WindowsInput.xml" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_11" Component_="Microsoft.TeamFoundation.Client.resources.dll_11" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_11" Component_="Microsoft.TeamFoundation.Common.resources.dll_11" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_11" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_11" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_11" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_11" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_11" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hans\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Client.resources.dll_12" Component_="Microsoft.TeamFoundation.Client.resources.dll_12" FileName="MICROS~1.DLL|Microsoft.TeamFoundation.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Common.resources.dll_12" Component_="Microsoft.TeamFoundation.Common.resources.dll_12" FileName="MICROS~2.DLL|Microsoft.TeamFoundation.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12" FileName="MICROS~3.DLL|Microsoft.TeamFoundation.Core.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.Core.WebApi.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.res_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_12" FileName="MICROS~4.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12" FileName="MICROS~5.DLL|Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12" FileName="MICROS~6.DLL|Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12" FileName="MICROS~7.DLL|Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12" FileName="MICROS~8.DLL|Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.VisualStudio.Services.Client.Interactive.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.Common.resources.dll_12" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_12" FileName="MICROS~9.DLL|Microsoft.VisualStudio.Services.Common.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.VisualStudio.Services.Common.resources.dll" SelfReg="false"/> + <ROW File="Microsoft.VisualStudio.Services.WebApi.resources.dll_12" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_12" FileName="MICRO~10.DLL|Microsoft.VisualStudio.Services.WebApi.resources.dll" Version="65535.65535.65535.65535" Attributes="0" SourcePath="..\Build\FSE\Release\zh-Hant\Microsoft.VisualStudio.Services.WebApi.resources.dll" SelfReg="false"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent"> <ROW RemoveFile="_" Options="3"/> @@ -683,7 +1014,7 @@ <ROW Action="AI_DetectSoftware" Sequence="101"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent"> - <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.0.1" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.0.1"/> + <ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="..\Build\Installers\FSE\Release" PackageFileName="Tango FSE v1.0.2" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" ExtUI="true" UseLargeSchema="true" ExeName="Tango FSE v1.0.3"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent"> <ROW Path="<AI_DICTS>ui.ail"/> @@ -1061,10 +1392,6 @@ <ROW Feature_="TangoFSE" Component_="Tango.SystemInfo.dll"/> <ROW Feature_="TangoFSE" Component_="Tango.WebRTC.dll"/> <ROW Feature_="TangoFSE" Component_="WebRtc.NET.dll"/> - <ROW Feature_="TangoFSE" Component_="turbojpeg.dll"/> - <ROW Feature_="TangoFSE" Component_="turbojpeg.dll.meta"/> - <ROW Feature_="TangoFSE" Component_="turbojpeg.dll_1"/> - <ROW Feature_="TangoFSE" Component_="turbojpeg.dll.meta_1"/> <ROW Feature_="TangoFSE" Component_="WindowsInput.dll"/> <ROW Feature_="TangoFSE" Component_="Z.EntityFramework.Extensions.dll"/> <ROW Feature_="TangoFSE" Component_="Z.EntityFramework.Plus.EF6.dll"/> @@ -1077,6 +1404,146 @@ <ROW Feature_="TangoFSE" Component_="ffmpeg.exe"/> <ROW Feature_="TangoFSE" Component_="Tango.CSV.dll"/> <ROW Feature_="TangoFSE" Component_="Tango.FSE.Procedures.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.CodeAnalysis.CSharp.Workspaces.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.Data.Edm.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.Data.OData.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.Data.Services.Client.dll"/> + <ROW Feature_="TangoFSE" Component_="System.Spatial.dll"/> + <ROW Feature_="TangoFSE" Component_="Tango.FSE.Stubs.dll"/> + <ROW Feature_="TangoFSE" Component_="turbojpeg.dll"/> + <ROW Feature_="TangoFSE" Component_="turbojpeg.dll.meta"/> + <ROW Feature_="TangoFSE" Component_="turbojpeg.dll_1"/> + <ROW Feature_="TangoFSE" Component_="turbojpeg.dll.meta_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resources"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_1"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_2"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_3"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_4"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_5"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_6"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_7"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_8"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resourc_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_9"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_10"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_11"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Client.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Common.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.Core.WebApi.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.resour_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Client.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Common.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.TeamFoundation.WorkItemTracking.Proxy.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Client.Interactive.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.Common.resources.dll_12"/> + <ROW Feature_="TangoFSE" Component_="Microsoft.VisualStudio.Services.WebApi.resources.dll_12"/> </COMPONENT> <COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent"> <ROW Name="machine_full.exe" SourcePath="..\..\Graphics\FSE\Installer\machine_full.ico" Index="0"/> diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml index fe8b4bdef..6eb78c808 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml @@ -61,6 +61,12 @@ <TextBlock FontWeight="SemiBold">Tango Firmware Version::</TextBlock> <TextBlock Text="{Binding ElementName=control,Path=TangoVersion.FirmwareVersion}"></TextBlock> + + <TextBlock FontWeight="SemiBold">Tango FSE Version:</TextBlock> + <TextBlock Text="{Binding ElementName=control,Path=FseVersion.Version}"></TextBlock> + + <TextBlock FontWeight="SemiBold">Machine Service Version:</TextBlock> + <TextBlock Text="{Binding ElementName=control,Path=MachineServiceVersion}"></TextBlock> </controls:TableGrid> </StackPanel> diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml.cs index ea7475fb1..129550d14 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml.cs @@ -14,6 +14,7 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Tango.AzureUtils.Database; +using Tango.AzureUtils.FTP; using Tango.BL.Entities; namespace Tango.AzureUtils.UI.Controls @@ -47,6 +48,14 @@ namespace Tango.AzureUtils.UI.Controls public static readonly DependencyProperty TangoVersionProperty = DependencyProperty.Register("TangoVersion", typeof(TangoVersion), typeof(WebAppPropertiesControl), new PropertyMetadata(null)); + public FseVersion FseVersion + { + get { return (FseVersion)GetValue(FseVersionProperty); } + set { SetValue(FseVersionProperty, value); } + } + public static readonly DependencyProperty FseVersionProperty = + DependencyProperty.Register("FseVersion", typeof(FseVersion), typeof(WebAppPropertiesControl), new PropertyMetadata(null)); + public MachineStudioVersion MachineStudioVersion { get { return (MachineStudioVersion)GetValue(MachineStudioVersionProperty); } @@ -55,6 +64,16 @@ namespace Tango.AzureUtils.UI.Controls public static readonly DependencyProperty MachineStudioVersionProperty = DependencyProperty.Register("MachineStudioVersion", typeof(MachineStudioVersion), typeof(WebAppPropertiesControl), new PropertyMetadata(null)); + public String MachineServiceVersion + { + get { return (String)GetValue(MachineServiceVersionProperty); } + set { SetValue(MachineServiceVersionProperty, value); } + } + public static readonly DependencyProperty MachineServiceVersionProperty = + DependencyProperty.Register("MachineServiceVersion", typeof(String), typeof(WebAppPropertiesControl), new PropertyMetadata(null)); + + + public bool IsBusy { get { return (bool)GetValue(IsBusyProperty); } @@ -88,6 +107,10 @@ namespace Tango.AzureUtils.UI.Controls var databaseManager = new DatabaseManager(azure); TangoVersion = await databaseManager.GetLatestPPCVersion(app); MachineStudioVersion = await databaseManager.GetLatestMachineStudioVersion(app); + FseVersion = await databaseManager.GetLatestFSEVersion(app); + + FtpManager ftpManager = new FtpManager(azure); + MachineServiceVersion = await ftpManager.GetMachineServiceVersion(app); } catch { } finally diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/MainWindow.xaml b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/MainWindow.xaml index 7985f7985..d23fd41d8 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/MainWindow.xaml +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/MainWindow.xaml @@ -6,7 +6,7 @@ xmlns:views="clr-namespace:Tango.AzureUtils.UI.Views" xmlns:local="clr-namespace:Tango.AzureUtils.UI" mc:Ignorable="d" - Title="Azure Utils" Height="900" Width="1280"> + Title="Azure Utils" Height="950" Width="1280" WindowStartupLocation="CenterScreen"> <Grid> <views:MainView/> diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentUpgradeView.xaml b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentUpgradeView.xaml index b82be1e67..0bc763c35 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentUpgradeView.xaml +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentUpgradeView.xaml @@ -44,9 +44,11 @@ <CheckBox Click="OnConfigChanged" IsChecked="{Binding Config.SynchronizeDatabaseSchema}" >Upgrade Database Schema</CheckBox> <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.SynchronizeDatabaseData}" >Upgrade Database Static Collections</CheckBox> <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.CopyMachineStudioStorageBlobs}" >Upgrade Machine Studio Blob Storage</CheckBox> - <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.CopyPPCStorageBlobs}" >Upgrade PPC Blob Storage</CheckBox> <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.UpgradeMachineStudioDatabaseVersion}" >Upgrade Machine Studio Database Version</CheckBox> + <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.CopyPPCStorageBlobs}" >Upgrade PPC Blob Storage</CheckBox> <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.UpgradePPCDatabaseVersion}" >Upgrade PPC Database Version</CheckBox> + <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.CopyFSEStorageBlobs}" >Upgrade FSE Blob Storage</CheckBox> + <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.UpgradeFSEDatabaseVersion}" >Upgrade FSE Database Version</CheckBox> <CheckBox Click="OnConfigChanged" Margin="0 5 0 0" IsChecked="{Binding Config.CopyMachineServiceFiles}" >Upgrade Machine Service</CheckBox> </StackPanel> </GroupBox> diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs index 75a7f321b..2a94e95b0 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs @@ -234,7 +234,7 @@ namespace Tango.AzureUtils.Database var targetDataSource = (await targetApp.GetMachineServiceSettingsAsync()).ToDataSource(); - OnProgress(AzureUtilsStage.Database, $"Adding machine studio database entry for version '{latestPPCVersion.Version}'..."); + OnProgress(AzureUtilsStage.Database, $"Adding PPC database entry for version '{latestPPCVersion.Version}'..."); using (var db = ObservablesContext.CreateDefault(targetDataSource)) { @@ -243,6 +243,21 @@ namespace Tango.AzureUtils.Database } } + public async Task UpgradeFSEVersion(IWebAppBase sourceApp, IWebAppBase targetApp) + { + var latestFSEVersion = await GetLatestFSEVersion(sourceApp); + + var targetDataSource = (await targetApp.GetMachineServiceSettingsAsync()).ToDataSource(); + + OnProgress(AzureUtilsStage.Database, $"Adding FSE database entry for version '{latestFSEVersion.Version}'..."); + + using (var db = ObservablesContext.CreateDefault(targetDataSource)) + { + db.FseVersions.Add(latestFSEVersion); + await db.SaveChangesAsync(); + } + } + public async Task DowngradeMachineStudioVersion(IWebAppBase app) { var latestMachineStudioVersion = await GetLatestMachineStudioVersion(app); @@ -327,8 +342,8 @@ namespace Tango.AzureUtils.Database using (var db = ObservablesContext.CreateDefault(dataSource)) { var versions = await db.TangoVersions.ToListAsync(); - var latest_machine_version = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); - return latest_machine_version; + var latest_version = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + return latest_version; } } catch (Exception ex) @@ -337,6 +352,38 @@ namespace Tango.AzureUtils.Database } } + public async Task<FseVersion> GetLatestFSEVersion(IWebAppBase app) + { + OnProgress(AzureUtilsStage.Database, $"Getting latest FSE version on '{app.Name}'..."); + + MachineServiceSettings settings = null; + + try + { + settings = await app.GetMachineServiceSettingsAsync(); + } + catch (Exception ex) + { + throw new ArgumentException("Could not fetch machine service settings. Please check that all settings are available.", ex); + } + + try + { + DataSource dataSource = settings.ToDataSource(); + + using (var db = ObservablesContext.CreateDefault(dataSource)) + { + var versions = await db.FseVersions.ToListAsync(); + var latest_version = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + return latest_version; + } + } + catch (Exception ex) + { + throw new InvalidDataException($"Could not retrieve '{app.Name}' latest FSE version from database.", ex); + } + } + public async Task ValidateMachineStudioDatabaseUpgrade(IWebAppBase sourceApp, IWebAppBase targetApp) { OnProgress(AzureUtilsStage.Validating, "Validating machine studio database upgrade..."); @@ -385,6 +432,30 @@ namespace Tango.AzureUtils.Database } } + public async Task ValidateFSEDatabaseUpgrade(IWebAppBase sourceApp, IWebAppBase targetApp) + { + OnProgress(AzureUtilsStage.Validating, "Validating FSE database upgrade..."); + + var sourceSettings = await sourceApp.GetMachineServiceSettingsAsync(); + var targetSettings = await targetApp.GetMachineServiceSettingsAsync(); + + var latestSourceFSEVersion = await GetLatestFSEVersion(sourceApp); + + //Check if there is any source FSE version. + if (latestSourceFSEVersion == null) + { + throw new ValidationException("Could not locate a FSE version entry on the source database."); + } + + var latestTargetFSEVersion = await GetLatestFSEVersion(targetApp); + + //Check target latest FSE version is older if there is any. + if (latestTargetFSEVersion != null && Version.Parse(latestSourceFSEVersion.Version) <= Version.Parse(latestTargetFSEVersion.Version)) + { + throw new ValidationException($"FSE source version is '{latestSourceFSEVersion.Version}' while target version is '{latestTargetFSEVersion.Version}'."); + } + } + #endregion } } diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs index 19ccb8f92..123c94f7d 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs @@ -327,6 +327,20 @@ namespace Tango.AzureUtils.Environment } } + //Add FSE storage versions. + if (config.CopyFSEStorageBlobs) + { + try + { + await _storageManager.ValidateFSEStorageUpgrade(sourceApp, targetApp); + await _storageManager.UpgradeFSEStorage(sourceApp, targetApp); + } + catch (Exception ex) + { + await RequestConfirmation($"Issues encountered with upgrading FSE storage versions.\n{ex.FlattenMessage()}\nDo you wish to continue?"); + } + } + //Upgrade machine studio database version. if (config.UpgradeMachineStudioDatabaseVersion) { @@ -355,6 +369,20 @@ namespace Tango.AzureUtils.Environment } } + //Upgrade FSE database version. + if (config.UpgradeFSEDatabaseVersion) + { + try + { + await _databaseManager.ValidateFSEDatabaseUpgrade(sourceApp, targetApp); + await _databaseManager.UpgradeFSEVersion(sourceApp, targetApp); + } + catch (Exception ex) + { + await RequestConfirmation($"Issues encountered with upgrading FSE database versions.\n{ex.FlattenMessage()}\nDo you wish to continue?"); + } + } + //Copy Website files. if (config.CopyMachineServiceFiles) @@ -388,6 +416,12 @@ namespace Tango.AzureUtils.Environment await _storageManager.ValidatePPCStorageUpgrade(sourceApp, targetApp); } + //Add FSE storage versions. + if (config.CopyFSEStorageBlobs) + { + await _storageManager.ValidateFSEStorageUpgrade(sourceApp, targetApp); + } + //Upgrade machine studio database version. if (config.UpgradeMachineStudioDatabaseVersion) { @@ -399,6 +433,12 @@ namespace Tango.AzureUtils.Environment { await _databaseManager.ValidatePPCDatabaseUpgrade(sourceApp, targetApp); } + + //Upgrade FSE database version. + if (config.UpgradeFSEDatabaseVersion) + { + await _databaseManager.ValidateFSEDatabaseUpgrade(sourceApp, targetApp); + } } #endregion diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentSettings.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentSettings.cs index 8b8e3a757..8eefc4bc5 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentSettings.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentSettings.cs @@ -12,6 +12,7 @@ namespace Tango.AzureUtils.Environment public String DB_CATALOG { get; set; } public String MACHINE_STUDIO_VERSIONS_CONTAINER { get; set; } public String TANGO_VERSIONS_CONTAINER { get; set; } + public String FSE_VERSIONS_CONTAINER { get; set; } public String MACHINE_SERVICE_BACKUPS_CONTAINER { get; set; } public String MACHINE_SERVICE_LOGS_CONTAINER { get; set; } public String ENVIRONMENT_GROUP { get; set; } @@ -24,6 +25,7 @@ namespace Tango.AzureUtils.Environment settings.DB_CATALOG = $"Tango_{name}"; settings.MACHINE_STUDIO_VERSIONS_CONTAINER = $"machine-studio-versions-{name.ToLower()}"; settings.TANGO_VERSIONS_CONTAINER = $"tango-versions-{name.ToLower()}"; + settings.FSE_VERSIONS_CONTAINER = $"fse-versions-{name.ToLower()}"; settings.MACHINE_SERVICE_BACKUPS_CONTAINER = $"machine-service-backups-{name.ToLower()}"; settings.MACHINE_SERVICE_LOGS_CONTAINER = $"machine-service-logs-{name.ToLower()}"; settings.ENVIRONMENT_GROUP = $"Tango {name}"; diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/UpgradeEnvironmentConfiguration.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/UpgradeEnvironmentConfiguration.cs index 537056701..1d7b9de16 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/UpgradeEnvironmentConfiguration.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/UpgradeEnvironmentConfiguration.cs @@ -14,6 +14,8 @@ namespace Tango.AzureUtils.Environment public bool UpgradeMachineStudioDatabaseVersion { get; set; } = true; public bool CopyPPCStorageBlobs { get; set; } = true; public bool UpgradePPCDatabaseVersion { get; set; } = true; + public bool CopyFSEStorageBlobs { get; set; } = true; + public bool UpgradeFSEDatabaseVersion { get; set; } = true; public bool CopyMachineServiceFiles { get; set; } = true; } } diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/FTP/FtpManager.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/FTP/FtpManager.cs index 5a174dcb2..021426d12 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/FTP/FtpManager.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/FTP/FtpManager.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Security.Authentication; using System.Text; @@ -115,5 +116,21 @@ namespace Tango.AzureUtils.FTP var downloadResults = await DownloadWebAppFiles(sourceApp, webAppFilesTempFolder); var uploadResults = await UploadWebAppFiles(targetApp, webAppFilesTempFolder); } + + public async Task<String> GetMachineServiceVersion(IWebAppBase app) + { + var exeTempFile = TemporaryManager.CreateImaginaryFile(".dll"); + + var profile = await app.GetPublishingProfileAsync(); + + using (var ftp = CreateFtpClient(profile.FtpUrl, profile.FtpUsername, profile.FtpPassword)) + { + await ftp.ConnectAsync(); + await ftp.DownloadFileAsync(exeTempFile, "/site/wwwroot/bin/Tango.MachineService.dll"); + String version = FileVersionInfo.GetVersionInfo(exeTempFile).ProductVersion; + await exeTempFile.DeleteAsync(); + return version; + } + } } } diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/MachineServiceSettings.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/MachineServiceSettings.cs index 93065c50d..4f8742083 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/MachineServiceSettings.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/MachineServiceSettings.cs @@ -18,5 +18,6 @@ namespace Tango.AzureUtils public String MACHINE_STUDIO_VERSIONS_CONTAINER { get; set; } public String STORAGE_ACCOUNT { get; set; } public String TANGO_VERSIONS_CONTAINER { get; set; } + public String FSE_VERSIONS_CONTAINER { get; set; } } } diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Storage/StorageManager.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Storage/StorageManager.cs index 77a0aaf6d..db4403cc9 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Storage/StorageManager.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Storage/StorageManager.cs @@ -109,6 +109,39 @@ namespace Tango.AzureUtils.Storage }); } + public async Task UpgradeFSEStorage(IWebAppBase sourceApp, IWebAppBase targetApp) + { + OnProgress(AzureUtilsStage.Storage, $"Retrieving source and target settings..."); + + var sourceSettings = await sourceApp.GetMachineServiceSettingsAsync(); + var targetSettings = await targetApp.GetMachineServiceSettingsAsync(); + + var latestFSEVersion = await _databaseManager.GetLatestFSEVersion(sourceApp); + + OnProgress(AzureUtilsStage.Storage, $"Upgrading FSE version storage..."); + + var sourceAccount = CloudStorageAccount.Parse(sourceSettings.STORAGE_ACCOUNT); + var sourceClient = sourceAccount.CreateCloudBlobClient(); + + var targetAccount = CloudStorageAccount.Parse(targetSettings.STORAGE_ACCOUNT); + var targetClient = targetAccount.CreateCloudBlobClient(); + + var sourceFSEContainer = sourceClient.GetContainerReference(sourceSettings.FSE_VERSIONS_CONTAINER); + var targetFSEContainer = targetClient.GetContainerReference(targetSettings.FSE_VERSIONS_CONTAINER); + + //var sourceFSEBlob = sourceFSEContainer.GetBlockBlobReference(latestPPCVersion.BlobName); + var sourceFSEInstallerBlob = sourceFSEContainer.GetBlockBlobReference(latestFSEVersion.InstallerBlobName); + + //var targetFSEBlob = await CreateEmptyBlob(targetFSEContainer, sourceFSEBlob.Name); + var targetFSEInstallerBlob = await CreateEmptyBlob(targetFSEContainer, sourceFSEInstallerBlob.Name); + + await Task.Factory.StartNew(() => + { + //targetFSEBlob.StartCopy(sourceFSEBlob); + targetFSEInstallerBlob.StartCopy(sourceFSEInstallerBlob); + }); + } + public async Task UpgradeMachineStudioStorage(IWebAppBase sourceApp, IWebAppBase targetApp) { OnProgress(AzureUtilsStage.Storage, $"Retrieving source and target settings..."); @@ -170,7 +203,7 @@ namespace Tango.AzureUtils.Storage public async Task ValidatePPCStorageUpgrade(IWebAppBase sourceApp, IWebAppBase targetApp) { - OnProgress(AzureUtilsStage.Validating, "Validating PPC database upgrade..."); + OnProgress(AzureUtilsStage.Validating, "Validating PPC storage upgrade..."); var sourceSettings = await sourceApp.GetMachineServiceSettingsAsync(); var targetSettings = await targetApp.GetMachineServiceSettingsAsync(); @@ -198,6 +231,36 @@ namespace Tango.AzureUtils.Storage } } + public async Task ValidateFSEStorageUpgrade(IWebAppBase sourceApp, IWebAppBase targetApp) + { + OnProgress(AzureUtilsStage.Validating, "Validating FSE storage upgrade..."); + + var sourceSettings = await sourceApp.GetMachineServiceSettingsAsync(); + var targetSettings = await targetApp.GetMachineServiceSettingsAsync(); + + var latestSourceFSEVersion = await _databaseManager.GetLatestFSEVersion(sourceApp); + var latestTargetFSEVersion = await _databaseManager.GetLatestFSEVersion(targetApp); + + var targetAccount = CloudStorageAccount.Parse(targetSettings.STORAGE_ACCOUNT); + var targetClient = targetAccount.CreateCloudBlobClient(); + + var targetFSEContainer = targetClient.GetContainerReference(targetSettings.FSE_VERSIONS_CONTAINER); + + //Check FSE binaries blob not exists on the target. + var targetFSEBlob = targetFSEContainer.GetBlockBlobReference(latestSourceFSEVersion.BlobName); + if (await targetFSEBlob.ExistsAsync()) + { + throw new ValidationException($"FSE Block blob '{latestSourceFSEVersion.BlobName}' already exists on the target storage."); + } + + //Check FSE installer blob not exists on the target. + var targetFSEInstallerBlob = targetFSEContainer.GetBlockBlobReference(latestSourceFSEVersion.InstallerBlobName); + if (await targetFSEInstallerBlob.ExistsAsync()) + { + throw new ValidationException($"FSE Block blob '{latestSourceFSEVersion.InstallerBlobName}' already exists on the target storage."); + } + } + public async Task ValidateMachineStudioStorageUpgrade(IWebAppBase sourceApp, IWebAppBase targetApp) { OnProgress(AzureUtilsStage.Validating, "Validating machine studio storage upgrade..."); diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml new file mode 100644 index 000000000..c1e9336ac --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml @@ -0,0 +1,27 @@ +<UserControl x:Class="Tango.FSE.Procedures.Dialogs.InputSelectionConfigurationDialogView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:local="clr-namespace:Tango.FSE.Procedures.Dialogs" + mc:Ignorable="d" + Width="1000" Height="600" d:DataContext="{d:DesignInstance Type=local:InputSelectionConfigurationDialogViewVM, IsDesignTimeCreatable=False}" Background="{StaticResource FSE_PrimaryBackgroundLightBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}"> + <Grid Margin="10"> + <DockPanel> + <StackPanel DockPanel.Dock="Top" Orientation="Horizontal"> + <material:PackIcon Kind="SettingsInputComponent" Width="32" Height="32" /> + <TextBlock Margin="10 0 0 0" FontSize="{StaticResource FSE_LargeFontSize}" VerticalAlignment="Center">Input Configuration</TextBlock> + </StackPanel> + + <Border Margin="0 20 0 0" BorderThickness="1" BorderBrush="{StaticResource FSE_BorderBrush}" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}" CornerRadius="5"> + <DataGrid Style="{StaticResource FSE_DataGrid}" CellStyle="{StaticResource FSE_DataGrid_Cell}" HeadersVisibility="Column" IsReadOnly="False" AutoGenerateColumns="False" Margin="5" Background="Transparent" ItemsSource="{Binding SelectionInputs}" CanUserAddRows="True" CanUserDeleteRows="True" CanUserReorderColumns="False" CanUserResizeColumns="True" CanUserSortColumns="False"> + <DataGrid.Columns> + <DataGridTextColumn Header="NAME" Width="150" Binding="{Binding Name}" /> + <DataGridTextColumn Header="VALUE" Width="1*" Binding="{Binding Value}" /> + </DataGrid.Columns> + </DataGrid> + </Border> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml.cs new file mode 100644 index 000000000..9e79c5fb0 --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.Procedures.Dialogs +{ + /// <summary> + /// Interaction logic for InputSelectionConfigurationDialogView.xaml + /// </summary> + public partial class InputSelectionConfigurationDialogView : UserControl + { + public InputSelectionConfigurationDialogView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogViewVM.cs new file mode 100644 index 000000000..0d8b9ceef --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogViewVM.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Commands; +using Tango.FSE.Common; + +namespace Tango.FSE.Procedures.Dialogs +{ + public class InputSelectionConfigurationDialogViewVM : FSEDialogViewVM + { + public ObservableCollection<ProcedureInputSelection> SelectionInputs { get; set; } + + public RelayCommand AddSelectionCommand { get; set; } + public RelayCommand RemoveSelectionCommand { get; set; } + public RelayCommand MoveUpCommand { get; set; } + public RelayCommand MoveDownCommand { get; set; } + + public InputSelectionConfigurationDialogViewVM() + { + SelectionInputs = new ObservableCollection<ProcedureInputSelection>(); + } + } +} diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/IProcedureContext.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/IProcedureContext.cs index c304c05d0..9b2ccfe2f 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/IProcedureContext.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/IProcedureContext.cs @@ -9,6 +9,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using Tango.Core; +using Tango.FSE.Common.Connection; using Tango.FSE.Common.Diagnostics; using Tango.Integration.Operation; using Tango.Scripting.Basic; @@ -376,5 +377,15 @@ namespace Tango.FSE.Procedures /// <param name="windowTitle">The window title</param> /// <returns></returns> IDialogController LoadDialogAsWindow(String name, String windowTitle); + + /// <summary> + /// Gets the type of the current machine connection. + /// </summary> + MachineConnectionTypes ConnectionType { get; } + + /// <summary> + /// Gets or sets a value indicating whether a machine is currently connected. + /// </summary> + bool IsConnected { get; } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureContext.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureContext.cs index f67749a92..54ae07444 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureContext.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureContext.cs @@ -50,6 +50,16 @@ namespace Tango.FSE.Procedures public ReadOnlyCollection<Result> Results { get; private set; } + public MachineConnectionTypes ConnectionType + { + get { return MachineProvider.ConnectionType; } + } + + public bool IsConnected + { + get { return MachineProvider.IsConnected; } + } + public ProcedureContext(ProcedureProject project, IProcedureLogger logger) { _project = project; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInput.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInput.cs index 6136731be..6ddc5d4bb 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInput.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInput.cs @@ -1,16 +1,43 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core; namespace Tango.FSE.Procedures { - public class ProcedureInput + public class ProcedureInput : ExtendedObject { + private ProcedureInputType _type; + public ProcedureInputType Type + { + get { return _type; } + set { _type = value; RaisePropertyChangedAuto(); } + } + + private ObservableCollection<ProcedureInputSelection> _selectionInputs; + public ObservableCollection<ProcedureInputSelection> SelectionInputs + { + get { return _selectionInputs; } + set { _selectionInputs = value; RaisePropertyChangedAuto(); } + } + public String DisplayName { get; set; } public String Description { get; set; } public String Key { get; set; } - public Object Value { get; set; } + + private Object _value; + public Object Value + { + get { return _value; } + set { _value = value; RaisePropertyChangedAuto(); } + } + + public ProcedureInput() + { + SelectionInputs = new ObservableCollection<ProcedureInputSelection>(); + } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputSelection.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputSelection.cs new file mode 100644 index 000000000..f27e0ff30 --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputSelection.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.FSE.Procedures +{ + public class ProcedureInputSelection + { + public String Name { get; set; } + public Object Value { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputType.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputType.cs new file mode 100644 index 000000000..0ca4b9f13 --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputType.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.FSE.Procedures +{ + public enum ProcedureInputType + { + Default, + Selection + } +} diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/lib_template.csx b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/lib_template.csx index 8690a23b4..a633ea108 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/lib_template.csx +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/lib_template.csx @@ -11,6 +11,7 @@ using Google.Protobuf; using Tango.BL.Enumerations; using Tango.PMR.Stubs; using Tango.PMR.Diagnostics; +using Tango.FSE.Common.Connection; using Tango.FSE.Common.Diagnostics; using Tango.FSE.Procedures; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/main_template.csx b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/main_template.csx index 6f564682f..f0987a17d 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/main_template.csx +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/main_template.csx @@ -11,6 +11,7 @@ using Google.Protobuf; using Tango.BL.Enumerations; using Tango.PMR.Stubs; using Tango.PMR.Diagnostics; +using Tango.FSE.Common.Connection; using Tango.FSE.Common.Diagnostics; using Tango.FSE.Procedures; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj index f98771187..c0412ef6a 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj @@ -114,6 +114,10 @@ <DependentUpon>AddReferenceAssemblyView.xaml</DependentUpon> </Compile> <Compile Include="Dialogs\AddReferenceAssemblyViewVM.cs" /> + <Compile Include="Dialogs\InputSelectionConfigurationDialogView.xaml.cs"> + <DependentUpon>InputSelectionConfigurationDialogView.xaml</DependentUpon> + </Compile> + <Compile Include="Dialogs\InputSelectionConfigurationDialogViewVM.cs" /> <Compile Include="Dialogs\LoadPublishedProjectView.xaml.cs"> <DependentUpon>LoadPublishedProjectView.xaml</DependentUpon> </Compile> @@ -143,6 +147,8 @@ <Compile Include="IProcedureLogger.cs" /> <Compile Include="Messages\ProcedureProjectPublishedOrSuppressed.cs" /> <Compile Include="ProcedureDialog.cs" /> + <Compile Include="ProcedureInputSelection.cs" /> + <Compile Include="ProcedureInputType.cs" /> <Compile Include="ProceduresSettings.cs" /> <Compile Include="ProjectRunner.cs" /> <Compile Include="ProjectRunnerState.cs" /> @@ -291,6 +297,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Dialogs\InputSelectionConfigurationDialogView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Dialogs\LoadPublishedProjectView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ViewModels/ProcedureDesignerViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ViewModels/ProcedureDesignerViewVM.cs index 859570b64..4de9e64f8 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ViewModels/ProcedureDesignerViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ViewModels/ProcedureDesignerViewVM.cs @@ -234,6 +234,7 @@ namespace Tango.FSE.Procedures.ViewModels public RelayCommand AddDialogCommand { get; set; } public RelayCommand<ProcedureDialog> EditDialogCommand { get; set; } public RelayCommand<ProcedureDialog> RemoveDialogCommand { get; set; } + public RelayCommand<ProcedureInput> ConfigureInputSelectionCommand { get; set; } #endregion @@ -258,6 +259,7 @@ namespace Tango.FSE.Procedures.ViewModels ScriptEditor.BlockedUsingsCache.Add("Tango.PMR.Stubs"); ScriptEditor.BlockedUsingsCache.Add("Tango.BL.Enumerations"); ScriptEditor.BlockedUsingsCache.Add("Tango.PMR.Diagnostics"); + ScriptEditor.BlockedUsingsCache.Add("Tango.FSE.Common.Connection"); ScriptEditor.BlockedUsingsCache.Add("Tango.FSE.Common.Diagnostics"); OpenScripts = new ObservableCollection<Script>(); @@ -295,6 +297,7 @@ namespace Tango.FSE.Procedures.ViewModels AddDialogCommand = new RelayCommand(AddProcedureDialog); EditDialogCommand = new RelayCommand<ProcedureDialog>(EditProcedureDialog); RemoveDialogCommand = new RelayCommand<ProcedureDialog>(RemoveProcedureDialog); + ConfigureInputSelectionCommand = new RelayCommand<ProcedureInput>(ConfigureInputSelection); } #endregion @@ -512,6 +515,10 @@ namespace Tango.FSE.Procedures.ViewModels Logger.WriteLine(ResultsViewVM.Results.ToJsonString()); SelectedToolWindow = ToolWindows.Results; } + else + { + Logger.WriteLine("Project ran to completion with zero results."); + } } } catch (OperationCanceledException) @@ -1143,5 +1150,22 @@ namespace Tango.FSE.Procedures.ViewModels } #endregion + + #region Configure Inputs + + private async void ConfigureInputSelection(ProcedureInput input) + { + var vm = await NotificationProvider.ShowDialog(new InputSelectionConfigurationDialogViewVM() + { + SelectionInputs = input.SelectionInputs.ToList().ToObservableCollection(), + }); + + if (vm.DialogResult) + { + input.SelectionInputs = vm.SelectionInputs.ToObservableCollection(); + } + } + + #endregion } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureDesignerView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureDesignerView.xaml index 93371a438..9b81c598f 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureDesignerView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureDesignerView.xaml @@ -572,18 +572,55 @@ <ItemsControl.ItemTemplate> <DataTemplate> <Grid> - <Line Stroke="{StaticResource FSE_BorderBrush}" X1="16" Y1="45" X2="199" Y2="151" /> + <Line Stroke="{StaticResource FSE_BorderBrush}" X1="16" Y1="45" X2="290" Y2="151" /> <DockPanel Margin="15 15 50 15"> <material:PackIcon Kind="Key" VerticalAlignment="Top" Margin="0 18 0 0" /> - <controls:IconButton VerticalAlignment="Top" DockPanel.Dock="Right" Width="32" Height="32" Margin="10 10 0 0" Icon="Close" Foreground="{StaticResource FSE_RedBrush}" ToolTip="Delete input" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RemoveProjectInputCommand}" CommandParameter="{Binding}"></controls:IconButton> + <controls:IconButton Cursor="Hand" VerticalAlignment="Top" DockPanel.Dock="Right" Width="32" Height="32" Margin="10 10 0 0" Icon="Close" Foreground="{StaticResource FSE_RedBrush}" ToolTip="Delete input" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.RemoveProjectInputCommand}" CommandParameter="{Binding}"></controls:IconButton> <DockPanel Margin="10 0 0 0" Width="100" VerticalAlignment="Top"> <TextBlock Margin="2 0 0 2" DockPanel.Dock="Top" FontSize="{StaticResource FSE_SmallerFontSize}">Key</TextBlock> <TextBox Style="{StaticResource FSE_Rounded_Corners_TextBox}" Text="{Binding Key}"></TextBox> </DockPanel> <material:PackIcon Kind="Equal" VerticalAlignment="Top" Margin="20 20 20 0" /> - <StackPanel Width="400"> - <TextBlock Margin="2 0 0 2" FontSize="{StaticResource FSE_SmallerFontSize}">Value</TextBlock> - <TextBox Style="{StaticResource FSE_Rounded_Corners_TextBox}" Text="{Binding Value}"></TextBox> + <StackPanel Width="80"> + <TextBlock Margin="2 0 0 2" FontSize="{StaticResource FSE_SmallerFontSize}">Type</TextBlock> + <controls:FSERoundedCornersComboBox Height="25" Margin="0 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" ItemsSource="{Binding Source={x:Type global:ProcedureInputType},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding Type,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></controls:FSERoundedCornersComboBox> + </StackPanel> + <StackPanel Margin="10 0 0 0" Width="330"> + <ContentControl Content="{Binding}" Margin="0 0 0 0"> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate> + <StackPanel> + <TextBlock Margin="2 0 0 2" FontSize="{StaticResource FSE_SmallerFontSize}">Value</TextBlock> + <TextBox Style="{StaticResource FSE_Rounded_Corners_TextBox}" Text="{Binding Value}"></TextBox> + </StackPanel> + </DataTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Type}" Value="Selection"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate> + <StackPanel> + <TextBlock Margin="2 0 0 2" FontSize="{StaticResource FSE_SmallerFontSize}">Value</TextBlock> + <DockPanel> + <Button VerticalAlignment="Bottom" Margin="10 0 0 -5" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.ConfigureInputSelectionCommand}" CommandParameter="{Binding}" Foreground="{StaticResource FSE_GrayBrush}" Height="25" Padding="0" FontSize="{StaticResource FSE_SmallFontSize}" Style="{StaticResource FSE_FlatButton_ForegroundAccentHover}" Cursor="Hand" DockPanel.Dock="Right"> + <TextBlock TextDecorations="Underline">Configure Selection...</TextBlock> + </Button> + <controls:FSERoundedCornersComboBox Height="25" FontSize="{StaticResource FSE_SmallFontSize}" ItemsSource="{Binding SelectionInputs}" SelectedValue="{Binding Value}" SelectedValuePath="Value" DisplayMemberPath="Name"/> + </DockPanel> + </StackPanel> + </DataTemplate> + </Setter.Value> + </Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </ContentControl.Style> + </ContentControl> <TextBlock Margin="2 10 0 2" FontSize="{StaticResource FSE_SmallerFontSize}">Display Name</TextBlock> <TextBox Style="{StaticResource FSE_Rounded_Corners_TextBox}" Text="{Binding DisplayName}"></TextBox> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureRunnerExecutionView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureRunnerExecutionView.xaml index c47a2ac01..01c9feb19 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureRunnerExecutionView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureRunnerExecutionView.xaml @@ -45,7 +45,30 @@ <StackPanel Margin="10 0 0 0"> <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding DisplayName,FallbackValue='N/A'}"></TextBlock> <StackPanel Orientation="Horizontal"> - <TextBox HorizontalAlignment="Left" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Width="250" Padding="5" Margin="0 2 0 0" Text="{Binding Value,UpdateSourceTrigger=PropertyChanged}"></TextBox> + <ContentControl Content="{Binding}" HorizontalAlignment="Left" Width="250" Margin="0 2 0 0"> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate> + <TextBox Style="{StaticResource FSE_Rounded_Corners_TextBox}" Padding="5" Text="{Binding Value,UpdateSourceTrigger=PropertyChanged}"></TextBox> + </DataTemplate> + </Setter.Value> + </Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Type}" Value="Selection"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate> + <controls:FSERoundedCornersComboBox Height="29" ItemsSource="{Binding SelectionInputs}" SelectedValue="{Binding Value}" SelectedValuePath="Value" DisplayMemberPath="Name"/> + </DataTemplate> + </Setter.Value> + </Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </ContentControl.Style> + </ContentControl> <material:PackIcon VerticalAlignment="Center" Margin="20 0 0 0" Foreground="{StaticResource FSE_GrayBrush}" Kind="InfoCircleOutline" /> <TextBlock Margin="5 0 0 0" FontSize="{StaticResource FSE_SmallFontSize}" VerticalAlignment="Center" Foreground="{StaticResource FSE_GrayBrush}" Text="{Binding Description,FallbackValue='No description provided'}"></TextBlock> </StackPanel> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.BL/Web/FSEWebClientBase.cs b/Software/Visual_Studio/FSE/Tango.FSE.BL/Web/FSEWebClientBase.cs index 68420ea67..2151f03d1 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.BL/Web/FSEWebClientBase.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.BL/Web/FSEWebClientBase.cs @@ -93,5 +93,32 @@ namespace Tango.FSE.BL.Web return Post<Tango.FSE.Web.Messages.ForgotPasswordRequest, Tango.FSE.Web.Messages.ForgotPasswordResponse>("SendForgotPasswordEmail", request); } + /// <summary> + /// Executes the GetLatestVersion action and returns Tango.FSE.Web.Messages.LatestVersionResponse. + /// </summary> + /// <returns></returns> + public Task<Tango.FSE.Web.Messages.LatestVersionResponse> GetLatestVersion(Tango.FSE.Web.Messages.LatestVersionRequest request) + { + return Post<Tango.FSE.Web.Messages.LatestVersionRequest, Tango.FSE.Web.Messages.LatestVersionResponse>("GetLatestVersion", request); + } + + /// <summary> + /// Executes the UploadVersion action and returns Tango.FSE.Web.Messages.UploadVersionResponse. + /// </summary> + /// <returns></returns> + public Task<Tango.FSE.Web.Messages.UploadVersionResponse> UploadVersion(Tango.FSE.Web.Messages.UploadVersionRequest request) + { + return Post<Tango.FSE.Web.Messages.UploadVersionRequest, Tango.FSE.Web.Messages.UploadVersionResponse>("UploadVersion", request); + } + + /// <summary> + /// Executes the NotifyVersionUploadCompleted action and returns Tango.FSE.Web.Messages.UploadCompletedResponse. + /// </summary> + /// <returns></returns> + public Task<Tango.FSE.Web.Messages.UploadCompletedResponse> NotifyVersionUploadCompleted(Tango.FSE.Web.Messages.UploadCompletedRequest request) + { + return Post<Tango.FSE.Web.Messages.UploadCompletedRequest, Tango.FSE.Web.Messages.UploadCompletedResponse>("NotifyVersionUploadCompleted", request); + } + } } diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.cs new file mode 100644 index 000000000..333b74c2b --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; + +namespace Tango.FSE.Common.Controls +{ + public class FSERoundedCornersComboBox : ComboBox + { + public CornerRadius CornerRadius + { + get { return (CornerRadius)GetValue(CornerRadiusProperty); } + set { SetValue(CornerRadiusProperty, value); } + } + public static readonly DependencyProperty CornerRadiusProperty = + DependencyProperty.Register("CornerRadius", typeof(CornerRadius), typeof(FSERoundedCornersComboBox), new PropertyMetadata(new CornerRadius(3))); + + static FSERoundedCornersComboBox() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(FSERoundedCornersComboBox), new FrameworkPropertyMetadata(typeof(FSERoundedCornersComboBox))); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.xaml new file mode 100644 index 000000000..50e23e625 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.xaml @@ -0,0 +1,51 @@ +<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:local="clr-namespace:Tango.FSE.Common.Controls"> + + <Style TargetType="{x:Type local:FSERoundedCornersComboBox}"> + <Setter Property="Background" Value="{StaticResource FSE_PrimaryBackgroundDarkBrush}"></Setter> + <Setter Property="BorderBrush" Value="{StaticResource FSE_BorderBrush}"></Setter> + <Setter Property="BorderThickness" Value="1"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter> + <Setter Property="CornerRadius" Value="5"></Setter> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate> + <Grid> + <Border + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" + Background="{TemplateBinding Background}" + CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:FSERoundedCornersComboBox},Path=CornerRadius}" + SnapsToDevicePixels="True" + Padding="5 2 5 2"> + + <ComboBox BorderThickness="0" + VerticalAlignment="Center" + Padding="0" + material:ComboBoxAssist.ClassicMode="True" + material:TextFieldAssist.UnderlineBrush="Transparent" + Background="Transparent" + ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=ItemsSource,Mode=TwoWay}" + SelectedItem="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedItem,Mode=TwoWay}" + SelectedIndex="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedIndex,Mode=TwoWay}" + SelectedValue="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedValue,Mode=TwoWay}" + SelectedValuePath="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedValuePath,Mode=TwoWay}" + DisplayMemberPath="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=DisplayMemberPath,Mode=TwoWay}"/> + </Border> + <Path x:Name="arrow" + Width="8" Height="8" + Margin="0 0 5 0" + Stretch="Uniform" + HorizontalAlignment="Right" + VerticalAlignment="Center" + Data="M7,10L12,15L17,10H7Z" + Fill="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=Foreground}" /> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + +</ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml index f956aa582..7b3fd9048 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml @@ -13,6 +13,7 @@ <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/ProgressRing.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/ProgressRingDouble.xaml" /> <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/FSEGroupBox.xaml" /> + <ResourceDictionary Source="pack://application:,,,/Tango.FSE.Common;component/Controls/FSERoundedCornersComboBox.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj index a07897758..8a9f617a9 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj @@ -124,6 +124,7 @@ <Compile Include="Connectivity\IConnectivityProvider.cs" /> <Compile Include="Console\IConsoleProvider.cs" /> <Compile Include="Controls\FSEGroupBox.cs" /> + <Compile Include="Controls\FSERoundedCornersComboBox.cs" /> <Compile Include="Controls\IconRepeatButton.cs" /> <Compile Include="Controls\KeepAliveTabControl.cs" /> <Compile Include="Controls\ConnectedMachineIcon.xaml.cs"> @@ -266,6 +267,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Controls\FSERoundedCornersComboBox.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Controls\FSETabControl.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.config b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.config new file mode 100644 index 000000000..3c53533de --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.config @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> + <appSettings> + <add key="GatewayUrl" value="https://machineservice-gateway.azurewebsites.net" /> + </appSettings> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml new file mode 100644 index 000000000..ccf0edb6b --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml @@ -0,0 +1,9 @@ +<Application x:Class="Tango.FSE.Publisher.UI.App" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.FSE.Publisher.UI" + StartupUri="MainWindow.xaml"> + <Application.Resources> + + </Application.Resources> +</Application> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml.cs new file mode 100644 index 000000000..3a9bfe8d8 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace Tango.FSE.Publisher.UI +{ + /// <summary> + /// Interaction logic for App.xaml + /// </summary> + public partial class App : Application + { + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml new file mode 100644 index 000000000..143113bf1 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml @@ -0,0 +1,66 @@ +<Window x:Class="Tango.FSE.Publisher.UI.MainWindow" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:sys="clr-namespace:System;assembly=mscorlib" + xmlns:local="clr-namespace:Tango.FSE.Publisher.UI" + mc:Ignorable="d" + Title="Tango FSE Publisher" Height="600" Width="400" d:DataContext="{d:DesignInstance Type=local:MainWindowVM, IsDesignTimeCreatable=False}"> + <Window.Style> + <Style TargetType="Window"> + <Setter Property="Cursor" Value="Arrow"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding IsBusy}" Value="True"> + <Setter Property="Cursor" Value="Wait"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Window.Style> + + <Grid IsEnabled="{Binding IsFree}" Margin="10"> + <DockPanel> + <TextBlock DockPanel.Dock="Top" FontSize="22">Tango FSE Publish Utility</TextBlock> + <DockPanel> + <StackPanel VerticalAlignment="Bottom" DockPanel.Dock="Bottom"> + <TextBlock Text="{Binding Progress.Message}" Foreground="Gray"></TextBlock> + <ProgressBar Height="15" Margin="0 5 0 10" Maximum="{Binding Progress.Maximum}" Value="{Binding Progress.Value}" IsIndeterminate="{Binding Progress.IsIndeterminate}"></ProgressBar> + <Button Height="40" Command="{Binding PublishCommand}">PUBLISH</Button> + </StackPanel> + <StackPanel> + <DockPanel Margin="0 40 0 0"> + <TextBlock VerticalAlignment="Center" Width="136" DockPanel.Dock="Left">Environment:</TextBlock> + <ComboBox Margin="5 0 0 0" ItemsSource="{Binding Environments}" SelectedItem="{Binding SelectedEnvironment}" DisplayMemberPath="Description" /> + </DockPanel> + + <DockPanel Margin="0 20 0 0"> + <TextBlock VerticalAlignment="Center" Width="136" DockPanel.Dock="Left">Build Configuration:</TextBlock> + <ComboBox Margin="20 0 0 0" SelectedItem="{Binding BuildConfig}" SelectedIndex="0"> + <sys:String>Release</sys:String> + <sys:String>Debug</sys:String> + </ComboBox> + </DockPanel> + + <TextBlock Margin="0 20 0 0"> + <Run>Remote Version:</Run> + <Run Text="{Binding RemoteVersion}"></Run> + </TextBlock> + + <TextBlock Margin="0 20 0 0"> + <Run>Local Version:</Run> + <Run Text="{Binding LocalVersion}"></Run> + </TextBlock> + + <TextBlock Margin="0 20 0 0">Comments</TextBlock> + <TextBox Margin="0 5 0 0" Text="{Binding Comments}" Height="50" AcceptsReturn="True" TextWrapping="Wrap"></TextBox> + + <TextBlock Margin="0 20 0 0">Email</TextBlock> + <TextBox Margin="0 5 0 0" Text="{Binding Email}"></TextBox> + + <TextBlock Margin="0 10 0 0">Password</TextBlock> + <TextBox Margin="0 5 0 0" Text="{Binding Password}"></TextBox> + </StackPanel> + </DockPanel> + </DockPanel> + </Grid> +</Window> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml.cs new file mode 100644 index 000000000..7a4ddc19f --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.Publisher.UI +{ + /// <summary> + /// Interaction logic for MainWindow.xaml + /// </summary> + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + var vm = new MainWindowVM(); + DataContext = vm; + ContentRendered += (_, __) => + { + vm.Init(); + }; + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs new file mode 100644 index 000000000..148ee37f6 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs @@ -0,0 +1,316 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using Tango.AdvancedInstaller; +using Tango.Core; +using Tango.Core.Commands; +using Tango.FSE.BL.Web; +using Tango.FSE.Web.Messages; +using Tango.MachineService.Gateway; +using Tango.Settings; +using Tango.SharedUI; +using Tango.Transport.Web; + +namespace Tango.FSE.Publisher.UI +{ + public class MainWindowVM : ViewModel + { + private FSEWebClient _client; + private String _buildFolder; + private const String APP_EXE_NAME = "Tango.FSE.UI.exe"; + + private List<EnvironmentConfiguration> _environments; + public List<EnvironmentConfiguration> Environments + { + get { return _environments; } + set { _environments = value; RaisePropertyChangedAuto(); } + } + + private EnvironmentConfiguration _selectedEnvironment; + public EnvironmentConfiguration SelectedEnvironment + { + get { return _selectedEnvironment; } + set { _selectedEnvironment = value; RaisePropertyChangedAuto(); OnSelectedEnvironmentChanged(); InvalidateRelayCommands(); } + } + + private String _localVersion; + public String LocalVersion + { + get { return _localVersion; } + set { _localVersion = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private String _remoteVersion; + public String RemoteVersion + { + get { return _remoteVersion; } + set { _remoteVersion = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private String _buidConfig; + public String BuildConfig + { + get { return _buidConfig; } + set { _buidConfig = value; RaisePropertyChangedAuto(); OnBuildConfigChanged(); InvalidateRelayCommands(); } + } + + private String _email; + public String Email + { + get { return _email; } + set { _email = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private String _password; + public String Password + { + get { return _password; } + set { _password = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private String _comments; + public String Comments + { + get { return _comments; } + set { _comments = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private TangoProgress<double> _progress; + public TangoProgress<double> Progress + { + get { return _progress; } + set { _progress = value; RaisePropertyChangedAuto(); } + } + + + public RelayCommand PublishCommand { get; set; } + + public MainWindowVM() + { + PublishCommand = new RelayCommand(Publish, CanPublish); + + var settings = SettingsManager.Default.GetOrCreate<PublisherSettings>(); + Email = settings.Email; + Password = settings.Password; + } + + private bool CanPublish() + { + try + { + return + SelectedEnvironment != null && + Email.IsNotNullOrEmpty() && + Password.IsNotNullOrEmpty() && + Comments.IsNotNullOrEmpty() && + System.Version.Parse(LocalVersion) > System.Version.Parse(RemoteVersion) && + IsFree; + } + catch (Exception ex) + { + Debug.WriteLine(ex); + return false; + } + } + + public async void Init() + { + try + { + IsFree = false; + UpdateProgress("Retrieving environments..."); + using (HttpClient http = new HttpClient()) + { + GatewayClient client = new GatewayClient(ConfigurationManager.AppSettings.Get("GatewayUrl"), http); + Environments = (await client.GetEnvironmentsAsync(new EnvironmentsRequest())).Environments.OrderBy(x => x.DisplayIndex).ToList(); + } + + SelectedEnvironment = Environments.SingleOrDefault(x => x.Name == "TEST"); + + BuildConfig = "Release"; + + ProgressReady(); + } + catch (Exception ex) + { + ShowError($"Error retrieving environments from gateway service.\n{ex.FlattenMessage()}"); + } + finally + { + IsFree = true; + } + } + + private void OnBuildConfigChanged() + { + UpdateProgress("Searching build path..."); + + String path = Path.GetFullPath($@"../../../../Build\FSE\{BuildConfig}"); + if (!Directory.Exists(path)) + { + ShowError($"Could not locate FSE build folder at '{path}'."); + } + + _buildFolder = path; + + try + { + String appExe = Path.Combine(path, APP_EXE_NAME); + LocalVersion = FileVersionInfo.GetVersionInfo(appExe).ProductVersion; + ProgressReady(); + } + catch (Exception ex) + { + ShowError($"Could not determine the local application version.\n{ex.FlattenMessage()}"); + } + } + + private async Task OnSelectedEnvironmentChanged() + { + if (SelectedEnvironment != null) + { + try + { + IsFree = false; + UpdateProgress("Getting remote version..."); + _client = new FSEWebClient(SelectedEnvironment.MachineServiceAddress); + RemoteVersion = (await _client.GetLatestVersion(new Web.Messages.LatestVersionRequest())).Version; + ProgressReady(); + } + catch (Exception ex) + { + ShowError($"Error retrieving the remote version.\n{ex.FlattenMessage()}"); + } + finally + { + IsFree = true; + } + } + } + + private async void Publish() + { + try + { + IsFree = false; + UpdateProgress("Publishing Tango FSE..."); + + var settings = SettingsManager.Default.GetOrCreate<PublisherSettings>(); + settings.Email = Email; + settings.Password = Password; + settings.Save(); + + UpdateProgress("Validating Tango FSE installer...."); + + String projectPath = Path.GetFullPath(@"../../../../Advanced Installer Projects\FSE Installer.aip"); + + if (!File.Exists(projectPath)) + { + throw new FileNotFoundException($"Could not locate advanced installer project at '{projectPath}'."); + } + + String installerName = $"Tango FSE v{System.Version.Parse(LocalVersion).ToString(3)}.exe"; + String installerPath = Path.GetFullPath($@"../../../../Build\Installers\FSE\Release\{installerName}"); + + if (!Directory.Exists(Path.GetDirectoryName(installerPath))) + { + throw new DirectoryNotFoundException($"Could not locate installer output directory '{Path.GetDirectoryName(installerPath)}'."); + } + + UpdateProgress("Authenticating with machine service..."); + await _client.Login(new LoginRequest() + { + Email = Email, + Password = Password, + Version = LocalVersion + }); + + UpdateProgress("Requesting version upload..."); + var uploadResponse = await _client.UploadVersion(new UploadVersionRequest() + { + Comments = Comments, + InstallerBlobName = installerName, + Version = LocalVersion + }); + + UpdateProgress("Building Tango FSE installer..."); + + InstallerBuilder builder = new InstallerBuilder(projectPath); + await builder.Build(LocalVersion, installerPath); + + if (!File.Exists(installerPath)) + { + throw new FileNotFoundException($"Installer build was successful but the output installer could not be located at the specified path '{installerPath}'."); + } + + UpdateProgress("Uploading Tango FSE installer..."); + + using (StorageBlobUploader uploader = new StorageBlobUploader(uploadResponse.InstallerBlobAddress, installerPath)) + { + uploader.Progress += (x, e) => + { + UpdateProgress("Uploading Tango FSE installer...", false, e.Current, e.Total); + }; + + await uploader.Upload(); + } + + UpdateProgress("Finalizing version publishing..."); + + await _client.NotifyVersionUploadCompleted(new UploadCompletedRequest() + { + Token = uploadResponse.Token + }); + + UpdateProgress("Validating..."); + await OnSelectedEnvironmentChanged(); + + if (LocalVersion != RemoteVersion) + { + throw new InvalidDataException("Publishing completed but the local and remote versions are different?!"); + } + + Process.Start(SelectedEnvironment.MachineServiceAddress + "/fse"); + + UpdateProgress("Version published successfully!", false, 100, 100); + ShowInfo("Tango FSE published successfully!"); + } + catch (Exception ex) + { + ShowError($"Error while trying to publish Tango FSE\n{ex.FlattenMessage()}"); + } + finally + { + IsFree = true; + } + } + + private void ShowError(String error) + { + UpdateProgress("Error!", false, 0, 100); + MessageBox.Show(error, "FSE Publisher", MessageBoxButton.OK, MessageBoxImage.Error); + } + + private void ShowInfo(String message) + { + MessageBox.Show(message, "FSE Publisher", MessageBoxButton.OK, MessageBoxImage.Information); + } + + private void UpdateProgress(String message, bool isIndeterminate = true, double value = 0, double max = 100) + { + Progress = new TangoProgress<double>(message, isIndeterminate, value, max); + } + + private void ProgressReady() + { + UpdateProgress("Ready", false, 0, 100); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..970139e8e --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango.FSE.Publisher.UI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tango.FSE.Publisher.UI")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file +//inside a <PropertyGroup>. For example, if you are using US english +//in your source files, set the <UICulture> to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.Designer.cs new file mode 100644 index 000000000..48dfa2514 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.FSE.Publisher.UI.Properties +{ + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.FSE.Publisher.UI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.resx b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.resx @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.Designer.cs new file mode 100644 index 000000000..05f0c70e0 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.FSE.Publisher.UI.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.settings b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.settings @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> + <Settings /> +</SettingsFile>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/PublisherSettings.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/PublisherSettings.cs new file mode 100644 index 000000000..f2fd98b9c --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/PublisherSettings.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Settings; + +namespace Tango.FSE.Publisher.UI +{ + public class PublisherSettings : SettingsBase + { + public String Email { get; set; } + public String Password { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Tango.FSE.Publisher.UI.csproj b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Tango.FSE.Publisher.UI.csproj new file mode 100644 index 000000000..26a0ee007 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Tango.FSE.Publisher.UI.csproj @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{4C045668-9E5A-447A-A3B8-106C872C1039}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>Tango.FSE.Publisher.UI</RootNamespace> + <AssemblyName>Tango.FSE.Publisher.UI</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <WarningLevel>4</WarningLevel> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="Microsoft.SqlServer.AzureStorageEnum, Version=14.100.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.WindowsAzure.Storage, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" /> + <Reference Include="System" /> + <Reference Include="System.Configuration" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xaml"> + <RequiredTargetFramework>4.0</RequiredTargetFramework> + </Reference> + <Reference Include="WindowsBase" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + </ItemGroup> + <ItemGroup> + <ApplicationDefinition Include="App.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </ApplicationDefinition> + <Compile Include="PublisherSettings.cs" /> + <Page Include="MainWindow.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Compile Include="App.xaml.cs"> + <DependentUpon>App.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + <Compile Include="MainWindow.xaml.cs"> + <DependentUpon>MainWindow.xaml</DependentUpon> + <SubType>Code</SubType> + </Compile> + </ItemGroup> + <ItemGroup> + <Compile Include="MainWindowVM.cs" /> + <Compile Include="Properties\AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + </ItemGroup> + <ItemGroup> + <None Include="App.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Tango.AdvancedInstaller\Tango.AdvancedInstaller.csproj"> + <Project>{c5df1816-34e5-4700-824c-29623a1baa22}</Project> + <Name>Tango.AdvancedInstaller</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj"> + <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project> + <Name>Tango.Core</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Settings\Tango.Settings.csproj"> + <Project>{d8f1ad85-526a-4f50-b6dc-d437af63d8d8}</Project> + <Name>Tango.Settings</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj"> + <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project> + <Name>Tango.SharedUI</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Transport\Tango.Transport.csproj"> + <Project>{74e700b0-1156-4126-be40-ee450d3c3026}</Project> + <Name>Tango.Transport</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.Web\Tango.Web.csproj"> + <Project>{5001990f-977b-48ff-b217-0236a5022ad8}</Project> + <Name>Tango.Web</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.FSE.BL\Tango.FSE.BL.csproj"> + <Project>{834c81c3-09b5-45d7-be12-e7d1e6655a7c}</Project> + <Name>Tango.FSE.BL</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.FSE.Common\Tango.FSE.Common.csproj"> + <Project>{bc37cccb-7392-4f78-8d1c-e9629e6e046e}</Project> + <Name>Tango.FSE.Common</Name> + </ProjectReference> + <ProjectReference Include="..\Tango.FSE.Web\Tango.FSE.Web.csproj"> + <Project>{d6f7d31d-7f8c-45e2-ae0a-fbbd1f5f9d5f}</Project> + <Name>Tango.FSE.Web</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs index ef63cf517..4a0bc1496 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs @@ -8,5 +8,5 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango FSE")] -[assembly: AssemblyVersion("1.0.1.0")] +[assembly: AssemblyVersion("1.0.3.0")] diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionRequest.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionRequest.cs new file mode 100644 index 000000000..8f6117241 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionRequest.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Tango.Transport.Web; + +namespace Tango.FSE.Web.Messages +{ + public class LatestVersionRequest : WebRequestMessage + { + + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionResponse.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionResponse.cs new file mode 100644 index 000000000..3b239567c --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionResponse.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Tango.Transport.Web; + +namespace Tango.FSE.Web.Messages +{ + public class LatestVersionResponse : WebResponseMessage + { + public String Version { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedRequest.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedRequest.cs new file mode 100644 index 000000000..a82ac0083 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedRequest.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Tango.Transport.Web; + +namespace Tango.FSE.Web.Messages +{ + public class UploadCompletedRequest : WebRequestMessage + { + public String Token { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedResponse.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedResponse.cs new file mode 100644 index 000000000..065ccc3ce --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedResponse.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Transport.Web; + +namespace Tango.FSE.Web.Messages +{ + public class UploadCompletedResponse : WebResponseMessage + { + + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionRequest.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionRequest.cs new file mode 100644 index 000000000..01968d249 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionRequest.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Tango.Transport.Web; + +namespace Tango.FSE.Web.Messages +{ + public class UploadVersionRequest : WebRequestMessage + { + public String Version { get; set; } + + public String Comments { get; set; } + + public String InstallerBlobName { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionResponse.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionResponse.cs new file mode 100644 index 000000000..1ea801b63 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionResponse.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Tango.Transport.Web; + +namespace Tango.FSE.Web.Messages +{ + public class UploadVersionResponse : WebResponseMessage + { + public String Token { get; set; } + + public String BlobAddress { get; set; } + + public String InstallerBlobAddress { get; set; } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Tango.FSE.Web.csproj b/Software/Visual_Studio/FSE/Tango.FSE.Web/Tango.FSE.Web.csproj index 4c9f769c4..7c6e70919 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Web/Tango.FSE.Web.csproj +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Tango.FSE.Web.csproj @@ -49,10 +49,16 @@ <Compile Include="Messages\DownloadTangoVersionResponse.cs" /> <Compile Include="Messages\ForgotPasswordRequest.cs" /> <Compile Include="Messages\ForgotPasswordResponse.cs" /> + <Compile Include="Messages\LatestVersionRequest.cs" /> + <Compile Include="Messages\LatestVersionResponse.cs" /> <Compile Include="Messages\LoginRequest.cs" /> <Compile Include="Messages\LoginResponse.cs" /> <Compile Include="Messages\RefreshTokenRequest.cs" /> <Compile Include="Messages\RefreshTokenResponse.cs" /> + <Compile Include="Messages\UploadCompletedRequest.cs" /> + <Compile Include="Messages\UploadCompletedResponse.cs" /> + <Compile Include="Messages\UploadVersionRequest.cs" /> + <Compile Include="Messages\UploadVersionResponse.cs" /> <Compile Include="Messages\UserInvitationEmailResponse.cs" /> <Compile Include="Messages\UserInvitationEmailRequest.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 51788b0d2..c28ad8850 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -401,6 +401,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorLib.GradientTest EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.FSE.Procedures", "FSE\Modules\Tango.FSE.Procedures\Tango.FSE.Procedures.csproj", "{1754F846-4763-4000-807F-C7BFAA145DB2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.FSE.Publisher.UI", "FSE\Tango.FSE.Publisher.UI\Tango.FSE.Publisher.UI.csproj", "{4C045668-9E5A-447A-A3B8-106C872C1039}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -3748,6 +3750,26 @@ Global {1754F846-4763-4000-807F-C7BFAA145DB2}.Release|x64.Build.0 = Release|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Release|x86.ActiveCfg = Release|Any CPU {1754F846-4763-4000-807F-C7BFAA145DB2}.Release|x86.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|ARM.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|ARM.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|ARM64.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x64.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x86.ActiveCfg = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Debug|x86.Build.0 = Debug|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|Any CPU.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|ARM.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|ARM.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|ARM64.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|ARM64.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|x64.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|x64.Build.0 = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|x86.ActiveCfg = Release|Any CPU + {4C045668-9E5A-447A-A3B8-106C872C1039}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3884,6 +3906,7 @@ Global {8336A702-9C49-4C9E-ADCC-1886A666D3BD} = {7181F9DE-0760-46B7-AD8F-BDBCAEDEF1B7} {982C6FAC-2864-484E-82AE-5A36658C4DB1} = {8336A702-9C49-4C9E-ADCC-1886A666D3BD} {1754F846-4763-4000-807F-C7BFAA145DB2} = {4EE6DBA1-71BC-49E2-8DC7-266487E61050} + {4C045668-9E5A-447A-A3B8-106C872C1039} = {004337EB-0761-4D30-B9F5-AE6E1CFC6013} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution BuildVersion_UseGlobalSettings = False diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs index e471ed20c..387430f89 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs @@ -25,11 +25,15 @@ using Tango.Web.SQLServer; using Tango.Web.Storage; using System.Data.Entity; using static Tango.MachineService.Controllers.FSEController; +using Tango.MachineService.Models; +using Tango.BL.Enumerations; namespace Tango.MachineService.Controllers { public class FSEController : TangoController<TokenObject> { + private static List<FSEPendingUpload> _pendingUploads; + public class TokenObject { public String UserGuid { get; set; } @@ -46,6 +50,7 @@ namespace Tango.MachineService.Controllers static FSEController() { + _pendingUploads = new List<FSEPendingUpload>(); PendingPasswordResets = new List<PasswordReset>(); } @@ -323,5 +328,104 @@ namespace Tango.MachineService.Controllers return new ForgotPasswordResponse(); } + + #region Version Upload + + [HttpPost] + public LatestVersionResponse GetLatestVersion(LatestVersionRequest request) + { + using (ObservablesContext db = ObservablesContextHelper.CreateContext()) + { + var version = db.FseVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + return new LatestVersionResponse() { Version = version != null ? version.Version : "0.0.0.0" }; + } + } + + [HttpPost] + [JwtTokenFilter] + public UploadVersionResponse UploadVersion(UploadVersionRequest request) + { + UploadVersionResponse response = new UploadVersionResponse(); + + using (ObservablesContext db = ObservablesContextHelper.CreateContext()) + { + String userID = RequestToken.Object.UserGuid; + + var user = new UserBuilder(db).Set(userID).WithRolesAndPermissions().Build(); + + if (user != null && user.HasPermission(Permissions.PublishMachineStudioVersions)) + +{ + var latestVersion = db.FseVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + Version local_version = Version.Parse(request.Version); + + if (latestVersion == null || local_version > Version.Parse(latestVersion.Version)) + { + var manager = new BlobStorageManager(); + var container = manager.GetContainer(MachineServiceConfig.FSE_VERSIONS_CONTAINER); + var installerBlob = container.CreateEmptyBlob(request.InstallerBlobName); + + response.Token = Guid.NewGuid().ToString(); + response.InstallerBlobAddress = installerBlob.GenerateWriteSignature(TimeSpan.FromMinutes(30)); + + FSEPendingUpload pending_upload = new FSEPendingUpload() + { + UserGuid = user.Guid, + Comments = request.Comments, + Token = response.Token, + Version = request.Version, + BlobName = "BLOB", + InstallerBlobName = installerBlob.Name + }; + + _pendingUploads.Add(pending_upload); + } + else + { + throw new ArgumentException("New version must be greater than latest version."); + } + } + else + { + throw new AuthenticationException("Invalid user credentials."); + } + } + + return response; + } + + [HttpPost] + [JwtTokenFilter] + public UploadCompletedResponse NotifyVersionUploadCompleted(UploadCompletedRequest request) + { + FSEPendingUpload upload = _pendingUploads.FirstOrDefault(x => x.Token == request.Token); + + if (upload != null) + { + _pendingUploads.RemoveAll(x => x.Token == upload.Token); + + using (ObservablesContext db = ObservablesContextHelper.CreateContext()) + { + db.FseVersions.Add(new FseVersion() + { + Comments = upload.Comments, + BlobName = upload.BlobName, + InstallerBlobName = upload.InstallerBlobName, + UserGuid = upload.UserGuid, + Version = upload.Version, + }); + + db.SaveChanges(); + } + + return new UploadCompletedResponse(); + } + else + { + throw new ArgumentException("Invalid Token."); + } + } + + #endregion } } diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs b/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs new file mode 100644 index 000000000..7bb74d045 --- /dev/null +++ b/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Tango.MachineService.Models +{ + public class FSEPendingUpload + { + public String Token { get; set; } + + public String Version { get; set; } + + public String UserGuid { get; set; } + + public String Comments { get; set; } + + public String BlobName { get; set; } + + public String InstallerBlobName { get; set; } + } +}
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs index 142676f82..386a7c4b8 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs @@ -24,4 +24,4 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("2.0.*")] +[assembly: AssemblyVersion("3.0.0.0")] diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj index 9b25a25a8..c662b1e87 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj +++ b/Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj @@ -327,6 +327,7 @@ <Compile Include="Controllers\MachineStudioController.cs" /> <Compile Include="Models\DownloadModel.cs" /> <Compile Include="Models\LoginRequest.cs" /> + <Compile Include="Models\FSEPendingUpload.cs" /> <Compile Include="Models\MachineStudioPendingUpload.cs" /> <Compile Include="Models\PPCPendingUpdate.cs" /> <Compile Include="Models\PPCPendingUpload.cs" /> @@ -489,7 +490,7 @@ <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> </FlavorProperties> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
