Я создаю проект подключаемого модуля winforms с Visual Studio 2013 Express. Это будет «набор инструментов», куда можно добавить различные «инструменты», скопировав их библиотеки DLL в какую-либо папку, откуда их можно будет просмотреть, загрузить и добавить на новую вкладку. Я решил запустить одну копию VS для фрейма подключаемого модуля и одну для создания подключаемых модулей.
Я нашел этот поток о том, как создавать DLL со студийного проекта и для первого теста все прошло нормально. Хороший рабочий процесс. Но когда я изменил первый инструмент, чтобы он происходил не напрямую из UserControl, а из базового класса пользовательского плагина, который наследуется от UserControl, я получил ошибку компилятора. (тип или пространство имен «База» не найдено...)
Вот полностью урезанная версия, которая выдаст ту же ошибку. Очевидно, что в отредактированном файле .csproj что-то не так или отсутствует.
- Итак, как следует изменить файл сборки, чтобы разрешить создание DLL для унаследованных классов?
- Также: есть ли объяснение параметров, таких как «Плагин», «Зависимый Upon» или «Подтип»?
Кстати: в реальной версии мне пришлось объединить части частичного класса UserControl, чтобы заставить его работать. (Это было до перехода к базовому классу.) Можно ли изменить файл .csproj, чтобы разрешить частичные классы?
using System; //.. namespace test_cx1 { class Base { } }
using System; //.. namespace test_cx1 { class Tool1 : Base { } } <ItemGroup> <Compile Include="Base.cs"> <Plugin>true</Plugin> </Compile> <Compile Include="Tool1.cs"> <Plugin>true</Plugin> <!-- does not compile --> </Compile> .. .. <Target Name="BuildPlugins"> <CSC Condition="%(Compile.Plugin) == 'true'" Sources="%(Compile.FullPath)" TargetType="library" OutputAssembly="$(OutputPath)%(Compile.FileName).dll" EmitDebugInformation="true" /> </Target> <Target Name="AfterBuild" DependsOnTargets="BuildPlugins"> </Target>