У меня есть библиотека классов C # «CL01» для .Net Framework 4.0 с использованием Visual Studio 2017. Я ссылаюсь на сборку «CL01» на другой проект библиотеки классов (скажем, «CL02»), настроенный для Target Framework 4.0.
Когда я собираю CL02 из Visual Studio 2017, я держу пари нижеуказанное предупреждение
Первичная ссылка "CL01, Версия = 1.0.0.0, Культура = нейтральная, processorArchitecture = x86" можетне могут быть решены, потому что он был построен на основе .NETFramework, Version = v4.6.1.Это более высокая версия, чем целевая на данный момент платформа ".NETFramework, Version = v4.0"
На самом деле оба проекта библиотеки классов C # настроены на Target Framework 4.0.Но когда я собираю CL02, ошибка сборки говорит, что CL01 построен на основе .Net Framework v4.6.1.
Покопавшись в проблеме, я нашел кое-что интересное.На самом деле я создаю пакет nuget для CL01 и размещаю его на Dev.Azure.com.И ссылка на него в CL02 через PM.Когда я делаю это, VS через вышеупомянутую ошибку
Но когда я ссылаюсь на нее напрямую из файловой системы, она без ошибок компилирует CL02.позже я проверил файлы CL01.dll в файловой системе и CL01.dll, загруженные через пакет через инструмент сравнения файлов.Я ожидаю, что оба должны быть одинаковыми.но на самом деле все по-другому.
Я загрузил снимок экрана сравнения файлов и файлов nuspec для вашей справки в OneDrive (https://onedrive.live.com/?id=54D868A84C3257CA%21123&cid=54D868A84C3257CA). Я новичок в пакетах nuget. Пожалуйста, дайте мне знать, если я что-то делаюнеправильно.
Спасибо, Гопинатх
Ошибка в разнице файлов