Използваме 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?
Моля, уведомете ни, ако са необходими допълнителни данни.
ABCD.XYZ
регистриран в глобалната GAC система за разработка? направетеgacutil /l ABCD.XYZ
от командния ред на разработчика и вижте дали получавате редове на машината за разработка, но не и на машината за компилация. - person Scott Chamberlain   schedule 26.07.2016