Инсталирането на пакет NuGet използва специфична версия на асемблиране в csproj файлове

Използваме NuGet в нашите проекти, изправени сме пред проблеми с csproj препратките на пакетите NuGet.

Сценарий 1

Когато инсталираме няколко пакета към решението на Dev система с подробности по-долу,

  • Windows 7, x64 бита
  • Visual Studio 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
  • Visual Studio 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
FYI .. Възникнал проблем - NuGet-Issue   -  person Vijay    schedule 10.08.2016