aluxnimm / outlookcaldavsynchronizer

Sync Outlook with Google, SOGo, Nextcloud or any other CalDAV/CardDAV server
GNU Affero General Public License v3.0
920 stars 97 forks source link

Trouble synchronizing recurring events created for different timezones - Outlook 2013. #148

Closed chrishardinge closed 8 years ago

chrishardinge commented 8 years ago

I'm having an issue with CalDav Synchronizer which prevents it from synchronizing recurring events with timezones that differ from the timezone the calendar currently observes, in Outlook 2013. For example, if my current Outlook calendar is set to Australia/Sydney (AUS Eastern Standard Time) and I create a recurring event for the timezone Australia/Perth (W. Australia Standard Time), the initial sync will succeed, but any sync after modifying the series or occurrence will fail. Synchronization is setup as two-way Outlook<---> Baikal.

Error dump:

<?xml version="1.0" encoding="utf-16"?>
<SynchronizationReport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ProfileName>test_baiKal</ProfileName>
  <ProfileId>5861f4ff-5e79-4618-8d2c-43af32499de2</ProfileId>
  <StartTime>2016-07-25T04:26:28.3623132Z</StartTime>
  <ADelta>Unchanged: 0 , Added: 0 , Deleted 0 ,  Changed 1</ADelta>
  <BDelta>Unchanged: 1 , Added: 0 , Deleted 0 ,  Changed 0</BDelta>
  <LoadErrors />
  <EntitySynchronizationReports>
    <EntitySynchronizationReport>
      <MappingErrors />
      <MappingWarnings>
        <string>Can't get AppointmentItem of Exception, ignoring! : System.Runtime.InteropServices.COMException (0xEF604005): You changed one of the recurrences of this item, and this instance no longer exists. Close any open items and try again.
   at Microsoft.Office.Interop.Outlook.Exception.get_AppointmentItem()
   at CalDavSynchronizer.Implementation.Events.EventEntityMapper.MapRecurrance1To2(AppointmentItem source, IEvent target, iCalTimeZone startIcalTimeZone, iCalTimeZone endIcalTimeZone, IEntityMappingLogger logger)</string>
      </MappingWarnings>
      <AId>000000003E873B57A3DC0A48BD5112C590D3C4AF07003276012BBDD2034585F00029C4A1FB14007C5C52006600003276012BBDD2034585F00029C4A1FB14007C5C523A180000</AId>
      <BId>/baikal/html/cal.php/calendars/test/default/33e3debb-e9ac-4b92-9e7f-67a4ab7a81e3.ics</BId>
    </EntitySynchronizationReport>
  </EntitySynchronizationReports>
  <Duration>00:00:00.3179906</Duration>
</SynchronizationReport>

iCalendar ICS dump:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VTIMEZONE
TZID:W. Australia Standard Time
BEGIN:STANDARD
DTSTART;VALUE=DATE:20060101
RRULE:FREQ=YEARLY;UNTIL=20061231T160000Z;BYDAY=1SU;BYHOUR=0;BYMINUTE=0;BYMO
 NTH=1
TZNAME:W. Australia Standard Time
TZOFFSETFROM:+0900
TZOFFSETTO:+0800
END:STANDARD
BEGIN:STANDARD
DTSTART:20070325T030000
RRULE:FREQ=YEARLY;UNTIL=20071231T160000Z;BYDAY=-1SU;BYHOUR=3;BYMINUTE=0;BYM
 ONTH=3
TZNAME:W. Australia Standard Time
TZOFFSETFROM:+0900
TZOFFSETTO:+0800
END:STANDARD
BEGIN:STANDARD
DTSTART:20080330T030000
RRULE:FREQ=YEARLY;UNTIL=20081231T160000Z;BYDAY=-1SU;BYHOUR=3;BYMINUTE=0;BYM
 ONTH=3
TZNAME:W. Australia Standard Time
TZOFFSETFROM:+0900
TZOFFSETTO:+0800
END:STANDARD
BEGIN:STANDARD
DTSTART:20090329T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=3
TZNAME:W. Australia Standard Time
TZOFFSETFROM:+0900
TZOFFSETTO:+0800
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20061203T020000
RRULE:FREQ=YEARLY;UNTIL=20061231T160000Z;BYDAY=1SU;BYHOUR=2;BYMINUTE=0;BYMO
 NTH=12
