У меня есть приложение C # WPF с приложением Windows и библиотекой классов DLL, которая реализует некоторые представления и модели представления. Я добавил пакет Extended.Wpf.Toolkit в проект DLL и использую элемент управления в этом пакете из XAML в моем проекте DLL. Исполняемый проект ссылается на проект DLL. При сборке отсутствуют библиотеки DLL из пакета, скопированного в папку bin / Debug исполняемого проекта (они, конечно, находятся в папке bin / Debug проекта DLL).
Проект DLL использует некоторые другие пакеты иБиблиотеки этих файлов появляются в исполняемом каталоге bin / Debug автоматически. Единственное отличие в случае Extended.Wpf.Toolkit состоит в том, что у меня нет кода, использующего что-либо из этого пакета.
Я попытался добавить фиктивный код в проект DLL, используя случайный класс из Extended.Wpf.Toolkit, и затем одна из библиотек DLL появилась в bin. Итак, по-видимому, Visual Studio теперь признает зависимость в некоторой степени (хотя она копирует только одну DLL).
Проект XAML в DLL:
<UserControl x:Class="MyNameSpace.PropertyPanel"
...
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
>
<Grid>
<xctk:PropertyGrid/>
</Grid>
</UserControl>
Так что, очевидно, мне нужно добавить nugetпакет в исполняемый проект тоже? Чем отличается использование пакета от XAML от codebehind?
Использование Visual Studio 2017 Community Edition, если это имеет значение. Nuget packages.config находится в проекте библиотеки классов:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Extended.Wpf.Toolkit" version="3.6.0" targetFramework="net452" />
<package id="SharpVectors.Reloaded" version="1.3.0" targetFramework="net452" />
</packages>
Извините за отсутствие простого реплицируемого проекта.