我们有一个应用程序可以读取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能够构建应用程序?感谢
答案 0 :(得分:2)
您应该在错误之前收到有关缺少程序集(特别是Microsoft.Office.Interop.Excel)的警告,程序集不可用(在GAC)到VSTS的托管构建代理。
解决方案是利用此Nuget package Microsoft.Office.Interop.Excel并引用项目中Nuget包提供的程序集。
只要您在实际构建之前使用Nuget Restore构建任务,构建就会在eveyrwhere中运行。