Есть ли что-то известное о таких проблемах с проектами VS2017?
Для первого примера , потому что преобразования xdt не поддерживаются в PackageReference
среде.Это включает как основанные на SDK проекты, так и классические проекты .net Framework, использующие PackageReference
вместо packages.config
.Вы можете следить за этой проблемой GitHub для получения более подробной информации.Существует также пример пакета , который показывает, как использовать логику во время сборки для применения преобразований вместо работы во всех средах.
Для второго примера вы можетенайдите файл CefSharp.Common.targets
в папке \build
в пакете зависимостей CefSharp.Common
, в этом файле .target
вы увидите следующий код:
<ItemGroup>
<CefSharpCommonBinaries32 Include="$(MSBuildThisFileDirectory)..\CefSharp\x86\*.*" />
<CefSharpCommonBinaries64 Include="$(MSBuildThisFileDirectory)..\CefSharp\x64\*.*" />
<CefSharpCommonBinariesAnyCPU Include="$(MSBuildThisFileDirectory)..\CefSharp\**\*.*" />
</ItemGroup>
С этим файлом .target nuget будетвключая файлы в папке x64
и x86
вашего проекта.
В старом проекте .csproj
этот файл .target
, импортированный с помощью следующего кода после установки пакетов nuget, вы можете проверить его вфайл вашего проекта .csproj
:
<Import Project="..\packages\CefSharp.Common.63.0.3\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.63.0.3\build\CefSharp.Common.targets')" />
Эти файлы в папке x86 и x64 будут импортированы при запуске проекта.
Когда вы используете новый проект .csproj
,Файл .target, импортированный файлом project.assets.json
, все файлы будут импортированы в проект при сохранении .target
в project.assets.json
.
Именно поэтому вы получили эти тонны DLLфайлы после установки пакета CefSharp.Common
.Таким образом, это не проблема, но поскольку они импортируют .targets
по-разному.
Если вы не хотите показывать эти dll-файлы в своем проекте, вы можете вернуть обратно packages.config
.
Надеюсь, это поможет.