|
Как правильно организовать работу с несколькими однотипными проектами в VC2010 Express?
|
|||
---|---|---|---|
#18+
Есть несколько однотипных приложений. Парсеры из различных форматов. Есть есть общая часть кода для всех 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 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2015, 19:28 |
|
Как правильно организовать работу с несколькими однотипными проектами в VC2010 Express?
|
|||
---|---|---|---|
#18+
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 . Но этим нужно аккуратно пользоваться т.к. при командной работе это может усложнить работу с проектом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2015, 21:13 |
|
|
start [/forum/topic.php?fid=20&fpage=73&tid=1401050]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 465ms |
0 / 0 |