Не удается найти зависимость ‘SYSTEM. ДАННЫЕ. ODBC’ при создании MSI

#c# #visual-studio #msbuild #windows-installer #nuget-package

#c# #visual-studio #msbuild #windows-установщик #nuget-пакет

Вопрос:

У меня есть проект типа WinForms в .NET Standard 2.0. Я хочу создать msi-файл для среды тестирования.

Однако, когда я компилирую исходный проект (WinForms), все идет хорошо.

Когда я создаю проект, который генерирует msi, я получаю сообщение об ошибке:

Не удается найти зависимость ‘SYSTEM. ДАННЫЕ. ODBC’ (Подпись -‘B03F5F7F11D50A3A’ Версия -‘0.0.0.0’) сборки ‘GenericDataAccess’.

Я проверил, где я использую пакет Nuget с именем SYSTEM. ДАННЫЕ. ODBC и я увидели, что его зависимости nuget.org являются ЧИСТЫМ стандартом 2.0. Он также поддерживает NET Framework 4.7.2. Итак, я попытался понизить версию компонента до этой версии, чтобы посмотреть, сработало ли это. Но когда я понижаю его, я получаю следующую ошибку при попытке собрать MSI-файл:

Не удается найти зависимость ‘SYSTEM. Диагностика. ТРАССИРОВКА ‘ (Подпись -‘B03F5F7F11D50A3A’ Версия -‘0.0.0.0’) сборки ‘netstandard.dll ‘

И это не единственная зависимость, которая терпит неудачу. Как я могу проверить зависимости, чтобы предотвратить ошибки компиляции?

Комментарии:

1. Каков ваш тип проекта установщика? Ваш проект был нацелен на net472 ? Кроме того, какую версию System.Data.Odbc пакета nuget вы использовали?

2. I have a WinForms type project in .NET Standard 2.0. Что это значит? проект net framework, который зависит от проекта net standard lib? Или что-нибудь еще? Пожалуйста, предоставьте более подробную информацию.

3. Тип проекта установки — установщик Visual Studio: marketplace.visualstudio.com/… Проект перешел в net48. Версия ODBC — 4.7.0.

4. Это проект Windows Forms, который зависит от другого проекта типа библиотеки классов, созданного мной. Эта библиотека классов использует версию 4.7.0 System.Data. Библиотека ODBC.

5. 1) добавьте <PropertyGroup><RestoreProjectStyle>PackageReference</RestoreProjectStyle></PropertyGroup> xxx.csproj файл вашего проекта winform, а затем перестройте свой проект winform. 2) щелкните правой кнопкой мыши на вашем проекте установщика -> Add -> Project Output -> выберите ваш проект winform и Locally-Copied Items . Кроме того, вы можете ввести Add -> Assembly для добавления System.Data.Odbc.dll в проект установщика.