aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/Visual_Studio/Advanced Installer Projects/FSE Installer.aip521
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml6
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Controls/WebAppPropertiesControl.xaml.cs23
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/MainWindow.xaml2
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentUpgradeView.xaml4
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs77
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs40
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentSettings.cs2
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/UpgradeEnvironmentConfiguration.cs2
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/FTP/FtpManager.cs17
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/MachineServiceSettings.cs1
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils/Storage/StorageManager.cs65
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml27
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogView.xaml.cs28
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/InputSelectionConfigurationDialogViewVM.cs26
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/IProcedureContext.cs11
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureContext.cs10
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInput.cs31
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputSelection.cs14
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ProcedureInputType.cs14
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/lib_template.csx1
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Resources/main_template.csx1
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Tango.FSE.Procedures.csproj10
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/ViewModels/ProcedureDesignerViewVM.cs24
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureDesignerView.xaml47
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Views/ProcedureRunnerExecutionView.xaml25
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.BL/Web/FSEWebClientBase.cs27
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.cs26
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FSERoundedCornersComboBox.xaml51
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Controls.xaml1
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj5
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.config9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml9
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/App.xaml.cs17
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml66
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindow.xaml.cs34
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs316
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/AssemblyInfo.cs55
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.Designer.cs71
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/PublisherSettings.cs15
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/Tango.FSE.Publisher.UI.csproj141
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionRequest.cs15
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/LatestVersionResponse.cs15
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedRequest.cs15
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadCompletedResponse.cs14
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionRequest.cs19
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/UploadVersionResponse.cs19
-rw-r--r--Software/Visual_Studio/FSE/Tango.FSE.Web/Tango.FSE.Web.csproj6
-rw-r--r--Software/Visual_Studio/Tango.sln23
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs104
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs22
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Tango.MachineService.csproj3
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="&lt;AI_DICTS&gt;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">