Необходимо увеличить минимально требуемую версию VS.
1.For packageReference формат, если один проект ссылается на пакет Microsoft.VisualStudio.SDK
, этот проект фактически зависитдля пакетов nuget Microsoft.VisualStudio.SDK
зависит от. Мы называем их зависимостями пакета nuget .
2. И для пакета Microsoft.VisualStudio.SDK с версией 15.9.3
, это также зависит от пакета Microsoft.VisualStudio.Threading
. (По крайней мере, 15.8.132, по умолчанию nuget загрузит 15.8.132)
Таким образом, ваш проект расширения на самом деле зависит от Microsoft.VisualStudio.Threading.dll 15.8.0.0
.
3. И для Microsoft.VisualStudio.Threading.dll
по пути C:\Program Files (x86)\Microsoft Visual Studio\2017\xxx\Common7\IDE\PrivateAssemblies
, для VS2017-15.9.16, его версия 15.8.0.0. Для VS2017-15.0.0 его версия - 15.0.0.0.
Тогда, если у меня VS2017-15.6.x, у меня может быть Microsoft.VisualStudio.Threading.dll
, чья версия в этой области [15.0.0.0,15.8.0.0). Если мы установим расширение, которое зависит от этой сборки с версией 15.8.0.0, в более старую версию, чем 15.8.x, мы столкнемся с подобной проблемой.
Я вижу два возможных решения
Я думаю, что ваш пользователь может быть в аналогичной ситуации с более старой версией. И если он обновит vs2017-15.9.17 до последней версии, эта проблема исчезнет. И да, если вы используете Microsoft.VisualStudio.SDK
версию 15.9.3, установите минимальную версию Visual Studio на 15.9.3.
Вы можете проверить зависимости там:
Этот пакет также зависит от пакетов с версиями 15.9.2x и даже 15.9.3. Чтобы избежать подобных проблем, таких как Could not load file or assembly 'xxx, Version=15.9.0.0
, рекомендуется увеличить минимальное требование, чтобы версия VS соответствовала версии VS SDK. (В VS с версией 15.9.0 мы можем не встретить проблему, например, не можем загрузить xxx с 15.8.0.0, но мы можем столкнуться с проблемой, например, не могу загрузить xxx с 15.9.2.0) *
Надеюсь, это поможет:)