powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как правильно организовать работу с несколькими однотипными проектами в VC2010 Express?
2 сообщений из 2, страница 1 из 1
Как правильно организовать работу с несколькими однотипными проектами в VC2010 Express?
    #39103909
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть несколько однотипных приложений. Парсеры из различных форматов.
Есть есть общая часть кода для всех exe (папка Base): BaseParser1.cs, BaseParser2.cs ... BaseParser10.cs
И индивидуальная (папка MyParser): там Program.cs где просто объявляется дочерний класс от BaseParser и прописывается несколько методов.

Думал все порешается элементарно: меню Project - Add existing item ... и так добавить все мои BaseParser*.cs. Но они не добавляются, а копируются в папку MyParser.
Выкрутился ручной правкой MyParser.csproj, заменил <Compile Include="BaseParser.cs" /> на <Compile Include="..\Base\BaseParser.cs" />. Оно работает, компилируется, но как-то это нездорово. Если учесть что мне надо десяток таких проектов, то вообще не вариант. Хоть патчер проекта пиши.

Можно сделать DLL из содержимого папки Base, но тоже не нравится: во-первых лишний DLL файл, во вторых Main() у меня в BaseParser. Хотел пожертвовать единым Main(), попыталься для DLL поставить Embedded Interop Types = True (как понял сборки из DLL должны скомпилироваться внутрь EXE), но вообще перестало компилироваться "Error 1 Cannot embed interop types from assembly '...\BaseParser.dll' because it is missing either the 'ImportedFromTypeLibAttribute' attribute or the 'PrimaryInteropAssemblyAttribute' attribute ...\BaseParser.dll ConsoleApplication1"

Вопрос: есть какие-то стандартные подходы решения данной задачи? Или проше написать прогу для правки MyParser.csproj ?
...
Рейтинг: 0 / 0
Как правильно организовать работу с несколькими однотипными проектами в VC2010 Express?
    #39103956
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, правильный подход это общая библиотека. Main метод в ней не получится разместить, но можно сделать static метод и вызывать его из метода Main основных приложений.

В VS 2015 добавили новый тип проекта для подобных ситуаций - т.н. Shared проекты. Они предназначены для Universal приложений, но должны работать и для других. Так что если есть возможность можно перейти на VS 2015.

Также надо не забывать про возможность объединения сборок в единое целое с помощью ILMerge раз уж тебя не нравится дополнительный DLL файл.

Dima TДумал все порешается элементарно: меню Project - Add existing item ... и так добавить все мои BaseParser*.cs. Но они не добавляются, а копируются в папку MyParser.
Выкрутился ручной правкой MyParser.csproj, заменил <Compile Include="BaseParser.cs" /> на <Compile Include="..\Base\BaseParser.cs" />. Оно работает, компилируется, но как-то это нездорово. Если учесть что мне надо десяток таких проектов, то вообще не вариант. Хоть патчер проекта пиши.
В VS можно добавить "ярлык" на файл: Share code with Add as Link . Но этим нужно аккуратно пользоваться т.к. при командной работе это может усложнить работу с проектом.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как правильно организовать работу с несколькими однотипными проектами в VC2010 Express?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]