Мои мысли, упаковка NuGet очень много о соглашениях.
Там нет никаких проблем в упаковке того же пространство имен и одинаковые имена для различных платформ (как в lib/net40/mydll.dll
, lib/net35/mydll.dll
и т.д. в том же пакете), а NuGet отфильтрует зарегистрированные зависимости от платформы.
Построение нескольких версий для одной и той же платформы кажется нетрадиционным, this discussion предвзято относится к созданию пакета в сборке. Это не значит, что вы не можете этого сделать, но сначала спросите себя, хотите ли вы.
Это, если ваши отладочные и выпускные сборки очень разные (условная компиляция и т. Д.), Это может пригодиться. Но как конечные пользователи могут выбрать Release или Debug при установке вашего пакета?
Идея может быть одной версией для каждой конфигурации сборки. Both can be installed into the project. Для этого добавьте targets file to your package или постройте a powershell install script, который добавляет условные ссылки непосредственно в файл целевого проекта, если вы хотите что-то меньшее, чем то, что может сделать для вас MsBuild.
Пример первой тактики: Создать .цель файл (в вашем пакете, создать папку build
, а затем создать build\YourLib.targets
со следующим содержимым):
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<Reference Include="YourLib">
<HintPath>..\packages\YourLib.1.0.0\lib\Debug\YourLib.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<Reference Include="YourLib">
<HintPath>..\packages\YourLib.1.0.0\lib\Release\YourLib.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
Обеспечение созданный отлаживать и освободить папки (платформы папка не является обязательной), выход сборки будет эффективно изменяться в зависимости от конфигурации - если у потребителей пакетов есть условные имена конфигурации, но вы всегда можете немного расширить логику состояния $(Configuration).Contains etc или просто поместить это в пакет readme
Этот ответ должен быть обеспокоен. Благодарю. –