Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 62254fcd8c | |||
| 7aa96c99a3 | |||
| 35455c2ef6 | |||
| 025dab9b20 | |||
| b1dc57324e |
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
-35
@@ -1,35 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<configuration>
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-8.0.0.2" newVersion="8.0.0.2" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
</configuration>
|
|
||||||
BIN
Binary file not shown.
-588
@@ -1,588 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
|
||||||
<asmv1:assemblyIdentity name="MarcusLaw.OutlookAddin.dll" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" type="win32" />
|
|
||||||
<description xmlns="urn:schemas-microsoft-com:asm.v1">MarcusLaw.OutlookAddin</description>
|
|
||||||
<application />
|
|
||||||
<entryPoint>
|
|
||||||
<co.v1:customHostSpecified />
|
|
||||||
</entryPoint>
|
|
||||||
<trustInfo>
|
|
||||||
<security>
|
|
||||||
<applicationRequestMinimum>
|
|
||||||
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
|
|
||||||
<defaultAssemblyRequest permissionSetReference="Custom" />
|
|
||||||
</applicationRequestMinimum>
|
|
||||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
||||||
<!--
|
|
||||||
UAC Manifest Options
|
|
||||||
If you want to change the Windows User Account Control level replace the
|
|
||||||
requestedExecutionLevel node with one of the following.
|
|
||||||
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
|
||||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
|
||||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
|
||||||
|
|
||||||
If you want to utilize File and Registry Virtualization for backward
|
|
||||||
compatibility then delete the requestedExecutionLevel node.
|
|
||||||
-->
|
|
||||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
|
||||||
</requestedPrivileges>
|
|
||||||
</security>
|
|
||||||
</trustInfo>
|
|
||||||
<dependency>
|
|
||||||
<dependentOS>
|
|
||||||
<osVersionInfo>
|
|
||||||
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
|
|
||||||
</osVersionInfo>
|
|
||||||
</dependentOS>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Accessibility" version="4.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.CSharp" version="4.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.Office.Tools" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.Office.Tools.Common" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.Office.Tools.Outlook" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.Office.Tools.v4.0.Framework" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="Microsoft.VisualStudio.Tools.Applications.Runtime" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="mscorlib" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="netstandard" version="2.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="PresentationCore" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="PresentationFramework" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="stdole" version="7.0.3300.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.ComponentModel.DataAnnotations" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Core" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Data" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Data.DataSetExtensions" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Deployment" version="4.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Drawing" version="4.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Net.Http" version="4.2.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Numerics" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Security" version="4.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Windows.Forms" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Xaml" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Xml" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="System.Xml.Linq" version="4.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="WindowsBase" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
|
||||||
<assemblyIdentity name="WindowsFormsIntegration" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="CommunityToolkit.Mvvm.dll" size="115496">
|
|
||||||
<assemblyIdentity name="CommunityToolkit.Mvvm" version="8.3.0.0" publicKeyToken="4AFF67A105548EE2" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>6Jm7PxxMSE5OkBu7iJrppKUcBydJn1dv4z/0D/2bhio=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MarcusLaw.OutlookAddin.dll" size="104960">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin" version="1.0.7.0" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>UFDuAUnK7LIuno/5e6mwDuBGdKJjD6uv4mhSODRsaLI=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MarcusLaw.OutlookAddin.Core.dll" size="94208">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.Core" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>AycV+vLsh7n9HMhrJdeglo3VQIc0GxGLYzffJuzQEKI=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MarcusLaw.OutlookAddin.UI.dll" size="98816">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.UI" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>QrrK6ct5D6PUeQW7tkvGmMXXafUw1y/cYMzlf05OkWk=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="en-US\MarcusLaw.OutlookAddin.UI.resources.dll" size="7168">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.UI.resources" version="1.0.0.0" language="en-US" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>bwKiIldXtJujP3A/5q5LqYQmTcq5rk3P1IKlRHPF5ks=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Bcl.AsyncInterfaces.dll" size="26904">
|
|
||||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" version="8.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>gGeCA70CA6ZZT04zCyJUPA3lBZOCuxyTNLeGi48xsbw=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Bcl.TimeProvider.dll" size="32528">
|
|
||||||
<assemblyIdentity name="Microsoft.Bcl.TimeProvider" version="8.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>aTJCtn2pGveN2kuR1gIOC4zaCNTJECF3oSUiAJ75uUA=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Caching.Abstractions.dll" size="34464">
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.Caching.Abstractions" version="8.0.0.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>9SqzavfWhbalT0vUMnzHXHpjwQOdET0vxf4gYix1WxM=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Caching.Memory.dll" size="50984">
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.Caching.Memory" version="8.0.0.1" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>wv358DZn4LYfOU9AvtIkha8QuSsRT8pHei2JPVvfUB8=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.DependencyInjection.Abstractions.dll" size="63784">
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" version="8.0.0.2" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>Ge3U9eaaRYncMUkJtYVKIvicS5qwQFkXcTl7LLGhe6Y=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Logging.Abstractions.dll" size="67880">
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" version="8.0.0.2" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>QBBtlRffKDtnxOXKG4YRVpA7fmvyDMzbFmSVRDFdQu4=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Options.dll" size="68768">
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.Options" version="8.0.0.2" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>c3DHL4ddmRGH4ntasuwkQro05v8nlQFTxmlq7JBVPF0=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Extensions.Primitives.dll" size="49936">
|
|
||||||
<assemblyIdentity name="Microsoft.Extensions.Primitives" version="8.0.0.0" publicKeyToken="ADB9793829DDAE60" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>PG6lVZRDPi8DQCJ70ViPurG6ihDJkxm1KMxVcyWTQMs=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="32664">
|
|
||||||
<assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>jLCTF8Mm6bD4PDN+rnzN6q0+ReXaNgPh68kMWgatFwI=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll" size="49048">
|
|
||||||
<assemblyIdentity name="Microsoft.Office.Tools.Outlook.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>AY9f4ogMVBnNqNKvGc0Ko8U3XsIDeLhU/c5jky7x2Zc=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Polly.dll" size="294960">
|
|
||||||
<assemblyIdentity name="Polly" version="8.0.0.0" publicKeyToken="C8A3FFC3F8F825CC" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>01vtaLqFx2ZiynhO4GgatEAd0Y1XmUo1AMI+CSIy5Ag=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Polly.Core.dll" size="241712">
|
|
||||||
<assemblyIdentity name="Polly.Core" version="8.0.0.0" publicKeyToken="C8A3FFC3F8F825CC" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>rxJ4TrxMsT8aI+YQY5A92tKKH4VDZnPLN6QPyHLgZsI=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Serilog.dll" size="154112">
|
|
||||||
<assemblyIdentity name="Serilog" version="4.0.0.0" publicKeyToken="24C2F752A8E58A10" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>E2b/L9D/pZ/Wsjo3IVAHEvDqtyucnyzPiJ0rn4CBiOQ=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Serilog.Sinks.File.dll" size="32768">
|
|
||||||
<assemblyIdentity name="Serilog.Sinks.File" version="6.0.0.0" publicKeyToken="24C2F752A8E58A10" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>yZtkok6s9F6xTZBKEpT9bm3EbA/+YcU+p7nFj1TNsOM=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Buffers.dll" size="20856">
|
|
||||||
<assemblyIdentity name="System.Buffers" version="4.0.3.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.ComponentModel.Annotations.dll" size="43152">
|
|
||||||
<assemblyIdentity name="System.ComponentModel.Annotations" version="4.2.1.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>BBE8hUkYVRnzICeQzrI99glkSHK5wkmlbSvPWVZhAsQ=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Diagnostics.DiagnosticSource.dll" size="189104">
|
|
||||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" version="8.0.0.1" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>GIdZJhX8CLvJGtYjB8jBHfwUxFvxINJx1mvkoNGhSac=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Memory.dll" size="142240">
|
|
||||||
<assemblyIdentity name="System.Memory" version="4.0.1.2" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Numerics.Vectors.dll" size="115856">
|
|
||||||
<assemblyIdentity name="System.Numerics.Vectors" version="4.1.4.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Runtime.CompilerServices.Unsafe.dll" size="18024">
|
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" version="6.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Security.Cryptography.ProtectedData.dll" size="21776">
|
|
||||||
<assemblyIdentity name="System.Security.Cryptography.ProtectedData" version="8.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>N/qb7rtPZhOmNTeKfhRfkYfgk0cboq7VzfmuFIdKX3s=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Text.Encodings.Web.dll" size="79024">
|
|
||||||
<assemblyIdentity name="System.Text.Encodings.Web" version="8.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>6cT17tGGyxKcUnxLjWfRY+ovI5bp2LluMLXnwSIDzoQ=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Text.Json.dll" size="644888">
|
|
||||||
<assemblyIdentity name="System.Text.Json" version="8.0.0.5" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>hsPyY66bRGmrEmbIBHEIcIJEfrSjjmuXv16E3hXAeh0=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Threading.Channels.dll" size="74000">
|
|
||||||
<assemblyIdentity name="System.Threading.Channels" version="8.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>pC5FobuOZSjSRPhhHPHj5zHKtIGmeSjBvoFeY1/+jsc=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Threading.Tasks.Extensions.dll" size="25984">
|
|
||||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" version="4.2.0.1" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.ValueTuple.dll" size="25232">
|
|
||||||
<assemblyIdentity name="System.ValueTuple" version="4.0.3.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>6QXRAlhbIsbfBPIZr1y9v6e8Fll56XiLYt9tzBZeEPQ=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<file name="MarcusLaw.OutlookAddin.dll.config" size="1827">
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>uMegIvfUIIUq0XcXNVowCSN4iTs7XAuPmHY2Gb/9AR4=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</file>
|
|
||||||
<vstav3:addIn xmlns:vstav3="urn:schemas-microsoft-com:vsta.v3">
|
|
||||||
<vstav3:entryPointsCollection>
|
|
||||||
<vstav3:entryPoints>
|
|
||||||
<vstav3:entryPoint class="OutlookAddin.ThisAddIn">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin" version="1.0.7.0" language="neutral" processorArchitecture="msil" />
|
|
||||||
</vstav3:entryPoint>
|
|
||||||
</vstav3:entryPoints>
|
|
||||||
</vstav3:entryPointsCollection>
|
|
||||||
<vstav3:update enabled="true">
|
|
||||||
<vstav3:expiration maximumAge="7" unit="days" />
|
|
||||||
</vstav3:update>
|
|
||||||
<vstav3:application>
|
|
||||||
<vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">
|
|
||||||
<vstov4:customization>
|
|
||||||
<vstov4:appAddIn application="Outlook" loadBehavior="3" keyName="MarcusLaw.OutlookAddin">
|
|
||||||
<vstov4:friendlyName>MarcusLaw.OutlookAddin</vstov4:friendlyName>
|
|
||||||
<vstov4:description>MarcusLaw.OutlookAddin</vstov4:description>
|
|
||||||
<vstov4.1:ribbonTypes xmlns:vstov4.1="urn:schemas-microsoft-com:vsto.v4.1" />
|
|
||||||
</vstov4:appAddIn>
|
|
||||||
</vstov4:customization>
|
|
||||||
</vstov4:customizations>
|
|
||||||
</vstav3:application>
|
|
||||||
</vstav3:addIn>
|
|
||||||
<publisherIdentity name="CN=HP-OFFICE1\Chaim" issuerKeyHash="461191bb791c8dcf6417521bc4cc018623c19538" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>wM13VCTBORPvZvtVa3YF66dro2pCcN8pucJyy+jTfoA=</DigestValue></Reference></SignedInfo><SignatureValue>dsDElqrcVTLfCKtMxmY/j7UatomYO80a72g8QUQgqIe4KmJyTr3gQkmu18UjhT2+mTbTIahwj03kIVNnAiFQK0FkGcK7HI758be3Wo0Ib3RDJevFegV/uNH5U4SImdPk1mHFoV7RuqB08ioQtHKd1VWi/vaEc8EVFCgRnLANrL4=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>xREBVt621l5WQ3HNT3kMrcZSyVcrSzXGDKTMvBwbaOmt7ZSsM5F8hZ+AQTmTC2BoXM8LeiP+wZAVU0MYokbWdHIG9TSqT5Uaud77qpDIfgJKk24CMS0ptE1PI4usLdwO1KyfRESHW8gxgVt0hAWuDudgI/EnOiyM5YRZNEf8Di0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="807ed3e8cb72c2b929df70426aa36ba7eb05766b55fb66ef1339c1245477cdc0" Description="" Url=""><as:assemblyIdentity name="MarcusLaw.OutlookAddin.dll" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=HP-OFFICE1\Chaim</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>UgZbGtjRWoDrCAiV0IY5v0u4waIeDBt21bIbnTo2Cmk=</DigestValue></Reference></SignedInfo><SignatureValue>rksSK/JiE2/Zsf1ESCzwLUilq+7Vv9kThYx7oxnWU7vzliAUhTRl/smA0NNZqJLlrQ0KmNP79OR0Z4c9o7hnGr+q6fUfjoevcSKdSSaHkrLMU70b799w+A2mP3Bn01znZjncPW5/WUGq5euehFDkfCaPU9IEGKx62XFjh8QIq7c=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>xREBVt621l5WQ3HNT3kMrcZSyVcrSzXGDKTMvBwbaOmt7ZSsM5F8hZ+AQTmTC2BoXM8LeiP+wZAVU0MYokbWdHIG9TSqT5Uaud77qpDIfgJKk24CMS0ptE1PI4usLdwO1KyfRESHW8gxgVt0hAWuDudgI/EnOiyM5YRZNEf8Di0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB2TCCAUKgAwIBAgIQc4FF18qP9L1B37xzsUPl3jANBgkqhkiG9w0BAQsFADArMSkwJwYDVQQDHiAASABQAC0ATwBGAEYASQBDAEUAMQBcAEMAaABhAGkAbTAeFw0yNjA1MTExMTQ0MDlaFw0yNzA1MTExNzQ0MDlaMCsxKTAnBgNVBAMeIABIAFAALQBPAEYARgBJAEMARQAxAFwAQwBoAGEAaQBtMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFEQFW3rbWXlZDcc1PeQytxlLJVytLNcYMpMy8HBto6a3tlKwzkXyFn4BBOZMLYGhczwt6I/7BkBVTQxiiRtZ0cgb1NKpPlRq53vuqkMh+AkqTbgIxLSm0TU8ji6wt3A7UrJ9ERIdbyDGBW3SEBa4O52Aj8Sc6LIzlhFk0R/wOLQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAFqX6W2LgF51biJUxrAe0KCZRG1YJsBhXyKf3RUDIWbyMuYmiwfIGKSEi5SX1wOD+4dF6+tBclK9pGOgqqNsfro67Mhdoo2HUhnrRXPUeqjgo5NR0qbxVYszhFBBBCjCxrDVjh8j7/lutwWUWGnF9mc3Bcw5GIHMZ+3d9T4IUYpI</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.vsto" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
|
||||||
<description asmv2:publisher="MarcusLaw.OutlookAddin" asmv2:product="MarcusLaw.OutlookAddin" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
|
||||||
<deployment install="false" mapFileExtensions="true" />
|
|
||||||
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
|
||||||
<framework targetVersion="4.8" profile="Full" supportedRuntime="4.0.30319" />
|
|
||||||
</compatibleFrameworks>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" codebase="Application Files\MarcusLaw.OutlookAddin_1_0_7_0\MarcusLaw.OutlookAddin.dll.manifest" size="36548">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.dll" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" type="win32" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>oFrXd0JDtHBok3bcmFLDAa5KFf5jBZVRZPJUYiSPakQ=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<publisherIdentity name="CN=HP-OFFICE1\Chaim" issuerKeyHash="461191bb791c8dcf6417521bc4cc018623c19538" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>AoiIvEZEDw5NCrymwVAvIW1PN4f6L/G/2Jw2WXuAemM=</DigestValue></Reference></SignedInfo><SignatureValue>dllu0k2mVVdH4KTiz7PQJQO5ZO3uO7Yzi5EGrzcM+SlFppRxFcu35Xgm82GLJ5UbsgzugIiHcq69HYsbYgqQ5KRAV2W2jFSLMbqXyXFTpGR3ZP/mV8DF9Od1Ha+Ul61ZPfLHqSsK+TyStc+P5DkiXnLkhKLqkUyWpSpVFlHGkNE=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>xREBVt621l5WQ3HNT3kMrcZSyVcrSzXGDKTMvBwbaOmt7ZSsM5F8hZ+AQTmTC2BoXM8LeiP+wZAVU0MYokbWdHIG9TSqT5Uaud77qpDIfgJKk24CMS0ptE1PI4usLdwO1KyfRESHW8gxgVt0hAWuDudgI/EnOiyM5YRZNEf8Di0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="637a807b59369cd8bff12ffa87374f6d212f50c1a6bc0a4d0e0f4446bc888802" Description="" Url=""><as:assemblyIdentity name="MarcusLaw.OutlookAddin.vsto" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=HP-OFFICE1\Chaim</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>a2ZfU5jaiU9/spzQ38LrO3Oh5H1amjxMKA+UDGIxk88=</DigestValue></Reference></SignedInfo><SignatureValue>ASngBgbaDxF8ymTll++oets2qBL0KP7cDJTN34zncwwk2+I+ToCM0Mg7z1cwvQZftfxnKgcwKD5b57mIHIqj6Aklgyf3Bh5ifXN9kUIyNjHxhe905AYjBWHyKLQm+ld6V3eb+N8HJ7jYUewbevols9Mm3pQVYr8eWHL3FOp0dyA=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>xREBVt621l5WQ3HNT3kMrcZSyVcrSzXGDKTMvBwbaOmt7ZSsM5F8hZ+AQTmTC2BoXM8LeiP+wZAVU0MYokbWdHIG9TSqT5Uaud77qpDIfgJKk24CMS0ptE1PI4usLdwO1KyfRESHW8gxgVt0hAWuDudgI/EnOiyM5YRZNEf8Di0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB2TCCAUKgAwIBAgIQc4FF18qP9L1B37xzsUPl3jANBgkqhkiG9w0BAQsFADArMSkwJwYDVQQDHiAASABQAC0ATwBGAEYASQBDAEUAMQBcAEMAaABhAGkAbTAeFw0yNjA1MTExMTQ0MDlaFw0yNzA1MTExNzQ0MDlaMCsxKTAnBgNVBAMeIABIAFAALQBPAEYARgBJAEMARQAxAFwAQwBoAGEAaQBtMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFEQFW3rbWXlZDcc1PeQytxlLJVytLNcYMpMy8HBto6a3tlKwzkXyFn4BBOZMLYGhczwt6I/7BkBVTQxiiRtZ0cgb1NKpPlRq53vuqkMh+AkqTbgIxLSm0TU8ji6wt3A7UrJ9ERIdbyDGBW3SEBa4O52Aj8Sc6LIzlhFk0R/wOLQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAFqX6W2LgF51biJUxrAe0KCZRG1YJsBhXyKf3RUDIWbyMuYmiwfIGKSEi5SX1wOD+4dF6+tBclK9pGOgqqNsfro67Mhdoo2HUhnrRXPUeqjgo5NR0qbxVYszhFBBBCjCxrDVjh8j7/lutwWUWGnF9mc3Bcw5GIHMZ+3d9T4IUYpI</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
@@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.vsto" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
|
||||||
<description asmv2:publisher="MarcusLaw.OutlookAddin" asmv2:product="MarcusLaw.OutlookAddin" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
|
||||||
<deployment install="false" mapFileExtensions="true" />
|
|
||||||
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
|
||||||
<framework targetVersion="4.8" profile="Full" supportedRuntime="4.0.30319" />
|
|
||||||
</compatibleFrameworks>
|
|
||||||
<dependency>
|
|
||||||
<dependentAssembly dependencyType="install" codebase="Application Files\MarcusLaw.OutlookAddin_1_0_7_0\MarcusLaw.OutlookAddin.dll.manifest" size="36548">
|
|
||||||
<assemblyIdentity name="MarcusLaw.OutlookAddin.dll" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" type="win32" />
|
|
||||||
<hash>
|
|
||||||
<dsig:Transforms>
|
|
||||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
|
||||||
</dsig:Transforms>
|
|
||||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
|
||||||
<dsig:DigestValue>oFrXd0JDtHBok3bcmFLDAa5KFf5jBZVRZPJUYiSPakQ=</dsig:DigestValue>
|
|
||||||
</hash>
|
|
||||||
</dependentAssembly>
|
|
||||||
</dependency>
|
|
||||||
<publisherIdentity name="CN=HP-OFFICE1\Chaim" issuerKeyHash="461191bb791c8dcf6417521bc4cc018623c19538" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>AoiIvEZEDw5NCrymwVAvIW1PN4f6L/G/2Jw2WXuAemM=</DigestValue></Reference></SignedInfo><SignatureValue>dllu0k2mVVdH4KTiz7PQJQO5ZO3uO7Yzi5EGrzcM+SlFppRxFcu35Xgm82GLJ5UbsgzugIiHcq69HYsbYgqQ5KRAV2W2jFSLMbqXyXFTpGR3ZP/mV8DF9Od1Ha+Ul61ZPfLHqSsK+TyStc+P5DkiXnLkhKLqkUyWpSpVFlHGkNE=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>xREBVt621l5WQ3HNT3kMrcZSyVcrSzXGDKTMvBwbaOmt7ZSsM5F8hZ+AQTmTC2BoXM8LeiP+wZAVU0MYokbWdHIG9TSqT5Uaud77qpDIfgJKk24CMS0ptE1PI4usLdwO1KyfRESHW8gxgVt0hAWuDudgI/EnOiyM5YRZNEf8Di0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="637a807b59369cd8bff12ffa87374f6d212f50c1a6bc0a4d0e0f4446bc888802" Description="" Url=""><as:assemblyIdentity name="MarcusLaw.OutlookAddin.vsto" version="1.0.7.0" publicKeyToken="41d8d795775ea8cb" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=HP-OFFICE1\Chaim</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>a2ZfU5jaiU9/spzQ38LrO3Oh5H1amjxMKA+UDGIxk88=</DigestValue></Reference></SignedInfo><SignatureValue>ASngBgbaDxF8ymTll++oets2qBL0KP7cDJTN34zncwwk2+I+ToCM0Mg7z1cwvQZftfxnKgcwKD5b57mIHIqj6Aklgyf3Bh5ifXN9kUIyNjHxhe905AYjBWHyKLQm+ld6V3eb+N8HJ7jYUewbevols9Mm3pQVYr8eWHL3FOp0dyA=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>xREBVt621l5WQ3HNT3kMrcZSyVcrSzXGDKTMvBwbaOmt7ZSsM5F8hZ+AQTmTC2BoXM8LeiP+wZAVU0MYokbWdHIG9TSqT5Uaud77qpDIfgJKk24CMS0ptE1PI4usLdwO1KyfRESHW8gxgVt0hAWuDudgI/EnOiyM5YRZNEf8Di0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB2TCCAUKgAwIBAgIQc4FF18qP9L1B37xzsUPl3jANBgkqhkiG9w0BAQsFADArMSkwJwYDVQQDHiAASABQAC0ATwBGAEYASQBDAEUAMQBcAEMAaABhAGkAbTAeFw0yNjA1MTExMTQ0MDlaFw0yNzA1MTExNzQ0MDlaMCsxKTAnBgNVBAMeIABIAFAALQBPAEYARgBJAEMARQAxAFwAQwBoAGEAaQBtMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFEQFW3rbWXlZDcc1PeQytxlLJVytLNcYMpMy8HBto6a3tlKwzkXyFn4BBOZMLYGhczwt6I/7BkBVTQxiiRtZ0cgb1NKpPlRq53vuqkMh+AkqTbgIxLSm0TU8ji6wt3A7UrJ9ERIdbyDGBW3SEBa4O52Aj8Sc6LIzlhFk0R/wOLQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAFqX6W2LgF51biJUxrAe0KCZRG1YJsBhXyKf3RUDIWbyMuYmiwfIGKSEi5SX1wOD+4dF6+tBclK9pGOgqqNsfro67Mhdoo2HUhnrRXPUeqjgo5NR0qbxVYszhFBBBCjCxrDVjh8j7/lutwWUWGnF9mc3Bcw5GIHMZ+3d9T4IUYpI</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
|
||||||
Binary file not shown.
@@ -268,14 +268,47 @@ If the session is on the Linux dev server (`/home/chaim/espocrm-extensions/Outlo
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## How releases work (current, 2026-05-24)
|
||||||
|
|
||||||
|
**Production install URL:** `https://platform.dev.marcus-law.co.il/outlook-addin/OutlookAddin.vsto`
|
||||||
|
|
||||||
|
**Release flow:**
|
||||||
|
|
||||||
|
1. Code change merged to `main` (push or PR-merge — no CI fires yet)
|
||||||
|
2. Bump `<ApplicationVersion>` in `src/OutlookAddin/OutlookAddin.csproj` and `AssemblyVersion` + `AssemblyFileVersion` in `src/OutlookAddin/Properties/AssemblyInfo.cs` to the next 4-part version (e.g. `1.2.1.0`). CI overrides `ApplicationVersion` from the tag at build time, but leaves AssemblyInfo alone — keep them in sync manually so the bundled DLL's FileVersion matches the manifest.
|
||||||
|
3. `git tag -a v1.2.1 -m "..." && git push --tags`
|
||||||
|
4. Gitea Actions workflow (`.gitea/workflows/build.yml`) fires:
|
||||||
|
- Imports the **real** codesign cert from secrets `CODESIGN_CERT_PFX_BASE64` + `CODESIGN_THUMBPRINT` (publicKeyToken `c68d2b4c25051c5b`, `CN=Marcus-Law OutlookAddin`)
|
||||||
|
- Patches csproj to swap the dev self-signed thumbprint (`2399E9BF…`) for the real one
|
||||||
|
- `msbuild /t:Publish` with `/p:InstallUrl=https://platform.dev.marcus-law.co.il/outlook-addin/` and `/p:ApplicationVersion=<tag>.0`
|
||||||
|
- Uploads `publish.tar.gz` to Gitea generic registry (`outlook-addin-publish/<version>/publish.tar.gz`)
|
||||||
|
- Linux job downloads the tar.gz, builds a Docker image `outlook-addin-cdn:latest`, pushes to Gitea registry, calls Coolify to redeploy the CDN container
|
||||||
|
- Posts to Mattermost channel `git-verelasim` with the install URL on success / a failure link on failure
|
||||||
|
5. Lawyers' installed Add-in checks the deployment manifest at the install URL every 7 days (configured in csproj `<UpdateInterval>7</UpdateInterval>`) or whenever they click "בדוק עדכונים" in Settings → אודות.
|
||||||
|
|
||||||
|
**Semver policy:** PATCH for bug fixes (unilateral), MINOR for visible features (unilateral when warranted), MAJOR only with Chaim's explicit approval.
|
||||||
|
|
||||||
|
**Branding (`KlearBranding` repo):** the product is presented to lawyers as **Klear** — title bars, MessageBox titles, ribbon group label, About header all say "Klear". The logo is mirrored from `espocrm-extensions/KlearBranding/files/client/custom/img/logo-klear.png` into `src/OutlookAddin.UI/Resources/logo-klear.png` and embedded as a WPF Resource. Brand accent color: `#121d2e` (dark navy).
|
||||||
|
|
||||||
|
**What stays MarcusLaw under the hood (deliberate — preserves auto-update across the rebrand):**
|
||||||
|
- ClickOnce app identity (`AssemblyName=MarcusLaw.OutlookAddin`)
|
||||||
|
- `%APPDATA%\MarcusLaw\OutlookAddin\settings.json` and `creds.dat`
|
||||||
|
- `%LOCALAPPDATA%\MarcusLaw\OutlookAddin\logs\`
|
||||||
|
- `DpapiCredentialStore.EntropySeed = "MarcusLaw.OutlookAddin.v1"`
|
||||||
|
- Code namespaces `MarcusLaw.OutlookAddin.*`
|
||||||
|
- Named pipe `MarcusLaw.OutlookAddin`
|
||||||
|
|
||||||
|
Changing any of these would orphan all existing installs and require a coordinated uninstall+reinstall on every lawyer's PC plus an entropy migration for DPAPI-encrypted credentials. See the LegalCRM rebrand misadventure in git history for what *not* to do.
|
||||||
|
|
||||||
|
**Known traps when releasing:**
|
||||||
|
- VS Publish wizard (Project Properties → Publish) **rewrites** csproj at every click — flips `<AutoIncrementApplicationRevision>` back to `true`, resets `<ApplicationVersion>` to whatever's in the UI, sometimes deletes prior `Application Files/<...>/` bundles. **Don't use it.** Tag and let CI do it.
|
||||||
|
- There's an old `Publish/` directory in git history that was a parallel manual-release channel via `gitea.../raw/branch/main/Publish/`. It's **not the production install URL** — that's platform.dev. The folder was dropped in v1.2.0.
|
||||||
|
|
||||||
## Things deliberately deferred
|
## Things deliberately deferred
|
||||||
|
|
||||||
| What | When | Why deferred |
|
| What | When | Why deferred |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Windows CI runner on Coolify | Until ClickOnce publish becomes useful | Local builds on dev's VS 2022 suffice through week 5 |
|
| Identity-level rebrand to a pure Klear product (AssemblyName, namespaces, DPAPI entropy, AppData paths) | Until there's another reason to force-reinstall on all 10 PCs | Visible rebrand already done in v1.2.0 without disrupting users; full rename trades aesthetic cleanliness for a day of IT coordination + lost credentials |
|
||||||
| Code signing cert (self-signed) + GPO push to 10 PCs | Week 6 (before release) | IT task; cert isn't useful until we have something to sign |
|
|
||||||
| ClickOnce hosting setup at `platform.dev.marcus-law.co.il/outlook-addin/` | Week 6 | No build artifacts yet |
|
|
||||||
| Mattermost release notification webhook in CI | Week 6 | Coupled to CI runner |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -46,35 +46,17 @@ namespace MarcusLaw.OutlookAddin.Core.Services
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string? attachmentId = null;
|
||||||
|
Exception? uploadException = null;
|
||||||
|
|
||||||
|
// Step 1: create the EspoCRM Attachment (binary stored in
|
||||||
|
// data/upload/<id>; not yet on the network share). Auth
|
||||||
|
// failures here are terminal — skip remaining items.
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Step 1: create the EspoCRM Attachment (binary stored
|
|
||||||
// in data/upload/<id>; not yet on the network share).
|
|
||||||
var uploaded = await _client.UploadAttachmentAsync(
|
var uploaded = await _client.UploadAttachmentAsync(
|
||||||
att.Name, att.ContentType, att.ContentBase64, cancellationToken).ConfigureAwait(false);
|
att.Name, att.ContentType, att.ContentBase64, cancellationToken).ConfigureAwait(false);
|
||||||
|
attachmentId = uploaded.Id;
|
||||||
// Step 2: ask Marcus-Law's NetworkStorageIntegration
|
|
||||||
// to place the uploaded blob under <targetFolderPath>.
|
|
||||||
// The integration appends the filename to the path.
|
|
||||||
await _client.UploadAttachmentToNetworkStorageAsync(
|
|
||||||
uploaded.Id, trimmedFolder, cancellationToken).ConfigureAwait(false);
|
|
||||||
|
|
||||||
// Step 3: verify the file actually landed on the share —
|
|
||||||
// the server can return 200 yet leave nothing on disk
|
|
||||||
// when a downstream WebDAV proxy silently fails. Read
|
|
||||||
// the folder back and look for our filename.
|
|
||||||
await VerifyArrivedAsync(att.Name, trimmedFolder, cancellationToken).ConfigureAwait(false);
|
|
||||||
|
|
||||||
_logger.Information(
|
|
||||||
"Saved attachment {Name} → {Path} (attachmentId={AttachmentId})",
|
|
||||||
att.Name, trimmedFolder, uploaded.Id);
|
|
||||||
|
|
||||||
summary.Items.Add(new AttachmentSaveItemResult
|
|
||||||
{
|
|
||||||
FileName = att.Name,
|
|
||||||
Outcome = AttachmentSaveOutcome.Saved,
|
|
||||||
AttachmentId = uploaded.Id
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
catch (EspoCrmAuthorizationException ex)
|
catch (EspoCrmAuthorizationException ex)
|
||||||
{
|
{
|
||||||
@@ -86,20 +68,85 @@ namespace MarcusLaw.OutlookAddin.Core.Services
|
|||||||
Outcome = AttachmentSaveOutcome.AuthRequired,
|
Outcome = AttachmentSaveOutcome.AuthRequired,
|
||||||
ErrorMessage = ex.Message
|
ErrorMessage = ex.Message
|
||||||
});
|
});
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
catch (OperationCanceledException)
|
catch (OperationCanceledException) { throw; }
|
||||||
{
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Warning(ex, "Attachment save failed for {Name}", att.Name);
|
// No attachment ID means we have nothing on the share —
|
||||||
|
// a hard fail.
|
||||||
|
_logger.Warning(ex, "Attachment upload (Step 1) failed for {Name}", att.Name);
|
||||||
summary.Items.Add(new AttachmentSaveItemResult
|
summary.Items.Add(new AttachmentSaveItemResult
|
||||||
{
|
{
|
||||||
FileName = att.Name,
|
FileName = att.Name,
|
||||||
Outcome = AttachmentSaveOutcome.Failed,
|
Outcome = AttachmentSaveOutcome.Failed,
|
||||||
ErrorMessage = ex.Message
|
ErrorMessage = ex.Message
|
||||||
});
|
});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2: ask the NetworkStorageIntegration to place the
|
||||||
|
// uploaded blob under <targetFolderPath>. The 15s Polly
|
||||||
|
// timeout sometimes fires while the server is still
|
||||||
|
// writing the file — capture the exception but don't
|
||||||
|
// decide the outcome yet.
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _client.UploadAttachmentToNetworkStorageAsync(
|
||||||
|
attachmentId, trimmedFolder, cancellationToken).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
catch (EspoCrmAuthorizationException ex)
|
||||||
|
{
|
||||||
|
_logger.Warning(ex, "Attachment save aborted on Step 2: EspoCRM rejected credentials");
|
||||||
|
summary.AuthRequired = true;
|
||||||
|
summary.Items.Add(new AttachmentSaveItemResult
|
||||||
|
{
|
||||||
|
FileName = att.Name,
|
||||||
|
Outcome = AttachmentSaveOutcome.AuthRequired,
|
||||||
|
ErrorMessage = ex.Message
|
||||||
|
});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException) { throw; }
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
uploadException = ex;
|
||||||
|
_logger.Warning(ex,
|
||||||
|
"Attachment NetworkStorage upload (Step 2) reported failure for {Name}; will verify disk before declaring failure",
|
||||||
|
att.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3: verify on disk. Authoritative — if the file is
|
||||||
|
// there, the save succeeded regardless of what Step 2
|
||||||
|
// reported (Polly timeouts during large writes are common).
|
||||||
|
var verified = await VerifyArrivedWithRetryAsync(
|
||||||
|
att.Name, trimmedFolder, uploadException != null, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (verified)
|
||||||
|
{
|
||||||
|
_logger.Information(
|
||||||
|
"Saved attachment {Name} → {Path} (attachmentId={AttachmentId}, uploadException={HadException})",
|
||||||
|
att.Name, trimmedFolder, attachmentId, uploadException != null);
|
||||||
|
summary.Items.Add(new AttachmentSaveItemResult
|
||||||
|
{
|
||||||
|
FileName = att.Name,
|
||||||
|
Outcome = AttachmentSaveOutcome.Saved,
|
||||||
|
AttachmentId = attachmentId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var message = uploadException?.Message
|
||||||
|
?? "Server reported success but the file is not on the share.";
|
||||||
|
_logger.Warning(
|
||||||
|
"Attachment save Failed for {Name}: not present after verify (uploadException={Msg})",
|
||||||
|
att.Name, message);
|
||||||
|
summary.Items.Add(new AttachmentSaveItemResult
|
||||||
|
{
|
||||||
|
FileName = att.Name,
|
||||||
|
Outcome = AttachmentSaveOutcome.Failed,
|
||||||
|
ErrorMessage = message
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,51 +154,60 @@ namespace MarcusLaw.OutlookAddin.Core.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Post-upload sanity check: list the folder we just wrote into
|
/// Authoritative post-upload check. Returns true if the file is on
|
||||||
/// and confirm a file with the same (possibly sanitized) name
|
/// disk under <paramref name="folderPath"/>. When the upload call
|
||||||
/// shows up. Diagnostic only — does not change the outcome. If
|
/// raised (typically Polly's 15s timeout on a still-writing server),
|
||||||
/// the file isn't there, log a WARNING with everything that IS
|
/// we retry the listing a few times so the server gets a chance
|
||||||
/// in the folder so we can spot the actual server-side path.
|
/// to finish.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private async Task VerifyArrivedAsync(string expectedName, string folderPath, CancellationToken ct)
|
private async Task<bool> VerifyArrivedWithRetryAsync(string expectedName, string folderPath, bool afterFailure, CancellationToken ct)
|
||||||
|
{
|
||||||
|
// When the upload appeared to succeed, one check is plenty — the
|
||||||
|
// file is already there. When it appeared to fail, the server
|
||||||
|
// may still be writing; give it a few extra seconds.
|
||||||
|
var attempts = afterFailure ? 4 : 1;
|
||||||
|
var delay = TimeSpan.FromSeconds(2);
|
||||||
|
|
||||||
|
for (int i = 0; i < attempts; i++)
|
||||||
|
{
|
||||||
|
ct.ThrowIfCancellationRequested();
|
||||||
|
if (i > 0) await Task.Delay(delay, ct).ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (await IsPresentAsync(expectedName, folderPath, ct).ConfigureAwait(false))
|
||||||
|
{
|
||||||
|
if (i > 0)
|
||||||
|
{
|
||||||
|
_logger.Information(
|
||||||
|
"Post-upload verify: '{Expected}' appeared under '{Path}' on attempt {Attempt}/{Total} despite upload exception",
|
||||||
|
expectedName, folderPath, i + 1, attempts);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<bool> IsPresentAsync(string expectedName, string folderPath, CancellationToken ct)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var items = await _client.ListNetworkStorageFolderAsync(folderPath, ct).ConfigureAwait(false);
|
var items = await _client.ListNetworkStorageFolderAsync(folderPath, ct).ConfigureAwait(false);
|
||||||
var trimmedExpected = expectedName.Trim().TrimStart('-', ' ').TrimEnd('-', ' ');
|
var trimmedExpected = expectedName.Trim().TrimStart('-', ' ').TrimEnd('-', ' ');
|
||||||
bool found = false;
|
|
||||||
foreach (var it in items)
|
foreach (var it in items)
|
||||||
{
|
{
|
||||||
if (it.IsFolder) continue;
|
if (it.IsFolder) continue;
|
||||||
if (string.Equals(it.Name, expectedName, StringComparison.Ordinal) ||
|
if (string.Equals(it.Name, expectedName, StringComparison.Ordinal) ||
|
||||||
string.Equals(it.Name, trimmedExpected, StringComparison.Ordinal))
|
string.Equals(it.Name, trimmedExpected, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
found = true;
|
return true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found)
|
return false;
|
||||||
{
|
|
||||||
var names = new List<string>();
|
|
||||||
foreach (var it in items)
|
|
||||||
{
|
|
||||||
if (it.IsFolder) continue;
|
|
||||||
names.Add(it.Name);
|
|
||||||
}
|
|
||||||
_logger.Warning(
|
|
||||||
"Post-upload verify: expected '{Expected}' under '{Path}' but it's NOT in the listing. " +
|
|
||||||
"Server reported the upload as successful but the file is not on the share. " +
|
|
||||||
"Files currently in that folder: [{Files}]",
|
|
||||||
expectedName, folderPath, string.Join(", ", names));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_logger.Information("Post-upload verify: '{Expected}' present under '{Path}'", expectedName, folderPath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.Warning(ex, "Post-upload verify failed for '{Expected}' under '{Path}'", expectedName, folderPath);
|
_logger.Warning(ex, "Post-upload listing under '{Path}' failed", folderPath);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,14 +184,20 @@
|
|||||||
FontSize="11"
|
FontSize="11"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Margin="8,0,0,0" />
|
Margin="8,0,0,0" />
|
||||||
<TextBox Text="{Binding FileName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
<TextBlock Text="{Binding Extension}"
|
||||||
|
DockPanel.Dock="Left"
|
||||||
|
Foreground="{StaticResource Muted}"
|
||||||
|
FontSize="12"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Margin="6,0,0,0" />
|
||||||
|
<TextBox Text="{Binding BaseName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||||
IsEnabled="{Binding IsSelected}"
|
IsEnabled="{Binding IsSelected}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
BorderThickness="1"
|
BorderThickness="1"
|
||||||
BorderBrush="{StaticResource Border}"
|
BorderBrush="{StaticResource Border}"
|
||||||
Padding="6,3"
|
Padding="6,3"
|
||||||
Margin="8,0,0,0"
|
Margin="8,0,0,0"
|
||||||
ToolTip="לחץ כדי לערוך את שם הקובץ לפני השמירה" />
|
ToolTip="לחץ כדי לערוך את שם הקובץ (הסיומת נשמרת אוטומטית)" />
|
||||||
</DockPanel>
|
</DockPanel>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ItemsControl.ItemTemplate>
|
</ItemsControl.ItemTemplate>
|
||||||
|
|||||||
@@ -98,8 +98,19 @@
|
|||||||
|
|
||||||
<TabItem Header="אודות">
|
<TabItem Header="אודות">
|
||||||
<StackPanel Margin="16">
|
<StackPanel Margin="16">
|
||||||
<TextBlock Text="Marcus-Law OutlookAddin" FontWeight="Bold" FontSize="16" />
|
<Border Background="#121d2e" CornerRadius="6" Padding="14,12" Margin="0,0,0,12">
|
||||||
<TextBlock Text="תוסף Klear ל-Microsoft Outlook" Margin="0,4,0,12" />
|
<DockPanel LastChildFill="True">
|
||||||
|
<Image DockPanel.Dock="Right"
|
||||||
|
Source="pack://application:,,,/MarcusLaw.OutlookAddin.UI;component/Resources/logo-klear.png"
|
||||||
|
Height="36"
|
||||||
|
Margin="12,0,0,0"
|
||||||
|
VerticalAlignment="Center" />
|
||||||
|
<StackPanel VerticalAlignment="Center">
|
||||||
|
<TextBlock Text="Klear" Foreground="White" FontWeight="Bold" FontSize="18" />
|
||||||
|
<TextBlock Text="תוסף ל-Microsoft Outlook" Foreground="#CBD5E1" FontSize="12" />
|
||||||
|
</StackPanel>
|
||||||
|
</DockPanel>
|
||||||
|
</Border>
|
||||||
<DockPanel LastChildFill="False" Margin="0,0,0,4">
|
<DockPanel LastChildFill="False" Margin="0,0,0,4">
|
||||||
<TextBlock DockPanel.Dock="Left" Text="{Binding VersionLine}" Foreground="Gray" VerticalAlignment="Center" />
|
<TextBlock DockPanel.Dock="Left" Text="{Binding VersionLine}" Foreground="Gray" VerticalAlignment="Center" />
|
||||||
<Button DockPanel.Dock="Right"
|
<Button DockPanel.Dock="Right"
|
||||||
@@ -112,10 +123,22 @@
|
|||||||
Foreground="{Binding UpdateStatusBrush}"
|
Foreground="{Binding UpdateStatusBrush}"
|
||||||
TextWrapping="Wrap"
|
TextWrapping="Wrap"
|
||||||
Margin="0,4,0,0" />
|
Margin="0,4,0,0" />
|
||||||
<TextBlock Margin="0,16,0,0" TextWrapping="Wrap"
|
<TextBlock Margin="0,16,0,0" TextWrapping="Wrap">
|
||||||
Text="לוגים: %LOCALAPPDATA%\MarcusLaw\OutlookAddin\logs" />
|
<Run Text="לוגים: " />
|
||||||
<TextBlock TextWrapping="Wrap"
|
<Hyperlink Tag="%LOCALAPPDATA%\MarcusLaw\OutlookAddin\logs"
|
||||||
Text="הגדרות: %APPDATA%\MarcusLaw\OutlookAddin\settings.json" />
|
Click="OnOpenFolderHyperlink"
|
||||||
|
ToolTip="פתח את התיקייה ב-Explorer">
|
||||||
|
<Run Text="%LOCALAPPDATA%\MarcusLaw\OutlookAddin\logs" />
|
||||||
|
</Hyperlink>
|
||||||
|
</TextBlock>
|
||||||
|
<TextBlock TextWrapping="Wrap">
|
||||||
|
<Run Text="הגדרות: " />
|
||||||
|
<Hyperlink Tag="%APPDATA%\MarcusLaw\OutlookAddin"
|
||||||
|
Click="OnOpenFolderHyperlink"
|
||||||
|
ToolTip="פתח את התיקייה ב-Explorer">
|
||||||
|
<Run Text="%APPDATA%\MarcusLaw\OutlookAddin\settings.json" />
|
||||||
|
</Hyperlink>
|
||||||
|
</TextBlock>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</TabControl>
|
</TabControl>
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using System.Windows.Documents;
|
||||||
using MarcusLaw.OutlookAddin.UI.ViewModels;
|
using MarcusLaw.OutlookAddin.UI.ViewModels;
|
||||||
|
|
||||||
namespace MarcusLaw.OutlookAddin.UI.Dialogs
|
namespace MarcusLaw.OutlookAddin.UI.Dialogs
|
||||||
@@ -40,5 +43,23 @@ namespace MarcusLaw.OutlookAddin.UI.Dialogs
|
|||||||
DialogResult = _viewModel?.DialogResult;
|
DialogResult = _viewModel?.DialogResult;
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnOpenFolderHyperlink(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!(sender is Hyperlink h) || !(h.Tag is string raw)) return;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var path = Environment.ExpandEnvironmentVariables(raw);
|
||||||
|
// Create the folder lazily so the link works even on the very
|
||||||
|
// first run, before any log has been written.
|
||||||
|
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
|
||||||
|
Process.Start(new ProcessStartInfo("explorer.exe", "\"" + path + "\"") { UseShellExecute = true });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("פתיחת התיקייה נכשלה: " + ex.Message, "Klear",
|
||||||
|
MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,4 +25,8 @@
|
|||||||
<ProjectReference Include="..\OutlookAddin.Core\OutlookAddin.Core.csproj" />
|
<ProjectReference Include="..\OutlookAddin.Core\OutlookAddin.Core.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\logo-klear.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@@ -1,3 +1,4 @@
|
|||||||
|
using System.IO;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using MarcusLaw.OutlookAddin.Core.Models;
|
using MarcusLaw.OutlookAddin.Core.Models;
|
||||||
|
|
||||||
@@ -10,23 +11,42 @@ namespace MarcusLaw.OutlookAddin.UI.ViewModels
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool isSelected = true;
|
private bool isSelected = true;
|
||||||
|
|
||||||
public string FileName
|
/// <summary>
|
||||||
|
/// Frozen at construction from the original filename. The user
|
||||||
|
/// edits only the base name; the extension always tags along.
|
||||||
|
/// </summary>
|
||||||
|
public string Extension { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Editable base name without the extension. Setting this rewrites
|
||||||
|
/// <see cref="EspoAttachment.Name"/> as <basename><Extension>.
|
||||||
|
/// </summary>
|
||||||
|
public string BaseName
|
||||||
{
|
{
|
||||||
get => Data.Name;
|
get => Path.GetFileNameWithoutExtension(Data.Name) ?? string.Empty;
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
var newName = value ?? string.Empty;
|
var newBase = (value ?? string.Empty).Trim();
|
||||||
if (Data.Name == newName) return;
|
var newFull = newBase + Extension;
|
||||||
Data.Name = newName;
|
if (Data.Name == newFull) return;
|
||||||
|
Data.Name = newFull;
|
||||||
OnPropertyChanged();
|
OnPropertyChanged();
|
||||||
|
OnPropertyChanged(nameof(FileName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Full filename including extension — what actually goes to the
|
||||||
|
/// server. Read-only mirror of <see cref="EspoAttachment.Name"/>.
|
||||||
|
/// </summary>
|
||||||
|
public string FileName => Data.Name;
|
||||||
|
|
||||||
public string SizeDisplay { get; }
|
public string SizeDisplay { get; }
|
||||||
|
|
||||||
public AttachmentRowViewModel(EspoAttachment data)
|
public AttachmentRowViewModel(EspoAttachment data)
|
||||||
{
|
{
|
||||||
Data = data;
|
Data = data;
|
||||||
|
Extension = Path.GetExtension(data.Name) ?? string.Empty;
|
||||||
SizeDisplay = ComputeSize(data.ContentBase64);
|
SizeDisplay = ComputeSize(data.ContentBase64);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<PublishUrl>C:\Users\Chaim\source\repos\OutlookAddin\Publish\</PublishUrl>
|
<PublishUrl>C:\Users\Chaim\source\repos\OutlookAddin\Publish\</PublishUrl>
|
||||||
<InstallUrl>https://gitea.dev.marcus-law.co.il/espocrm-extensions/OutlookAddin/raw/branch/main/Publish/</InstallUrl>
|
<InstallUrl>https://gitea.dev.marcus-law.co.il/espocrm-extensions/OutlookAddin/raw/branch/main/Publish/</InstallUrl>
|
||||||
<TargetCulture>en</TargetCulture>
|
<TargetCulture>en</TargetCulture>
|
||||||
<ApplicationVersion>1.1.2.0</ApplicationVersion>
|
<ApplicationVersion>1.2.2.0</ApplicationVersion>
|
||||||
<AutoIncrementApplicationRevision>false</AutoIncrementApplicationRevision>
|
<AutoIncrementApplicationRevision>false</AutoIncrementApplicationRevision>
|
||||||
<UpdateEnabled>true</UpdateEnabled>
|
<UpdateEnabled>true</UpdateEnabled>
|
||||||
<UpdateInterval>7</UpdateInterval>
|
<UpdateInterval>7</UpdateInterval>
|
||||||
|
|||||||
@@ -33,6 +33,6 @@ using System.Security;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.1.2.0")]
|
[assembly: AssemblyVersion("1.2.2.0")]
|
||||||
[assembly: AssemblyFileVersion("1.1.2.0")]
|
[assembly: AssemblyFileVersion("1.2.2.0")]
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<ribbon>
|
<ribbon>
|
||||||
<tabs>
|
<tabs>
|
||||||
<tab idMso="TabMail">
|
<tab idMso="TabMail">
|
||||||
<group id="MarcusLawGroup" label="Marcus-Law" insertBeforeMso="GroupMailMove">
|
<group id="MarcusLawGroup" label="Klear" insertBeforeMso="GroupMailMove">
|
||||||
<button id="FileToEspoCrm"
|
<button id="FileToEspoCrm"
|
||||||
label="Klear"
|
label="Klear"
|
||||||
screentip="תייק את המייל הנבחר ל-Klear"
|
screentip="תייק את המייל הנבחר ל-Klear"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<ribbon>
|
<ribbon>
|
||||||
<tabs>
|
<tabs>
|
||||||
<tab idMso="TabNewMailMessage">
|
<tab idMso="TabNewMailMessage">
|
||||||
<group id="MarcusLawComposeGroup" label="Marcus-Law" insertBeforeMso="GroupClipboard">
|
<group id="MarcusLawComposeGroup" label="Klear" insertBeforeMso="GroupClipboard">
|
||||||
<button id="ComposeFromCase"
|
<button id="ComposeFromCase"
|
||||||
label="כתוב מתיק"
|
label="כתוב מתיק"
|
||||||
screentip="פתח את המייל מתיק Klear"
|
screentip="פתח את המייל מתיק Klear"
|
||||||
|
|||||||
@@ -404,7 +404,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"התוסף עדיין לא מוגדר. פתח את ההגדרות תחילה.",
|
"התוסף עדיין לא מוגדר. פתח את ההגדרות תחילה.",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Information);
|
MessageBoxImage.Information);
|
||||||
return;
|
return;
|
||||||
@@ -425,7 +425,7 @@ namespace OutlookAddin.Services
|
|||||||
Logger.Error(ex, "LaunchComposeFromCaseAsync failed");
|
Logger.Error(ex, "LaunchComposeFromCaseAsync failed");
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"טעינת התיק נכשלה: " + ex.Message,
|
"טעינת התיק נכשלה: " + ex.Message,
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Error);
|
MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@@ -446,7 +446,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
var result = MessageBox.Show(
|
var result = MessageBox.Show(
|
||||||
"התוסף עדיין לא מוגדר. לפתוח את חלון ההגדרות עכשיו?",
|
"התוסף עדיין לא מוגדר. לפתוח את חלון ההגדרות עכשיו?",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.YesNo,
|
MessageBoxButton.YesNo,
|
||||||
MessageBoxImage.Information);
|
MessageBoxImage.Information);
|
||||||
if (result == MessageBoxResult.Yes) LaunchSettings();
|
if (result == MessageBoxResult.Yes) LaunchSettings();
|
||||||
@@ -465,7 +465,7 @@ namespace OutlookAddin.Services
|
|||||||
Logger.Error(ex, "LaunchSaveAttachmentsAsync: extract failed");
|
Logger.Error(ex, "LaunchSaveAttachmentsAsync: extract failed");
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"קריאת הקבצים המצורפים נכשלה: " + ex.Message,
|
"קריאת הקבצים המצורפים נכשלה: " + ex.Message,
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Error);
|
MessageBoxImage.Error);
|
||||||
return;
|
return;
|
||||||
@@ -475,7 +475,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"אין במייל הזה קבצים מצורפים לשמירה.",
|
"אין במייל הזה קבצים מצורפים לשמירה.",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Information);
|
MessageBoxImage.Information);
|
||||||
return;
|
return;
|
||||||
@@ -505,7 +505,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"לא ניתן לחשב את נתיב התיקייה של התיק. ייתכן שהתיק עוד לא הוגדר ב-Klear.",
|
"לא ניתן לחשב את נתיב התיקייה של התיק. ייתכן שהתיק עוד לא הוגדר ב-Klear.",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Warning);
|
MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
@@ -535,7 +535,7 @@ namespace OutlookAddin.Services
|
|||||||
Logger.Error(ex, "LaunchSaveAttachmentsAsync failed");
|
Logger.Error(ex, "LaunchSaveAttachmentsAsync failed");
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"שמירת הקבצים נכשלה: " + ex.Message,
|
"שמירת הקבצים נכשלה: " + ex.Message,
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Error);
|
MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@@ -558,7 +558,7 @@ namespace OutlookAddin.Services
|
|||||||
message = parts.Count == 0 ? "לא נשמרו פריטים." : string.Join(" · ", parts);
|
message = parts.Count == 0 ? "לא נשמרו פריטים." : string.Join(" · ", parts);
|
||||||
icon = summary.FailedCount > 0 ? MessageBoxImage.Warning : MessageBoxImage.Information;
|
icon = summary.FailedCount > 0 ? MessageBoxImage.Warning : MessageBoxImage.Information;
|
||||||
}
|
}
|
||||||
MessageBox.Show(message, "Marcus-Law OutlookAddin", MessageBoxButton.OK, icon);
|
MessageBox.Show(message, "Klear", MessageBoxButton.OK, icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -572,7 +572,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"התוסף עדיין לא מוגדר. פתח את ההגדרות תחילה.",
|
"התוסף עדיין לא מוגדר. פתח את ההגדרות תחילה.",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Information);
|
MessageBoxImage.Information);
|
||||||
return;
|
return;
|
||||||
@@ -591,7 +591,7 @@ namespace OutlookAddin.Services
|
|||||||
if (mail != null) try { Marshal.ReleaseComObject(mail); } catch { }
|
if (mail != null) try { Marshal.ReleaseComObject(mail); } catch { }
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"פתיחת המייל מתיק נכשלה: " + ex.Message,
|
"פתיחת המייל מתיק נכשלה: " + ex.Message,
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Error);
|
MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@@ -656,7 +656,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
var result = MessageBox.Show(
|
var result = MessageBox.Show(
|
||||||
"התוסף עדיין לא מוגדר. לפתוח את חלון ההגדרות עכשיו?",
|
"התוסף עדיין לא מוגדר. לפתוח את חלון ההגדרות עכשיו?",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.YesNo,
|
MessageBoxButton.YesNo,
|
||||||
MessageBoxImage.Information);
|
MessageBoxImage.Information);
|
||||||
if (result == MessageBoxResult.Yes)
|
if (result == MessageBoxResult.Yes)
|
||||||
@@ -671,7 +671,7 @@ namespace OutlookAddin.Services
|
|||||||
{
|
{
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"לא נבחר מייל לתיוק. סמן מייל אחד או יותר ונסה שוב.",
|
"לא נבחר מייל לתיוק. סמן מייל אחד או יותר ונסה שוב.",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Information);
|
MessageBoxImage.Information);
|
||||||
return;
|
return;
|
||||||
@@ -714,7 +714,7 @@ namespace OutlookAddin.Services
|
|||||||
vm.SelectedTarget?.Id, vm.SelectedTarget?.Name, vm.SelectedTarget?.EntityType);
|
vm.SelectedTarget?.Id, vm.SelectedTarget?.Name, vm.SelectedTarget?.EntityType);
|
||||||
MessageBox.Show(
|
MessageBox.Show(
|
||||||
"התיק שנבחר לא הוחזר עם סוג ישות (entityType) תקין. ייתכן ש-Klear שלך מחזיר שדה אחר; הלוג מכיל את הפרטים. שלח לאדמין.",
|
"התיק שנבחר לא הוחזר עם סוג ישות (entityType) תקין. ייתכן ש-Klear שלך מחזיר שדה אחר; הלוג מכיל את הפרטים. שלח לאדמין.",
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
MessageBoxButton.OK,
|
MessageBoxButton.OK,
|
||||||
MessageBoxImage.Warning);
|
MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
@@ -907,7 +907,7 @@ namespace OutlookAddin.Services
|
|||||||
icon = summary.FailedCount > 0 ? MessageBoxImage.Warning : MessageBoxImage.Information;
|
icon = summary.FailedCount > 0 ? MessageBoxImage.Warning : MessageBoxImage.Information;
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageBox.Show(message, "Marcus-Law OutlookAddin", MessageBoxButton.OK, icon);
|
MessageBox.Show(message, "Klear", MessageBoxButton.OK, icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string? TryGetSenderName(Outlook.MailItem item)
|
private static string? TryGetSenderName(Outlook.MailItem item)
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ namespace OutlookAddin
|
|||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
System.Windows.MessageBox.Show(
|
System.Windows.MessageBox.Show(
|
||||||
"האתחול של תוסף Marcus-Law נכשל: " + ex.Message,
|
"האתחול של תוסף Klear נכשל: " + ex.Message,
|
||||||
"Marcus-Law OutlookAddin",
|
"Klear",
|
||||||
System.Windows.MessageBoxButton.OK,
|
System.Windows.MessageBoxButton.OK,
|
||||||
System.Windows.MessageBoxImage.Error);
|
System.Windows.MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user