Установка пакета NuGet использует определенную версию сборки в файлах csproj

Мы используем NuGet в наших проектах, мы сталкиваемся с проблемами со ссылками csproj на пакеты NuGet.

Сценарий 1

Когда мы устанавливаем несколько пакетов для решения в системе Dev с приведенными ниже подробностями,

  • Windows 7, x64 бит
  • Визуальная студия 2012
  • NuGet 2.8
  • PTC Integrity для контроля версий

Он добавляет конкретную версию в файлы csproj. как указано ниже (фрагмент csproj),

<Reference Include="ABCD.XYZ, Version=1.0.6045.25123, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\packages\ABCD.XYZ.2.0.0.0\lib\net45\ABCD.XYZ.dll</HintPath>
<Private>True</Private>
</Reference>

Сценарий 2

При добавлении того же пакета на сервер сборки с приведенными ниже подробностями

  • Windows Server 2008 R2
  • Визуальная студия 2012
  • NuGet 2.8
  • PTC Integrity для контроля версий

Он добавляет ниже детали,

<Reference Include="ABCD.XYZ">
  <HintPath>..\packages\ABCD.XYZ.2.0.0.0\lib\net45\ABCD.XYZ.dll</HintPath>
  <Private>True</Private>
</Reference>

Как добавляется конкретная версия? Я вижу это post упоминает, что он добавляет тег ниже в csproj для этого пользователя, но это не относится к нам.

<SpecificVersion>False</SpecificVersion>
  • Мой сценарий заключается в том, что наша сборка увеличивает версию сборки ABCD.XYZ с каждой сборкой. Поэтому проект, который имеет указанную выше ссылку, терпит неудачу, поскольку он не может найти указанную выше версию (NuGet добавляет строгое имя в ссылку)

  • Я пробовал различные конфигурации сборки, такие как Debug, Release, x64, Any CPU и т. д.

  • Обновление csproj вручную не является таким гибким вариантом

Итак, вот мои несколько вопросов,

  • Как эта конкретная версия или строгое имя добавляется в csproj?
  • Есть ли возможность добавить/игнорировать конкретную версию?
  • Что требуется для добавления ссылки, как указано в Сценарии 2?

Пожалуйста, сообщите нам, если потребуются дополнительные данные.


person Vijay    schedule 26.07.2016    source источник
comment
У вас есть ABCD.XYZ, зарегистрированный в глобальном GAC в системе разработки? выполните gacutil /l ABCD.XYZ из командной строки разработчика и посмотрите, получаете ли вы строки на машине разработчика, но не на машине сборки.   -  person Scott Chamberlain    schedule 26.07.2016
comment
Нет, этого файла нет в GAC.   -  person Vijay    schedule 28.07.2016
comment
Интересно, я не вижу никакой документации по этой части в NuGet!   -  person Vijay    schedule 29.07.2016
comment
Я бы выполнил бы вход и воспользовался страницей поддержки NuGet, чтобы узнать, знают ли они, что такое продолжается. Если вы получите ответ, вернитесь сюда и объясните его остальным, опубликовав свой собственный ответ на вопрос и приняв его.   -  person Scott Chamberlain    schedule 29.07.2016
comment
Конечно, я поднял этот вопрос и на NuGet GitHub.   -  person Vijay    schedule 30.07.2016
comment
К сведению.. Возникла проблема — NuGet-Issue   -  person Vijay    schedule 10.08.2016