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