Visual Studio 2019 WinForms не удается разрешить зависимости времени разработки в SQLite.SQLite.Interop - PullRequest
0 голосов
/ 21 апреля 2020

Во-первых, это устаревшее приложение с длинной историей разработки.

У меня есть приложение для оконных форм, в котором есть 3 проекта (намного больше, но проблема упрощается с этими 3). Тот, который является приложением Winforms - (давайте назовем это FormApp). Другая - библиотека SQLite для управления локальными данными для приложения - (назовем это SQLiteLib) и третья, которая обрабатывает доступ к данным на сервере SQL2017 (назовем это SQL2017lib).

Правильно или нет приложение делает время разработки вызовов на уровне доступа к данным, эти вызовы генерируются через 3 уровня вложенных пользовательских элементов управления пользователя.

Таким образом, пользовательский элемент управления «A» имеет пользовательскую панель «B», в которой есть пользовательский Datagrid «C». Пользовательский Datagrid C будет вызывать SQLServer через 'SQL2017Lib', чтобы получить заголовки таблиц во время разработки.

Затем SQL2017Lib go получит строку подключения к базе данных из SQLiteLib.

Это все прекрасно работает, когда FormApp компилируется и запускается. Хорошо.

Отлично работает, когда 'SQL2017Lib' тестируется модульно из отдельного файла проекта. Хорошо.

Сбой во время разработки, когда форма просматривается в Visual Studio и пытается разрешить зависимости.

Не удается разрешить FormApp SQLite.Interop

При во время выполнения следующие папки генерируются локально по отношению к пути Visual Studio:

C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\luiequ0s01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mk8tkxbd01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mld0oq8b01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mvqav7fo01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\output.txt
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\qiiogq3w01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\rlj9azj101
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\rlphp22k01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\uouebwnd01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\w3_lkmqi01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\xuglysdm01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\zqvxz4su01
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\luiequ0s01\Microsoft.Practices.EnterpriseLibrary.Data.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mk8tkxbd01\#AppNameRemoved#.Business.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mk8tkxbd01\#AppNameRemoved#.Business.pdb
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mld0oq8b01\Dapper.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\mvqav7fo01\System.Data.SQLite.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\qiiogq3w01\Microsoft.Practices.EnterpriseLibrary.Common.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\rlj9azj101\#AppNameRemoved#.DataAccess.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\rlj9azj101\#AppNameRemoved#.DataAccess.pdb
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\rlphp22k01\Apollo.LocalData.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\rlphp22k01\Apollo.LocalData.pdb
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\uouebwnd01\#AppNameRemoved#.exe
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\uouebwnd01\#AppNameRemoved#.pdb
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\w3_lkmqi01\Microsoft.Practices.ObjectBuilder.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\xuglysdm01\#AppNameRemoved#.Apollo.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\xuglysdm01\#AppNameRemoved#.Apollo.pdb
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\zqvxz4su01\#AppNameRemoved#.Common.dll
C:\Users\[MyUserAccount]\AppData\Local\Microsoft\VisualStudio\16.0_446f3eef\ProjectAssemblies\zqvxz4su01\#AppNameRemoved#.Common.pdb

Как видите, он генерирует странные имена папок и структуры для сборок времени выполнения, dapper и System.Data.SQLite.dll скопировал на другой, но не на SQLite.Interop.

Вещи, которые я пробовал.

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

Я подключил отладчик к Visual Studio, и он постоянно падал, пытаясь разрешить зависимость.

Я поместил dll в решение и установил их «всегда копировать», и они делают похоже, что меня не копируют в среду разработки.

Я зашел в тупик. В конечном итоге это будет переработано, чтобы экран не выполнял вызов базы данных. Но у приложения этот шаблон завален примерно на 30-40 экранах.

Почему он не копирует эту библиотеку и что вызывает ее копирование?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...