打开位于addin文件夹中的XML文件

Dou*_*ncy 5 .net excel vsto

在VSTO Excel中添加代码:

Dim XMLDoc As XElement = XElement.Load("XMLFile1.xml")
Run Code Online (Sandbox Code Playgroud)

产生FileNotFound误差的消息(" 找不到文件'C:\用户\道格\文档\ XMLFile1.xml’. ")这是看在我的文档文件夹,但在XML文件位于VS项目文件夹为该项目.我已将XML文件的"复制到输出目录"属性设置为"始终复制".当我更改代码以包含XML文件的完整路径时,代码可以正常工作.

此外,如果我在Windows控制台或其他类型的项目中包含上述代码,它将正确运行.我只是在Excel Addin中获取它.以上适用于VSTO 2008/Excel 2003和VSTO 2010/Excel 2010.

Joã*_*elo 13

使用相对路径时,使用当前目录(Environment.CurrentDirectory)来解析该路径.对于VSTO加载项,它会自动设置为用户文档文件夹.但是,对于控制台应用程序,该值设置为与可执行文件相同的文件夹,这就是您遇到不同行为的原因.

如果您的文件将部署到与VSTO加载项程序集相同的文件夹,则可以使用(AppDomain.CurrentDomain.BaseDirectory)来构建文件的完整路径.

例如,在C#中:

string filename = "XMLFile1.xml";

string path = Path.Combine(
    AppDomain.CurrentDomain.BaseDirectory,
    filename);

XElement.Load(path);
Run Code Online (Sandbox Code Playgroud)