2016-08-29 1 views
0

Ich habe festgestellt, dass Sandboxing zu Excel 2016 Add-Ins auf OSX hinzugefügt wurde. Dadurch werden Add-Ins unterbrochen, die in ihren Headerfunktionen aus einer gemeinsam genutzten Bibliothek stammen. Wie in, so etwas wie:Benutzerdefinierte benutzerdefinierte Bibliothek aus Excel 2016 für Mac anrufen

Option Explicit 
#If Mac Then 
Private Declare Function PropsSI_private Lib "libCoolProp.dylib" Alias "PropsSI" (ByVal Output As String, ByVal Name1 As String, ByVal Value1 As Double, ByVal Name2 As String, ByVal Value2 As Double, ByVal Ref As String) As Double 
... 

weil bei Add-In-Ladezeit, wir keine Funktionen aufrufen können, bevor die gemeinsame Bibliothek geladen werden versucht.

Früher mussten wir nur sicherstellen, dass die richtige gemeinsam genutzte Bibliothek in ~/lib war, aber das funktioniert nicht mehr. Wie ändern wir unser Add-In, damit wir die gemeinsam genutzte Bibliothek aufrufen können?

Antwort

1

Es stellt sich also heraus, dass Sie die gemeinsame Bibliothek in /Users/${USER}/Library/Group Containers/UBF8T346G9.Office setzen und sicherstellen müssen, dass dieser Ordner dem Systempfad hinzugefügt wird. Eine Möglichkeit, dies zu tun, besteht darin, diese Inhalte als Datei ~/Library/LaunchAgents/my.startup.plist zu speichern (ersetzen Sie ihb natürlich durch den entsprechenden Benutzernamen).

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
<key>Label</key> 
<string>my.startup</string> 
<key>ProgramArguments</key> 
<array> 
    <string>sh</string> 
    <string>-c</string> 
    <string>launchctl setenv DYLD_LIBRARY_PATH "/Users/ihb/Library/Group Containers/UBF8T346G9.Office"</string> 
</array> 
<key>RunAtLoad</key> 
<true/> 
</dict> 
</plist> 
Verwandte Themen