Ich habe ein Testprojekt in VS 2012Bereitstellen von Excel-Add-In mit NSIS - Registry Ausgabe
Datei -> Neu -> Projekt -> Other Languages -> Visual C# -> Büro -> 2010
das baut gut auf. Ich möchte diese Maschinen auf den Client bereitstellen, auf der MSDN-Website Suche Ich habe 2 Optionen, Clickonce oder Install
https://msdn.microsoft.com/en-us/library/bb386179(v=vs.110).aspx
ich nicht Clickonce verwenden können, und ich bin gebeten worden, nicht install zu verwenden, aber NSIS . Ich habe Fortschritte mit NSIS gemacht, aber es kann die DLL nicht registrieren. Wenn ich versuche, es manuell mit Regsvr32 zu registrieren, bekomme ich eine Fehlermeldung
"Das Modul" [Dateipfad] TestAddin.dll "wurde geladen, aber der Einstiegspunkt DLLRegisterServer wurde nicht gefunden. Stellen Sie sicher, dass" [Dateipfad] TestAddin.dll“ist eine gültige DLL oder OCX-Datei und dann erneut versuchen.
hier ist, wie ich versuche, und registrieren Sie innerhalb des NSIS-Skript, von einer alten Forum Seite genommen, die ich nicht ganz verstehen.
Exec 'regsvr32.exe /s "$INSTDIR\MyExcelAddin.dll"'
WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "FriendlyName" "MyExcelAddin"
WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "Description" "MyExcelAddin"
WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "LoadBehavior" "00000003"
WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "CommandLineSafe" "00000000"
Update: ich kann jetzt Registrierungseinträge Sie folgendermaßen vorgehen, aber die Add-in noch nicht angezeigt in Excel
erstellenSetRegView 64
Exec '"%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$INSTDIR\MyExcelAddin.dll"'
WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "FriendlyName" "MyExcelAddin"
WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "Description" "MyExcelAddin"
WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "Manifest" "Manifest file:///$INSTDIR\MyExcelAddin.vsto|vstolocal"
WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "LoadBehavior" "00000003"
WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "CommandLineSafe" "00000000"
Update 2: Das funktionierte schließlich, ich hatte andere Dinge in der falschen Reihenfolge im NSIS-Skript gemacht. Ich habe die .dll nicht in den Ordner kopiert, den ich registrieren wollte, indem ich Regasm.exe
DLLRegisterServer ist der normale Einstiegspunktfunktion Export für die Registrierung, wenn Ihre Addin nicht exportieren es dann nicht weiß, Sie würden nur, wie es registrieren ... – Anders
Installshield und Visual Studio kann sowohl die DLL registrieren, ohne DLLRegisterServer implementiert, sicher müssen sie über die Befehlszeile zu tun, so werden. –
Sie wissen nicht, ob dies würde ein Problem sein, aber für meine Excel Plug-in, das „Manifest“ Wert ist nur „file: ///$INSTDIR/MyExcelAddin.vsto | vstolocal“, wie auf der Vorderseite mit „Manifest“ im Gegensatz . –