c# Excel AddIn,执行时查找内容文件路径

c# Excel AddIn, find content file path when excuting

我正在使用 VSTO 构建一个 Excel 加载项。在这个项目中,我还添加了一些 python .py 脚本来做一些数据操作。

整个项目是一个C#项目,所有的.py文件都作为项目的内容文件,具体来说,我所做的是将Properities-Build Action设置为'Content',设置属性-复制到输出目录为'Copy always'。

但是,使用clickonce发布后,执行时,找不到内容文件在哪里。我已经尝试过:Application.StartupPath,但没有用。我真的需要找到内容文件路径并进入其中。

提前感谢所有花时间看我的问题的人。

Office 加载项项目的发布页面没有 Application Files 按钮,这意味着您不能像为应用程序那样在单击一次安装程序中包含某些文件。作为一种选择,您可以将文件作为嵌入资源,然后在加载项启动时,从资源中提取它们并将它们复制到加载项输出目录。

为此,您可以将文件添加到 Resources.resx,然后在加载项的 StartUp 处,从资源中提取文件并将其保存到部署目录并使用它。

var assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location;
var assemblyFolder = System.IO.Path.GetDirectoryName(assemblyLocation);
var file = System.IO.Path.Combine(assemblyFolder , "test.py");
if (!System.IO.File.Exists(file))
    System.IO.File.WriteAllBytes(file, Properties.Resources.test);

现在文件位于 file 变量指定的路径中。