(VS Team Services)构建解决方案:命名空间“Microsoft”中不存在类型或命名空间名称“Office”

时间:2017-05-23 16:47:06

标签: c# tdd azure-devops

我们有一个应用程序可以读取Microsoft Excel文件(.xls,.xlsx,.xlsm)。

工作正常:

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
Excel.Range range;
int rCnt;
int cCnt;
int rw = 0;
int cl = 0;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(full_filename, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;
for (rCnt = 1; rCnt <= rw; rCnt++)
{
    List<object> rowList = new List<object>();
    for (cCnt = 1; cCnt <= cl; cCnt++)
    {
        // do stuff
    }
}
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);

问题出在Visual Studio Team Services中,它会在构建过程中导致以下错误:

  

命名空间中不存在类型或命名空间名称“Office”   'Microsoft'(你错过了程序集引用吗?)

我们应该在Visual Studio上设置什么,以便Team Services能够构建应用程序?感谢

1 个答案:

答案 0 :(得分:2)

您应该在错误之前收到有关缺少程序集(特别是Microsoft.Office.Interop.Excel)的警告,程序集不可用(在GAC)到VSTS的托管构建代理。

解决方案是利用此Nuget package Microsoft.Office.Interop.Excel并引用项目中Nuget包提供的程序集。

只要您在实际构建之前使用Nuget Restore构建任务,构建就会在eveyrwhere中运行。