Ссылка 3,5 блока из 2,0 приложений?

\.nuget\NuGet.targets - это файл, который расширение NuGet Visual Studio использовало для добавления в Visual Studio 2010, 2012 и 2013, когда вы щелкаете правой кнопкой мыши по решению и выбираете «Включить восстановление пакета NuGet». Затем он добавил бы импорт во все файлы вашего проекта для импорта файла целей. Недавно я расследовал проблему клиента , и в ходе этого расследования я обнаружил, что она внесла следующие изменения. Около вершины csproj, он добавляет что-то вроде этого:

..\
true

и около конца csproj он добавляет что-то вроде этого:



  
    This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
  
  

Итак, проблема в том, что вы создаете новое решение, но используете существующие файлы проекта, которые были изменены таким образом. Один из вариантов - отредактировать ваши файлы csrpoj и удалить эти изменения. Другим вариантом является создание новых проектов, в дополнение к новому решению, а затем копирование всего кода и файлов содержимого.

Единственным недостатком является то, что если вы собираете на сервере CI и используете packages.config, ваш скрипт сборки должен быть запущен nuget.exe restore, тогда как проекты, использующие NuGet.targets, могут просто построить решение, а msbuild выполнит восстановление nuget по мере необходимости. , Одно из преимуществ отказа от использования NuGet.targets заключается в том, что восстановление всего решения происходит быстрее, чем восстановление проекта за проектом. Visual Studio автоматически восстанавливает пакеты при сборке, даже в VS2010, VS2012 и VS2013, поэтому лично я не рекомендую использовать эту функцию, даже если вы используете эти старые версии Visual Studio. На мой взгляд, преимущество сокращения вашего сценария сборки на один шаг не стоит тех проблем, которые оно приносит.

5
задан starblue 25 April 2009 в 13:37
поделиться

2 ответа

Нет никакой проблемы. Существует только одна версия среды выполнения, выполняющая приложение. Платформа.NET v2.0.

8
ответ дан 13 December 2019 в 05:43
поделиться

Однако - при развертывании .net2.0 приложения, пользователю предложат установить .net3.5 (поскольку существует блок .net 3.5, на который ссылаются).

4
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: