如何使用c# VSTO在PowerPoint中使用自定义按钮单击msi包打开帮助文件pdf

本文关键字:msi 单击 按钮 包打开 帮助 pdf 文件 自定义 VSTO 何使用 PowerPoint | 更新日期: 2023-09-27 18:02:15

我为使用c# VSTO开发的PowerPoint插件创建了一个。msi安装文件。我必须打开一个帮助文件pdf功能区按钮点击。我已经在msi包中嵌入了帮助文件pdf。

我通过使用以下代码使用硬编码路径(安装插件的默认路径)实现了此功能:

private void btnHelp_Click(object sender, RibbonControlEventArgs e)
        {
            string filepath = @"C:'Program Files (x86)'Microsoft'Office'PowerPoint'AddIns'myAddin'HelpFile.pdf";
            string locationToSavePdf = Path.Combine(Path.GetTempPath(), filepath);      
            Process.Start(locationToSavePdf);
        }

但是我知道,一旦最终用户改变了她/他想要安装插件的位置,这将不起作用。有没有人可以帮助我,这样我就可以动态地获得帮助文件pdf的路径(一旦用户改变位置),或者有任何其他方法?

任何帮助/建议都是感激的。谢谢。

如何使用c# VSTO在PowerPoint中使用自定义按钮单击msi包打开帮助文件pdf

可以使用以下命令获取当前正在执行的程序集文件夹的位置:

var assemblyInfo = Assembly.GetExecutingAssembly();
var uriCodeBase = new Uri(assemblyInfo.CodeBase);
var helpFileLocation = Path.GetDirectoryName(uriCodeBase.LocalPath) + @"'HelpFile.pdf";
Process.Start(helpFileLocation );

如果您正在构建MSI文件并希望保存最终目标文件夹,您可以创建一个注册表项来存储该值。假设该位置的属性名是INSTALLDIR,那么您将创建如下所示的注册表项:

RegistryKey Id="MySetupRegKey" Root="HKLM" Key="Software'MyLocation" Action="createAndRemoveOnUninstall"

RegistryValue Id="MySetupRegValue" Type="string" Name="InstallDir" Value="[InstallDir]"/RegistryKey>

,我省略了尖括号,因为我还没有弄清楚如何正确地发布它们:)

但是你可以读取那个位置。