1

我正在尝试在 VB.net 2010 中编译一个在某些时候使用 Microsoft Excel dll 的项目。当我从我的计算机编译时一切正常,但是当我使用 TFS 对新构建进行排队时,我得到了Microsoft.Interop.Excel...未定义的错误。我直接在 TFS 服务器上安装了 Microsoft Office 2010,但仍然遇到同样的错误。

我必须执行任何配置才能使其正常工作吗?

编辑:

您将在构建中看到的典型错误消息:

错误 BC30002:未定义类型“Excel.Worksheet”。

错误 BC30002:未定义类型“Microsoft.Office.Interop.Excel.Application”。

警告 BC40056:导入“Microsoft.Office.Interop”中指定的命名空间或类型不包含任何公共成员或找不到。确保命名空间或类型已定义并包含至少一个公共成员。确保导入的元素名称不使用任何别名。

4

3 回答 3

3

您需要将 dll 包含在保存在 TFS 中的 lib 文件夹中,并从该位置引用 dll,而不是在您的项目中安装它们的任何其他位置。

编辑:

开发人员通常从 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office15 中引用 Interop PIA,并且该文件夹不会存在于服务器上。

您需要将这些文件(例如 Microsoft.Office.Interop.Excel.dll)复制到源代码管理中的 lib 或 refs 文件夹中,并从您的解决方案中引用这些 DLL,而不是 PIA 路径中的那些。

另请注意,Reference Assemblies 文件夹中的 DLL 也是如此,例如:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Windows.Forms.dll

于 2012-07-14T04:06:32.240 回答
0

以防万一它有所作为,您提到了您的 TFS 服务器,但这不一定是您的构建发生的地方。

构建报告(可能是您在 TFS 中看到错误的地方)应该指出构建机器存储源代码的路径 - 默认情况下,该路径位于 c:\build 下的某个位置。一个好的第一步是转到安装了构建代理的机器的桌面(您可以通过右键单击团队资源管理器中的构建节点并选择管理控制器来查看构建代理的列表...)一次您在正确机器的桌面上,将源文件夹从该路径复制到同一台机器上的其他位置,然后打开新的复制解决方案文件并在 Visual Studio 中构建它。就像在本地机器上一样对构建进行故障排除 - 该构建机器上缺少某些东西,这些步骤应该可以帮助您更轻松地找到它。

于 2012-07-13T21:51:49.550 回答
0

您应该尝试在构建机器上手动运行构建。首先在 Visual Studio 中,然后在 msbuild 中。这应该会失败,但是您可能会更好地了解正在发生的事情以及失败的原因。您的 excel dll 可能与您自己的计算机上的位置不同。

于 2012-07-14T19:03:10.200 回答