Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Владимир П от 04-05-2017, 14:48:18

Название: Не создается dll
Отправлено: Владимир П от 04-05-2017, 14:48:18
Начал делать новый плагин для Ревита. Но до Ревита пока дело не дошло. Сделал начальную форму WPF. EXE-файл работает без проблем, никаких ошибок не показывает. Хотел попробовать сделать dll. Ничего абсолютно не меняя, только переключил в свойствах проекта с "Приложения Windows" на "Библиотеку классов", получаю следующую картину.. 2 ошибки... и никаких к ним пояснений: где и как ошибки исправить?
(https://s15.postimg.org/fyh9ctr9j/2017.05.04_18-31-05.jpg) (https://postimg.org/image/fyh9ctr9j/)
Название: Re: Не создается dll
Отправлено: Виктор Чекалин от 04-05-2017, 15:02:18
Владимир П, exe файл работал с  Revit API как самостоятельное приложение?? или просто был подключен как надстройка? Версия Revit какая?
Название: Re: Не создается dll
Отправлено: Владимир П от 04-05-2017, 15:44:57
Здравствуйте, Виктор. Да пока что, Revit API не при чем, и Ревит сам по себе никак еще не подключался. На этом и застрял. Хотел сделанный интерфейс запустить как надстройку (пока еще просто один интерфейс запустить, без работы в самом Ревите), но я, так понимаю, для этого надо сделать dll. А с этим вот неожиданно проблема... 
Название: Re: Не создается dll
Отправлено: Виктор Чекалин от 04-05-2017, 15:50:46
Revit API не при чем, и Ревит сам по себе никак еще не подключался
Тогда и вопрос не про Revit API:)
Сейчас вспомнил в чем проблема. Судя по всему был создан новый проект WPF Application. При изменении WPF проекта на библиотеку классов возникают ошибку, было у меня такое. Ситуация такова, что в проекте содержатся объекты, которые не могут содержаться в библиотеке классов. Вот первое нагуглившееся решение - http://stackoverflow.com/questions/1050588/problems-after-copying-xaml-controls-from-wpf-application-to-class-library
Название: Re: Не создается dll
Отправлено: shss от 04-05-2017, 15:58:08
Цитировать
Хотел попробовать сделать dll. Ничего абсолютно не меняя, только переключил в свойствах проекта с "Приложения Windows" на "Библиотеку классов"
а разве так можно делать вообще?:)
ведь в WPF есть как минимум, точка входа, которая запускает приложение, а в dll такого нет.
Код - C# [Выбрать]
  1. public static void Main() {
  2.     WpfApplication1.App app = new WpfApplication1.App();
  3.     app.InitializeComponent();
  4.     app.Run();
  5. }
  6.  
Название: Re: Не создается dll
Отправлено: Владимир П от 04-05-2017, 16:07:19
Тогда и вопрос не про Revit API:)
Ну да, пока еще нет, но... на перспективу...
Спасибо! пока все получилось ошибки пропали и dll создалась! Теперь перехожу в Ревит...
Название: Re: Не создается dll
Отправлено: Владимир П от 04-05-2017, 16:13:23
а разве так можно делать вообще?ведь в WPF есть как минимум, точка входа, которая запускает приложение, а в dll такого нет.
вот совершенно пустой проект WPF: как-то не так, как в приведенном Вами коде:
Код - C# [Выбрать]
  1. namespace WpfApplication4
  2. {
  3.     /// <summary>
  4.     /// Логика взаимодействия для MainWindow.xaml
  5.     /// </summary>
  6.     public partial class MainWindow : Window
  7.     {
  8.         public MainWindow()
  9.         {
  10.             InitializeComponent();
  11.         }
  12.     }
  13. }
  14.  
Название: Re: Не создается dll
Отправлено: Александр Ривилис от 04-05-2017, 16:41:01
Владимир П
Напоминаю про форматирование на форуме, описанное у меня в подписи.
Название: Re: Не создается dll
Отправлено: Виктор Чекалин от 05-05-2017, 07:39:19
ведь в WPF есть как минимум, точка входа, которая запускает приложение, а в dll такого нет.
А почему нет? Точка входа есть в любом Windows приложении, не только в WPF. Но точка входа - это всего лишь статический класс с методом Main. Приложение Windows использует этот метод как точку входа. Если поменять типа проекта на Библиотека Классов, то метод Main будет себя вести точно так же, как и любой другой метод.
Другой вопрос, что приложение WPF ведет себя по-другому, и не допускает наличие некоторых классов в библиотеке классов.