provo a riconfigurare task spostamento libs...

This commit is contained in:
Samuele E. Locatelli
2018-08-29 12:09:39 +02:00
parent 90a46df214
commit ac69050d99
11 changed files with 79 additions and 372 deletions
+78 -76
View File
@@ -1,34 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<!--MAIN CONF-->
<add key="appName" value="MTConnect Adapter"/>
<add key="appName" value="MTConnect Adapter" />
<!--parametri protocollo comunicazione-->
<add key="adpProto" value="MTC"/>
<add key="MTC_port" value="7878"/>
<add key="SOURS_IP" value="localhost"/>
<add key="SOURS_port" value="6379"/>
<add key="adpProto" value="MTC" />
<add key="MTC_port" value="7878" />
<add key="SOURS_IP" value="localhost" />
<add key="SOURS_port" value="6379" />
<!--gestione TIMERS e periodi multipli x thread lenti-->
<add key="startTimerMs" value="250"/>
<add key="timerIntMs" value="5"/><!--invio da adapter ad agent: 5ms-->
<add key="fastCount" value="20"/><!--100ms-->
<add key="normCount" value="100"/><!--500ms-->
<add key="slowCount" value="1000"/><!--5 sec-->
<add key="alarmSyncCount" value="6000"/><!--30 sec-->
<add key="waitEndCycle" value="0"/><!--ms attesa dopo ogni ciclo lettura...--><!--30 sec-->
<add key="startTimerMs" value="250" />
<add key="timerIntMs" value="5" />
<!--invio da adapter ad agent: 5ms-->
<add key="fastCount" value="20" />
<!--100ms-->
<add key="normCount" value="100" />
<!--500ms-->
<add key="slowCount" value="1000" />
<!--5 sec-->
<add key="alarmSyncCount" value="6000" />
<!--30 sec-->
<add key="waitEndCycle" value="0" />
<!--ms attesa dopo ogni ciclo lettura...-->
<!--30 sec-->
<!--num cicli PRIMA di leggere davvero GCode x rallentare-->
<add key="contChkGCod" value="2"/>
<add key="contChkGCod" value="2" />
<!--gestione FINESTRA campionamento x counter in secondi (dati validi dati DOPO che è piena la coda x la finestra richiesta, mantenuta a quella durata...)-->
<add key="countWindSize" value="30"/>
<add key="countWindSize" value="30" />
<!--parametri gestione watchdog-->
<add key="maxAdapterLockSec" value="5"/>
<add key="maxAdapterLockSec" value="5" />
<!--disabilito letture avanzate che UCCIDONO il programma (x ora SOLO allarmi CNC x FANUC-->
<add key="disableAdvRead" value="true"/>
<add key="disableAdvRead" value="true" />
<!--gestione x abilitare/disabilitare lettura nome asse e path di controllo (OSAI)-->
<add key="enableAxNamePath" value="true"/>
<add key="enableAxNamePath" value="true" />
<!--AREA CONF IP FANUC-->
<!--SIMULATORE LOCALE
IP LOOPBACK: 192.168.211.5/255.255.255.0
@@ -53,97 +60,92 @@
<!--<add key ="ipPLC" value="192.168.214.1" />-->
<!--CMS PROD-->
<!--<add key ="ipPLC" value="192.168.139.1" />-->
<add key="ipPLC" value="192.168.157.2"/>
<add key="recTime" value="true"/>
<add key="verbose" value="true"/>
<add key="loglevel" value="5"/>
<add key="mode" value="prod"/>
<add key="ipPLC" value="192.168.157.2" />
<add key="recTime" value="true" />
<add key="verbose" value="true" />
<add key="loglevel" value="5" />
<add key="mode" value="prod" />
<!--Definizione avvio Adapter-->
<add key="autoLoadConf" value="false"/>
<add key="autoStartOnLoad" value="true"/>
<add key="openDumpOnStart" value="true"/>
<add key="startMinimized" value="false"/>
<add key="windowCanMax" value="true"/>
<add key="trayClose" value="true"/>
<add key="autoSaveSec" value="60"/>
<add key="waitRecMSec" value="5000"/>
<add key="testCharSep" value="|"/>
<add key="fattdecimale" value="1000"/>
<add key="fattConvDistAssi" value="1000"/>
<add key="fattDecVA" value="1000"/>
<add key="autoLoadConf" value="false" />
<add key="autoStartOnLoad" value="true" />
<add key="openDumpOnStart" value="true" />
<add key="startMinimized" value="false" />
<add key="windowCanMax" value="true" />
<add key="trayClose" value="true" />
<add key="autoSaveSec" value="60" />
<add key="waitRecMSec" value="5000" />
<add key="testCharSep" value="|" />
<add key="fattdecimale" value="1000" />
<add key="fattConvDistAssi" value="1000" />
<add key="fattDecVA" value="1000" />
<!--conf file-->
<add key="dataPath" value="DATA"/>
<add key="dataConfPath" value="DATA\CONF"/>
<add key="dataDatPath" value="DATA\DAT"/>
<add key="resxPath" value="Resources"/>
<add key="AlarmList" value="AlarmList.map"/>
<add key="AlarmListCNC" value="AlarmListCNC.map"/>
<add key="defaultConfFile" value="Adapter_ItemList.xml"/>
<add key="defaultPersLayerFile" value="PersistData.dat"/>
<add key="maxNumDD" value="30"/>
<add key="defaultEsaFile" value="EsaKvara.ini"/>
<add key="CounterListFilePath" value="CounterList.map"/>
<add key="AnalogDataFilePath" value="AnalogData.map"/>
<add key="StatusListFilePath" value="StatusList.map"/>
<add key="SubModeListFilePath" value="SubModeList.map"/>
<add key="dataPath" value="DATA" />
<add key="dataConfPath" value="DATA\CONF" />
<add key="dataDatPath" value="DATA\DAT" />
<add key="resxPath" value="Resources" />
<add key="AlarmList" value="AlarmList.map" />
<add key="AlarmListCNC" value="AlarmListCNC.map" />
<add key="defaultConfFile" value="Adapter_ItemList.xml" />
<add key="defaultPersLayerFile" value="PersistData.dat" />
<add key="maxNumDD" value="30" />
<add key="defaultEsaFile" value="EsaKvara.ini" />
<add key="CounterListFilePath" value="CounterList.map" />
<add key="AnalogDataFilePath" value="AnalogData.map" />
<add key="StatusListFilePath" value="StatusList.map" />
<add key="SubModeListFilePath" value="SubModeList.map" />
<!--Gestione path siemens-->
<add key="SiemensBaseCountPath" value="0"/>
<add key="SiemensBaseCountPath" value="0" />
<!--gestione FANUC con assi limitati-->
<add key="FanucLimit3D" value="false"/>
<add key="FanucLimit3D" value="false" />
<!--conf gestione "semplificata" accesso a tutta la memoria ogni volta-->
<!--conf x CMS-->
<add key="procIotMem" value="false"/>
<add key="procIotMem" value="false" />
<!--conf x ESA-KVARA-->
<!--<add key="procIotMem" value="true"/>-->
<!--file configurazione IotMem (ESA KVARA)-->
<add key="IOTByteFilePath" value="IOT_ByteList.map"/>
<add key="IOTWordFilePath" value="IOT_WordList.map"/>
<add key="IOTDWordFilePath" value="IOT_DWordList.map"/>
<add key="IOTStringFilePath" value="IOT_StringList.map"/>
<add key="IOTByteFilePath" value="IOT_ByteList.map" />
<add key="IOTWordFilePath" value="IOT_WordList.map" />
<add key="IOTDWordFilePath" value="IOT_DWordList.map" />
<add key="IOTStringFilePath" value="IOT_StringList.map" />
<!--percorso file scambio dati "lenti" e conf MaintData memory area -->
<add key="GeneralStatusFilePath" value="CmsGeneralStatus.mtc"/>
<add key="GeneralStatusFilePath" value="CmsGeneralStatus.mtc" />
<!--gestione trigger eventi da allarmi-->
<add key="eStopCode" value="152"/>
<add key="eStopCode" value="152" />
<!--gestione watchdog CMS-->
<add key="sendWatchDog" value="true"/>
<add key="cycleWatchDog" value="3"/>
<add key="readAllTop" value="true"/>
<add key="fastCopy" value="true"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/>
<add key="sendWatchDog" value="true" />
<add key="cycleWatchDog" value="3" />
<add key="readAllTop" value="true" />
<add key="fastCopy" value="true" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
<!--gestione spindle override gobale forzato da max valori letti...-->
<add key="getMaxSpOver" value="true"/>
<add key="getMaxSpOver" value="true" />
</appSettings>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider"
type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
serviceUri=""/>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider"
type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
serviceUri="" cacheTimeout="86400"/>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="OPENcontrol"/>
<binding name="OPENcontrol" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://192.168.20.2:8080" binding="basicHttpBinding" bindingConfiguration="OPENcontrol" contract="OPENcontrol.OPENcontrolPortType"
name="OPENcontrol"/>
<endpoint address="http://192.168.20.2:8080" binding="basicHttpBinding" bindingConfiguration="OPENcontrol" contract="OPENcontrol.OPENcontrolPortType" name="OPENcontrol" />
</client>
</system.serviceModel>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;libs"/>
<probing privatePath="lib;libs" />
<probing privatePath="lib;libs" xmlns="" />
</assemblyBinding>
</runtime>
</configuration>
</configuration>
+1 -1
View File
@@ -3,7 +3,7 @@
<package id="NLog" version="4.5.8" targetFramework="net452" />
<package id="NLog.Config" version="4.5.8" targetFramework="net452" />
<package id="NLog.Schema" version="4.5.8" targetFramework="net452" />
<package id="PrettyBin" version="1.0.4" targetFramework="net452" />
<package id="PrettyBin" version="1.1.0" targetFramework="net452" />
<package id="SlowCheetah" version="2.5.48" targetFramework="net452" />
<package id="StackExchange.Redis" version="1.2.6" targetFramework="net452" />
</packages>
-9
View File
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<add key="repositoryPath" value="..\..\..\commonNugetPackages" />
</config>
</configuration>
-139
View File
@@ -1,139 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
<!-- Property that enables building a package from a project -->
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
<!-- Download NuGet.exe if it does not already exist -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
<!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!--
<PackageSource Include="https://www.nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
<PackageSource Include="https://www.nuget.org/api/v2/" />
<PackageSource Include="http://nuget.loc/api/v2/" />
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<!-- Windows specific commands -->
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
<PackagesConfig>packages.config</PackagesConfig>
</PropertyGroup>
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch>
<PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT'">"$(SolutionDir) "</PaddedSolutionDir>
<PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">"$(SolutionDir)"</PaddedSolutionDir>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
$(BuildDependsOn);
BuildPackage;
</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<!--
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
This effectively acts as a lock that makes sure that the download operation will only happen once and all
parallel builds will have to wait for it to complete.
-->
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadNuGetExe=$(DownloadNuGetExe)" />
</Target>
<Target Name="_DownloadNuGet">
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
</Target>
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://www.nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
</Project>
Binary file not shown.
-4
View File
@@ -1,4 +0,0 @@
PrettyBin
=========
Nuget package for C#, that moves dll,pdb and xml in bin/lib subfolder and ensures, that everything works.
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<runtime xdt:Transform="InsertIfMissing">
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
xdt:Transform="InsertIfMissing">
<probing xdt:Transform="InsertIfMissing"
privatePath="lib;libs" />
</assemblyBinding>
</runtime>
</configuration>
-2
View File
@@ -1,2 +0,0 @@
del PrettyBin.*.*.*.nupkg
nuget.exe pack PrettyBin.nuspec
-3
View File
@@ -1,3 +0,0 @@
param($installPath, $toolsPath, $package, $project)
Write-Host 'Init BinPrettify'
-78
View File
@@ -1,78 +0,0 @@
param($installPath, $toolsPath, $package, $project)
Try
{
$path = $project.FullName
Write-Host 'Install PrettifyBin; '
[xml]$doc = [xml](Get-Content $path)
# If a Namespace URI was not given, use the Xml document's default namespace.
$NamespaceURI = $doc.DocumentElement.NamespaceURI
Write-Host $NamespaceURI
# In order for SelectSingleNode() to actually work, we need to use the fully qualified node path along with an Xml Namespace Manager, so set them up.
$xmlNsManager = New-Object System.Xml.XmlNamespaceManager($doc.NameTable)
$xmlNsManager.AddNamespace("ns", $NamespaceURI)
# ============ This script attemps to Create this tags in csproj: ========
#
# <Target Name="AfterBuild">
# <ItemGroup>
# <MoveToLibFolder Include="$(OutputPath)*.dll ; $(OutputPath)*.pdb ; $(OutputPath)*.xml" />
# </ItemGroup>
# <Move SourceFiles="@(MoveToLibFolder)" DestinationFolder="$(OutputPath)lib" OverwriteReadOnlyFiles="true" />
# </Target>
$targetNode = $doc.SelectSingleNode("//ns:Project/ns:Target[@Name='AfterBuild']", $xmlNsManager)
if ($targetNode -eq $null)
{
Write-Host 'No Target AfterBuild Node. Creating'
$targetNode = $doc.CreateElement('Target', $NamespaceURI )
$targetNode.SetAttribute("Name" ,"AfterBuild")
$doc.Project.AppendChild($targetNode)
}
$filesToMoveNode = $targetNode.SelectSingleNode("//ns:ItemGroup/ns:MoveToLibFolder", $xmlNsManager)
if ($filesToMoveNode -eq $null)
{
Write-Host 'No ItemGroup whith MoveToLibFolder tag. Creating'
$itemGroup = $doc.CreateElement('ItemGroup', $NamespaceURI)
$filesToMoveNode = $doc.CreateElement('MoveToLibFolder', $NamespaceURI)
$itemGroup.AppendChild($filesToMoveNode)
$targetNode.AppendChild($itemGroup)
}
$filesToMoveNode.SetAttribute("Include" ,'$(OutputPath)*.dll ; $(OutputPath)*.pdb ; $(OutputPath)*.xml')
$MoveNode = $targetNode.SelectSingleNode('//ns:Move[contains(@SourceFiles,"@(MoveToLibFolder)")]', $xmlNsManager)
if ($MoveNode -eq $null)
{
Write-Host 'No Move tag in AfterBuild Target. Creating'
$MoveNode = $doc.CreateElement('Move', $NamespaceURI)
$MoveNode.SetAttribute("SourceFiles" ,'@(MoveToLibFolder)')
$targetNode.AppendChild($MoveNode)
}
$MoveNode.SetAttribute("DestinationFolder",'$(OutputPath)lib')
$MoveNode.SetAttribute("OverwriteReadOnlyFiles","true")
$doc.Save($path)
}
Catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
Write-Host $ErrorMessage
Write-Host $FailedItem
Break
}
@@ -1,45 +0,0 @@
param($installPath, $toolsPath, $package, $project)
Try
{
$path = $project.FullName
Write-Host 'Uninstall PrettifyBin; '
[ xml ]$doc = [ xml ](Get-Content $path)
# If a Namespace URI was not given, use the Xml document's default namespace.
$NamespaceURI = $doc.DocumentElement.NamespaceURI
Write-Host $NamespaceURI
# In order for SelectSingleNode() to actually work, we need to use the fully qualified node path along with an Xml Namespace Manager, so set them up.
$xmlNsManager = New-Object System.Xml.XmlNamespaceManager($doc.NameTable)
$xmlNsManager.AddNamespace("ns", $NamespaceURI)
# ============ This script attemps to remove this tags in csproj: ========
#
# <Target Name="AfterBuild">
# <Move SourceFiles="@(MoveToLibFolder)" DestinationFolder="$(OutputPath)lib" OverwriteReadOnlyFiles="true" />
# </Target>
$moveNode = $doc.SelectSingleNode("//ns:Project/ns:Target[@Name='AfterBuild']/ns:Move[contains(@SourceFiles,'@(MoveToLibFolder)')]", $xmlNsManager)
if ($moveNode -ne $null)
{
Write-Host 'We will delete move node'
$moveNode.ParentNode.RemoveChild($moveNode)
}
$doc.Save($path)
}
Catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
Write-Host $ErrorMessage
Write-Host $FailedItem
Break
}