Во-первых, это устаревшее приложение с длинной историей разработки.
У меня есть приложение для оконных форм, в котором есть 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 экранах.
Почему он не копирует эту библиотеку и что вызывает ее копирование?