Как я могу заставить VS 2008 использовать Interop.DTS вместо старого COM DTS? - PullRequest
0 голосов
/ 04 декабря 2009

У меня есть проект VS 2008, который использует DTS. Проект находится под контролем исходного кода, и я не хочу проверять и изменять ссылки на проект, опасаясь зацепиться за пальцы других разработчиков, для которых все просто отлично.

Для меня сейчас 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>

Итак, проект ищет dll на базе DTS / COM, которого у меня нет. У меня вопрос, как я могу заставить VS принять Interop.DTS вместо DTS без изменения проекта?

У меня есть сотрудник, у которого есть эта работа; его ссылка в проекте на DTS указывает на Interop.DTS.dll в папке bin / debug проекта. Я не понимаю, почему это работает для него, а не для меня. Это сбивает с толку. Спасибо за прослушивание.

1 Ответ

1 голос
/ 04 декабря 2009

Ну, вот что я наконец-то сделал. Я скопировал с другой машины COM dll с именем dtspkg.dll. Я также схватил dtspkg.rll, когда regsvr32 прокричал об этом, когда попытался просто зарегистрировать dll без rll.

После регистрации я перезагрузил проект, о котором идет речь, и моя справочная проблема DTS была решена - теперь проект ссылается на Interop.DTS.dll.

Как это произошло, я не уверен, но я предполагаю, что COM-взаимодействие каким-то образом перехватывает руководство COMReference в моем проекте VS и говорит: «Подожди-ка, вот что ты действительно хочешь».

...