0

我有一个使用 DTS 的 VS 2008 项目。该项目处于源代码控制中,我不想检查和修改项目引用,因为担心会惹恼其他一切正常的开发人员。

对我来说,现在 Visual Studio 无法找到项目使用的 DTS 引用。

我安装了 SQL Server 2008,并且我的机器上有 Interop.DTS 程序集。问题是 VS 项目似乎没有意识到,基于这个参考问题。

在 VS 项目文件中有关于 DTS 参考的这一行:

 <COMReference Include="DTS">
  <Guid>{10010001-EB1C-11CF-AE6E-00AA004A34D5}</Guid>
  <VersionMajor>2</VersionMajor>
  <VersionMinor>0</VersionMinor>
  <Lcid>0</Lcid>
  <WrapperTool>tlbimp</WrapperTool>
</COMReference>

所以该项目正在寻找一个我没有的基于 DTS / COM 的 dll。我的问题是,如何在不修改项目的情况下让 VS 接受 Interop.DTS 作为 DTS 的替代品?

我有一个同事从事这项工作;在项目中对 DTS 的引用指向项目的 bin/debug 文件夹中的 Interop.DTS.dll。我不明白为什么它适用于他而不是我。这很令人困惑。谢谢收听。

4

1 回答 1

1

好吧,这就是我最终要做的事情。我从另一台机器上复制了名为 dtspkg.dll 的 COM dll。当我尝试简单地注册没有 rll 的 dll 时,我还抓住了 dtspkg.rll,因为 regsvr32 对此大喊大叫。

注册后,我重新加载了有问题的项目,我的 DTS 引用问题得到了解决——该项目现在引用了 Interop.DTS.dll。

我不确定这是怎么发生的,但我认为 COM 互操作以某种方式拦截了我的 VS 项目中的 COMReference guid 并说:“等一下——这就是你真正想要的。”

于 2009-12-04T18:43:03.683 回答