如何使用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的路径(一旦用户改变位置),或者有任何其他方法?
任何帮助/建议都是感激的。谢谢。
可以使用以下命令获取当前正在执行的程序集文件夹的位置:
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>
,我省略了尖括号,因为我还没有弄清楚如何正确地发布它们:)
但是你可以读取那个位置。