TZNAME:W. Australia Daylight Time
TZOFFSETFROM:+0800
TZOFFSETTO:+0900
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20071028T020000
RRULE:FREQ=YEARLY;UNTIL=20071231T160000Z;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYM
 ONTH=10
TZNAME:W. Australia Daylight Time
TZOFFSETFROM:+0800
TZOFFSETTO:+0900
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20081026T020000
RRULE:FREQ=YEARLY;UNTIL=20081231T160000Z;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYM
 ONTH=10
TZNAME:W. Australia Daylight Time
TZOFFSETFROM:+0800
TZOFFSETTO:+0900
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART;VALUE=DATE:20090101
RRULE:FREQ=YEARLY;UNTIL=20091231T160000Z;BYDAY=1TH;BYHOUR=0;BYMINUTE=0;BYMO
 NTH=1
TZNAME:W. Australia Daylight Time
TZOFFSETFROM:+0800
TZOFFSETTO:+0900
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DTEND;TZID=W. Australia Standard Time:20160810T090000
DTSTAMP:20160725T042611Z
DTSTART;TZID=W. Australia Standard Time:20160810T080000
PRIORITY:5
RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU,WE
SEQUENCE:0
SUMMARY:Test Perth
TRANSP:OPAQUE
UID:33e3debb-e9ac-4b92-9e7f-67a4ab7a81e3
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR
aluxnimm commented 8 years ago

yes this only works if the event is in the Outlook timezone. some strange bug of the Outlook object model when trying to find the recurrence exceptions. I didn't find a reasonable workaround yet but will investigate further. But sync doesn't fail completely. It is just a warning and it ignores the exceptions cause it can't find them. You can also turn off warnings in general options.

chrishardinge commented 8 years ago

Thanks for your prompt reply, aluxnimm. Describing the sync as failing was probably the incorrect terminology - as it does succeed, however it only 'rolls' the SEQUENCE property within the ical and does not actually save the modified occurrence (as a new VEVENT component). Interestingly enough, it does however save any removed occurrences by adding the EXDATE property.

aluxnimm commented 8 years ago

What exact version of Outlook, Windows and .net framework are you using? Similar issue is references also in https://social.msdn.microsoft.com/Forums/en-US/13663864-0d35-4eed-8abc-8ade8fce4247/outlook-2013-vsto-error-when-parsing-exceptions-applicationitem-you-changed-one-of-the?forum=outlookdev

Just fixed some related error but couldn't reproduce your error with latest .net and Outlook 2013 anymore.

chrishardinge commented 8 years ago

The exact version of Outlook 2013 is 15.0.4833.1000 and is running on Windows 10 Pro build 105836.494 (version 1511). Digging around in the registry, it states .NET 4.6 (version 4.6.01038, Client and Full) and .NET 3.5 (version 3.5.30729.4926) are installed. A .NET detector shows:

.NET FW 2.0 SP 2  (CLR:2.0)
.NET FW 3.0 SP 2  (CLR:2.0)
.NET FW 3.5 SP 1  (CLR:2.0)
.NET FW 4.6.2  (CLR:4.0)

Packages Installed:

Microsoft .NET Framework 4 Client Profile 
 KB2468871
 KB2468871v2
 KB2478063
 KB2533523
 KB2544514
 KB2600211
 KB2600217
Microsoft .NET Framework 4 Extended 
 KB2468871
 KB2468871v2
 KB2478063
 KB2533523
 KB2544514
 KB2600211
 KB2600217
 KB2468871
 KB2468871v2
 KB2478063
 KB2533523
 KB2544514
 KB2600211
 KB2600217

Have since tried it in Outlook 2016 (version 16.0.6741.2056) on the same OS, which also presents the issue.

aluxnimm commented 8 years ago

Can you also provide an example ics file from Outlook export with an recurrence exception that produces this error.

chrishardinge commented 8 years ago

My timezone for this test is AUS Eastern Standard Time (Australia/Sydney).

