Один из наших базовых проектов упакован через NuGet и распределен (внутренне), так что другие команды могут использовать библиотеку - назовем ее «Core». С NuGet 1.x, мы получили ссылку на наш файл .csproj, который выглядел примерно так:Каковы новые ссылочные позиции в моем .csproj файле из NuGet 2.0?
<Reference Include="Core">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Core.1.4.1.381\lib\net40\Core.dll</HintPath>
После обновления до NuGet 2,0, это та же ссылка выглядит следующим образом:
<Reference Include="Core, Version=1.4.1.381, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Core.1.4.1.381\lib\net40\Core.dll</HintPath>
В Include
атрибут, имеет ли значение Version? Я явно устанавливаю SpecificVersion
в false. Я просмотрел MSBuild Project File Schema Reference, но он ничего не видел относительно того, как этот атрибут разбирается.
Спасибо за ввод данных.
-SethO
Спасибо, Нико. Могли ли вы найти какую-либо информацию о том, что анализирует/потребляет данные атрибута Include в теге Reference? Я все еще пытаюсь понять, почему это начало появляться. – SethO
Вам интересно, почему ...? Вы можете посмотреть исходный код на codeplex: http://nuget.codeplex.com Обратите внимание на сборку NuGet (проект называется CommandLine), не так много сборок, ссылающихся на API Microsoft.Build. . Я уверен, что что-то изменилось в методе ** AddReference ** класса 'NuGet.Common.MSBuildProjectSystem'. Посмотрите на историю соответствующего файла (** MSBuildProjectSystem.cs **) Удачи :) – Nico
Я действительно понимаю, что исходный код NuGet помещает его туда. Меня гораздо больше интересует, как он анализируется и используется на принимающей стороне. Зная, что установка 'SpecificVersion' в false позволяет MSBuild игнорировать версию в« Справочнике », делает мой запрос чисто академическим на данный момент. Вы избавились от моих опасений относительно дополнительных данных в атрибуте «Включить». – SethO