Как Nuget определяет версию фреймворка?

В моем пакете nuget есть dll:s для разных версий.Net framework. Один для CLR2 и один для CLR4.

net20/mylibrary.dll
net40/mylibrary.dll

Это прекрасно работает, когда я использую пакет, например, в проектах.Net 3.5 и.Net 4.

Иногда у меня есть проекты, которые работают как с.Net 3.5, так и.Net 4. Это выполняется через 2 конфигурации проекта. В одном случае я собираю версию.Net 4 из конфигурации "Debug", а версию.Net 3.5 из конфигурации "Release". Обе конфигурации должны использовать net20 Рекомендации.

Мой файл csproj выглядит так:

<PropertyGroup>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    ...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    ...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    ...
</PropertyGroup>

Nuget всегда установит net40 сборки, которые нарушают сборку "Release".

В данный момент я вручную меняю net40 в net20 в файле.csproj после установки / обновления. Есть ли способ избежать редактирования?

1 ответ

Создайте отдельный проект для.net 4 и свяжите в него файлы.

Другие вопросы по тегам