Initial sync of the recurring event (does not produce sync errors):

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VTIMEZONE
TZID:New Zealand Standard Time
BEGIN:STANDARD
DTSTART:19700315T030000
RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYDAY=3SU;BYHOUR=3;BYMINUTE=0;BYMO
 NTH=3
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:STANDARD
DTSTART:20070318T030000
RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYDAY=3SU;BYHOUR=3;BYMINUTE=0;BYMO
 NTH=3
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:STANDARD
DTSTART:20080406T030000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=4
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19701004T020000
RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYDAY=1SU;BYHOUR=2;BYMINUTE=0;BYMO
 NTH=10
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20070930T020000
RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYM
 ONTH=9
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20080928T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=9
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DTEND;TZID=New Zealand Standard Time:20160803T090000
DTSTAMP:20160726T074033Z
DTSTART;TZID=New Zealand Standard Time:20160803T080000
PRIORITY:5
RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU,WE
SEQUENCE:0
SUMMARY:Test Timezone
TRANSP:OPAQUE
UID:4fcfcd50-e229-498d-8c76-c43afef1cd73
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

iCalender after attempting to sync after shifting the 17/08/2016 (New Zealand Standard Time) occurrence forward half an hour:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VTIMEZONE
TZID:New Zealand Standard Time
BEGIN:STANDARD
DTSTART:19700315T030000
RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYDAY=3SU;BYHOUR=3;BYMINUTE=0;BYMO
 NTH=3
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:STANDARD
DTSTART:20070318T030000
RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYDAY=3SU;BYHOUR=3;BYMINUTE=0;BYMO
 NTH=3
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:STANDARD
DTSTART:20080406T030000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=4
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19701004T020000
RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYDAY=1SU;BYHOUR=2;BYMINUTE=0;BYMO
 NTH=10
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20070930T020000
RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYM
 ONTH=9
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20080928T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=9
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DTEND;TZID=New Zealand Standard Time:20160803T090000
DTSTAMP:20160726T074312Z
DTSTART;TZID=New Zealand Standard Time:20160803T080000
PRIORITY:5
RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU,WE
SEQUENCE:1
SUMMARY:Test Timezone
TRANSP:OPAQUE
UID:4fcfcd50-e229-498d-8c76-c43afef1cd73
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

As you can see above, it fails to add the new VEVENT component for the modified occurrence, but still rolls SEQUENCE. However, if we delete an occurrence on say 23/08/2016 (New Zealand Standard Time) it still displays the error, but rolls the SEQUENCE property and adds the EXDATE property (20160822T200000Z) - shown below:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VTIMEZONE
TZID:New Zealand Standard Time
BEGIN:STANDARD
DTSTART:19700315T030000
RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYDAY=3SU;BYHOUR=3;BYMINUTE=0;BYMO
 NTH=3
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:STANDARD
DTSTART:20070318T030000
RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYDAY=3SU;BYHOUR=3;BYMINUTE=0;BYMO
 NTH=3
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:STANDARD
DTSTART:20080406T030000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=4
TZNAME:New Zealand Standard Time
TZOFFSETFROM:+1300
TZOFFSETTO:+1200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19701004T020000
RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYDAY=1SU;BYHOUR=2;BYMINUTE=0;BYMO
 NTH=10
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20070930T020000
RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYM
 ONTH=9
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20080928T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=9
TZNAME:New Zealand Daylight Time
TZOFFSETFROM:+1200
TZOFFSETTO:+1300
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DTEND;TZID=New Zealand Standard Time:20160803T090000
DTSTAMP:20160726T074606Z
DTSTART;TZID=New Zealand Standard Time:20160803T080000
EXDATE:20160822T200000Z
PRIORITY:5
RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU,WE
SEQUENCE:3
SUMMARY:Test Timezone
TRANSP:OPAQUE
UID:4fcfcd50-e229-498d-8c76-c43afef1cd73
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

The SEQUENCE property has jumped from 1 to 3 as Outlook still attempts to sync the occurrence changed prior to the deleted occurrence, hence increments it accordingly. Below is what I'd expect the VEVENT component would look like, if it was added for the 17/08/2016 modification.

BEGIN:VEVENT
CLASS:PUBLIC
DTEND;TZID=New Zealand Standard Time:20160817T093000
DTSTAMP:20160726T074312Z
DTSTART;TZID=New Zealand Standard Time:20160817T083000
PRIORITY:5
RECURRENCE-ID:20160816T200000Z
SEQUENCE:2
SUMMARY:Test Timezone
TRANSP:OPAQUE
UID:4fcfcd50-e229-498d-8c76-c43afef1cd73
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
aluxnimm commented 8 years ago

