Подключение к проекту не найдено для OleDbSource с использованием Biml

У меня возникает проблема, когда я создаю пакет с помощью biml, который ссылается на диспетчер соединений на уровне проекта. Диспетчер соединений не найден для источника OleDb, но отлично работает в задаче SQL. Кроме того, диспетчеры соединений на уровне пакетов работают нормально.

Вот пример кода:

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Connections>
        <OleDbConnection Name="sql" ConnectionString="data source=.;initial catalog=Staging;Provider=SQLNCLI11.1;Integrated Security=sspi;" />
    </Connections>
    <Projects>
        <PackageProject Name="Test">
            <Packages>
                <Package PackageName="MyPackage2"/>
            </Packages>
            <Connections>
                <Connection ConnectionName="sql"/>
            </Connections>
        </PackageProject>
    </Projects>
    <Packages>
        <Package Name="MyPackage2">
            <Tasks>
                <ExecuteSQL Name="TestSQL" ConnectionName="sql">
                    <DirectInput>
                        Select 1
                    </DirectInput>
                </ExecuteSQL>
                <Dataflow Name="My Dataflow">
                    <Transformations>
                        <OleDbSource Name="Read" ConnectionName ="sql">
                            <DirectInput>
                                Select 1 as Test;
                            </DirectInput>
                        </OleDbSource>
                    </Transformations>
                </Dataflow>
            </Tasks>
        </Package>
    </Packages>
</Biml>

При создании OleDbSource возникает следующая ошибка:

Ошибка проверки. Чтение моего потока данных [2]: диспетчер соединений среды выполнения с идентификатором "{6253281E-98BA-45C3-ACAB-BC58B34CC627}" не найден. Убедитесь, что в коллекции диспетчеров соединений есть диспетчер соединений с этим идентификатором.

Я пробовал несколько разных вещей, которые не помогли:

  • Установите для CreateInProject значение true для диспетчера соединений.
  • Используемое соединение, а также OleDbConnection
  • Добавлена ​​коллекция Connections в пакет и указана ссылка на соединение

Что мне не хватает?


person Mark Wojciechowicz    schedule 03.05.2017    source источник
comment
Я протестировал ваш BIML, и у меня он отлично работает.   -  person Chris Albert    schedule 03.05.2017
comment
@ChrisAlbert, это странно. Если я удалю диспетчер соединений из проекта и создам его заново, все в порядке. Но если я регенерирую, когда он снова, в то время как CM уже существует, CM не найден   -  person Mark Wojciechowicz    schedule 03.05.2017


Ответы (1)


Я скопировал вставленный вами BIML, и он сгенерировал все файлы без ошибок. Когда я внес изменения и восстановил файлы, я получил то же сообщение об ошибке, что и вы.

Чтобы решить эту проблему, я удалил диспетчер соединений вручную, а затем восстановил файлы. Я не уверен, что вызывает это, но это надежный обходной путь, чтобы снова заставить пакет работать.

person Chris Albert    schedule 03.05.2017
comment
Спасибо, что подтвердили это. Я ожидал, что что-то настолько простое, как это, просто сработает, поэтому я не слишком много гуглил. Однако здесь есть подробное объяснение: varigence.com/Forums?threadID=9656. Надеюсь, это скоро будет исправлено. - person Mark Wojciechowicz; 03.05.2017