Использование действительно простых инструкций по созданию пакета NuGet для сборки с соответствующим пакетом источников для сервера символов, найденный здесь в блоге Дэвида Эббо "The easy way to publish NuGet packages with sources" Я действительно создал пару пакетов: двоичные и источники.Как получить бинарный пакет NuGet с одной сборкой csproj, но соответствующий исходный пакет с двумя источниками csproj?
Однако исходный пакет неполный, и причина в том, что источники исходят из двух классов библиотеки .csproj
, и я использовал ILMerge для объединения результатов второго в первый. (*) Итак, используя минимальный .nuspec
, описанный в этом сообщении, и указывающий nuget.exe
на .csproj
для «основной» библиотеки, двоичный пакет в порядке, но, конечно, исходный пакет имеет только источники для «основной» библиотеки, а не для библиотеки, которая была включена в «основную» библиотеку.
Как исправить это (и получить источники для как проектов, включенных в пакет символов, а только двоичный файл для «основного» проекта в двоичном пакете)?
FYI, фактическая nuget.exe
командная строка: nuget pack CommandLineLexing.csproj -Build -Symbols -Properties Configuration=Release
.
(*) Причина, по которой я делаю это, на случай, если вам интересно, заключается в том, что вторая библиотека - это сокращенная версия моей накопленной библиотеки «C# utilities» - вы знаете, куча методов расширения и другие помощники - сокращаются, поэтому у него есть только минимальный минимум, необходимый для этого конкретного проекта. Итак, поскольку он сокращен, я не хочу, чтобы для него была отдельная сборка, которая в конечном итоге могла бы запутаться с полной сборкой (с тем же именем, а не с сильным именем). Поэтому я использовал ILMerge, чтобы поместить методы утилит в основную сборку (а также отметить их внутренние).