Your example works in my setup. I have an even older version number of OL2013 and Windows 7. Do you have Visual Studio 2010 Tools for Office Runtime installed? https://www.microsoft.com/en-us/download/details.aspx?id=48217

version 10.0.60724

aluxnimm commented 8 years ago

And event on server looks like this in my case: BEGIN:VCALENDAR PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN VERSION:2.0 BEGIN:VTIMEZONE TZID:New Zealand Standard Time BEGIN:STANDARD DTSTART:19700315T030000 RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYMONTH=3;BYDAY=3SU;BYHOUR=3;BYMIN UTE=0 TZNAME:Neuseeland Normalzeit TZOFFSETFROM:+1300 TZOFFSETTO:+1200 END:STANDARD BEGIN:STANDARD DTSTART:20070318T030000 RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYMONTH=3;BYDAY=3SU;BYHOUR=3;BYMIN UTE=0 TZNAME:Neuseeland Normalzeit TZOFFSETFROM:+1300 TZOFFSETTO:+1200 END:STANDARD BEGIN:STANDARD DTSTART:20080406T030000 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;BYHOUR=3;BYMINUTE=0 TZNAME:Neuseeland Normalzeit TZOFFSETFROM:+1300 TZOFFSETTO:+1200 END:STANDARD BEGIN:DAYLIGHT DTSTART:19701004T020000 RRULE:FREQ=YEARLY;UNTIL=20061231T120000Z;BYMONTH=10;BYDAY=1SU;BYHOUR=2;BYMI NUTE=0 TZNAME:Neuseeland Sommerzeit TZOFFSETFROM:+1200 TZOFFSETTO:+1300 END:DAYLIGHT BEGIN:DAYLIGHT DTSTART:20070930T020000 RRULE:FREQ=YEARLY;UNTIL=20071231T120000Z;BYMONTH=9;BYDAY=-1SU;BYHOUR=2;BYMI NUTE=0 TZNAME:Neuseeland Sommerzeit TZOFFSETFROM:+1200 TZOFFSETTO:+1300 END:DAYLIGHT BEGIN:DAYLIGHT DTSTART:20080928T020000 RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0 TZNAME:Neuseeland Sommerzeit TZOFFSETFROM:+1200 TZOFFSETTO:+1300 END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT CLASS:PRIVATE DTEND;TZID=New Zealand Standard Time:20160803T090000 DTSTAMP:20160726T193446Z DTSTART;TZID=New Zealand Standard Time:20160803T080000 PRIORITY:5 RRULE:FREQ=WEEKLY;COUNT=14;BYDAY=TU,WE SEQUENCE:3 SUMMARY:Test Timezone TRANSP:OPAQUE UID:4fcfcd50-e229-498d-8c76-c43afef1cd73 X-MICROSOFT-CDO-BUSYSTATUS:BUSY BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:This is an event reminder TRIGGER:-PT15M END:VALARM END:VEVENT BEGIN:VEVENT CLASS:PRIVATE DTEND;TZID=New Zealand Standard Time:20160817T093000 DTSTAMP:20160726T193454Z DTSTART;TZID=New Zealand Standard Time:20160817T083000 PRIORITY:5 RECURRENCE-ID:20160816T200000Z SEQUENCE:4 SUMMARY:Test Timezone TRANSP:OPAQUE UID:4fcfcd50-e229-498d-8c76-c43afef1cd73 X-MICROSOFT-CDO-BUSYSTATUS:BUSY BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:This is an event reminder TRIGGER:-PT15M END:VALARM END:VEVENT END:VCALENDAR

chrishardinge commented 8 years ago

I'm going to assume the tool had previously been installed as the CalDav Synchronizer installer never prompted for it, as per the instructions. Nevertheless, installing/reinstalling Visual Studio 2010 Tools for Office Runtime from the link you provided, restarting the PC and clearing CalDav Synchronizer's cache for good measure, seems to have done the trick. Modified occurrences are having their VEVENT components synchronized as expected now.

Thanks for your help, aluxnimm - it is greatly appreciated. Cheers.

aluxnimm commented 8 years ago

that are great news! thx for confirmation because others have similar issues and now we know how to fix them. The installer doesn't always detect the vsto runtime missing and needs to be improved if we have some time btw.