По поводу вытягивания ссылок из другой сборки - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь создать библиотеку, которую я могу использовать повторно между проектами, но, к сожалению, не все ссылки из указанной библиотеки "вытягиваются" на проект приложения, ссылающийся на библиотеку ... надеюсь, я очищен ..

Позвольтемне объяснить.Я воспроизвел проблему в меньшем масштабе, вот установка.У меня есть решение Visual Studio, содержащее 2 проекта:

  • SomeLib (библиотека классов .net Framework)
  • TestApp (приложение wpf)

Ссылки TestApp SomeLib,Я добавил 2 nugets (и зависимости) в SomeLib:

  • SharpDX.Direct2D
  • Xceed.Wpf.Toolkit

SomeLib содержит этот класс:

    public class TestMe
    {
        public TestMe()
        {
            SharpDX.Direct2D1.AntialiasMode thing = SharpDX.Direct2D1.AntialiasMode.Aliased;//use sharpdx for ... something.
        }
    }

... и этот пользовательский контроль WPF:

<UserControl x:Class="SomeLib.TestView"
    ...
    xmlns:xtk="http://schemas.xceed.com/wpf/xaml/toolkit"
    xmlns:xad="http://schemas.xceed.com/wpf/xaml/avalondock">
    <Grid>
        <xad:DockingManager>
            <xad:DockingManager.Theme>
                <xad:VS2010Theme />
            </xad:DockingManager.Theme>
            <xad:LayoutRoot>
            </xad:LayoutRoot>
        </xad:DockingManager>
    </Grid>
</UserControl>

TestApp имеет MainWindow с использованием этого xaml:

<Window
    ...
    xmlns:SomeLib="clr-namespace:SomeLib;assembly=SomeLib" x:Class="TestApp.MainWindow">
    <Grid>
        <SomeLib:TestView/>
    </Grid>
</Window>

... и этого кода:

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            SomeLib.TestMe thing = new SomeLib.TestMe();
        }
    }

Теперь, после сборки, я проверяю выходную папку и замечаю, что сборки «SharpDX» «вытягиваются» туда, но не сборки Xceed.

Интересно, используя конструкторы Visual Studio в представлении и окнеЯ вижу, как AvalonDock создается там без ошибок.

При запуске я получаю эту ошибку: System.Windows.Markup.XamlParseException: «Не удалось загрузить файл или сборку» Xceed.Wpf.AvalonDock

... ну конечно.

Теперь, что мне не хватает?почему сборки SharpDX правильно «тянутся» на дочерний проект, а не на Xceed?

EDIT : Спасибо, Зинов;использование любого из объектов, содержащихся в ссылке Xceed из кода c # , работает и делает так, чтобы у дочернего проекта была dll в выходном кодировщике.Итак, на данный момент вопрос заключается в том, есть ли способ сделать это из XAML?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...