在另一个c#项目中访问excel资源

在另一个c#项目中访问excel资源,c#,excel,resources,C#,Excel,Resources,我正在使用c#(VisualStudio2008)尝试访问excel电子表格中的业务逻辑 我有以下课程。。(如果我做错了,请随意批评——我通常是java开发人员——这是我的第一个c#应用程序。) 我使用Add->Existing Item->然后选择.xls文件将电子表格添加到项目中。然后,我编辑了文件的属性,说它是一个嵌入式资源,并将其始终复制到输出目录 我可以从项目中很好地访问电子表格 但是,我想从项目外部运行DoIt方法,例如从测试项目中,我得到以下异常: “测试方法TestProject

我正在使用c#(VisualStudio2008)尝试访问excel电子表格中的业务逻辑

我有以下课程。。(如果我做错了,请随意批评——我通常是java开发人员——这是我的第一个c#应用程序。)

我使用Add->Existing Item->然后选择.xls文件将电子表格添加到项目中。然后,我编辑了文件的属性,说它是一个嵌入式资源,并将其始终复制到输出目录

我可以从项目中很好地访问电子表格

但是,我想从项目外部运行DoIt方法,例如从测试项目中,我得到以下异常:

“测试方法TestProject1.UnitTest1.TestMethod1引发异常:System.Data.OleDb.OLEDBEException:Microsoft Jet数据库引擎找不到对象“SELECTION”。请确保该对象存在,并且正确拼写其名称和路径名…”

我确信我的问题与调用一个从另一个项目访问资源的类有关

救命啊

在.NET中(特别是在C#)最好使用语句在
中“包装”实现
IDisposable
的类:

using(OleDbConnection connection = new OleDbConnection(sConnection))
{
    // ...
}
基本上,您需要做的是从程序集中提取资源(请参见
assembly.GetManifestResourceStream()
),将其保存到磁盘上,然后适当地更改连接字符串。

在.NET中(特别是在C#)最好“包装”使用
语句在
中实现
IDisposable
的类:

using(OleDbConnection connection = new OleDbConnection(sConnection))
{
    // ...
}
基本上,您需要做的是从程序集中提取资源(请参见
assembly.GetManifestResourceStream()
),将其保存到磁盘上,然后适当地更改连接字符串

我使用Add->Existing Item->然后选择.xls文件将电子表格添加到项目中。然后,我编辑了文件的属性,说它是一个嵌入式资源,并将其始终复制到输出目录

我可以从项目中很好地访问电子表格

将另一个程序作为程序集打开,然后从中加载资源

比如:

Assembly other = Assembly.Load(name);
Stream xlsData = other.GetManifestResourceStream(resourceName);
我使用Add->Existing Item->然后选择.xls文件将电子表格添加到项目中。然后,我编辑了文件的属性,说它是一个嵌入式资源,并将其始终复制到输出目录

我可以从项目中很好地访问电子表格

将另一个程序作为程序集打开,然后从中加载资源

比如:

Assembly other = Assembly.Load(name);
Stream xlsData = other.GetManifestResourceStream(resourceName);