21.01.2025, 00:55 | #1 |
Участник
|
D365 . Компиляция на новой VM
Есть голая VM для разработки. Я настроила Workspace , чтобы смотрел на нужный branch DevOPS , и c cделала GetLatest и refresh списка моделей.
Объясните, пожалуйста, как вы потом компилируете и почему? 1) ВСЕ модели разом + оnмечаете галку Build references packages 2) ВСЕ модели разом + оnмечаете галку Build only cross reference data (закладка Options) 3) Только модели ISV + потом клиентские 4) Одновременно ISV и клиентские Также Отмечаете ли вы Synchronise database(закладка Options) или сихронизацию делаете потом отдельно , после компиляции? Навеное, отдельно логичнее, чтобы быстрее увидеть все ошибки компиляции. Да и вообще, что вы в Options отмечаете, если на то уж пошло? Спасибо! |
|
21.01.2025, 07:30 | #2 |
NavAx
|
Я сперва синхронизирую. А потом уже компилирую.
Т.к. версия приложения, на котором делался код, может отличаться, лучше Build references packages. cross reference отдельно можно построить.
__________________
Isn't it nice when things just work? |
|
21.01.2025, 12:33 | #3 |
Moderator
|
Стандартные микрософтовские модели перекомпилировать без галочки "Build only cross-reference data" не рекомендуется. Микрософт со своими моделями поставляет файлы отладочной информации (PDB) сконверитированные в Portable PDB Format, который раз в 7-8 меньше памяти занимает чем обычный PDB-файл, который при перекомпиляции модели стандартным VS получается. Конечно в 64битном VS2022 это не такая большая проблема как это было в VS2019, но все равно - после перекомпиляции стандартных моделей у отладчика эдак с пол-гига памяти впустую отъедаться начинает.
В принципе есть утилита конвертации из обычного PDB в portable (и я ей раньше иногда сжимал PDB файлы стандартных моделей, если их все-же пришлось скомпилировать), но проще их вообще не компилировать. |
|
|
За это сообщение автора поблагодарили: MorpheusX (1), sukhanchik (3). |
21.01.2025, 22:01 | #4 |
Administrator
|
Цитата:
Сообщение от Lankey
Есть голая VM для разработки. Я настроила Workspace , чтобы смотрел на нужный branch DevOPS , и c cделала GetLatest и refresh списка моделей.
Объясните, пожалуйста, как вы потом компилируете и почему? 1) ВСЕ модели разом + оnмечаете галку Build references packages 2) ВСЕ модели разом + оnмечаете галку Build only cross reference data (закладка Options) 3) Только модели ISV + потом клиентские 4) Одновременно ISV и клиентские Также Отмечаете ли вы Synchronise database(закладка Options) или сихронизацию делаете потом отдельно , после компиляции? Навеное, отдельно логичнее, чтобы быстрее увидеть все ошибки компиляции. Да и вообще, что вы в Options отмечаете, если на то уж пошло? Спасибо! 1. Собственно, если отмечать все модели разом - то смысла во флажке Build references packages нет. Смысл этого флажка в том, чтобы при компиляции не всех моделей заодно откомпилировать те модели, на которые ссылаются компилируемые модели. Т.о. при выборе всех моделей такой необходимости нет. 2. Да. Но с поправкой на замечание от fed. 3. Тут как раз можно воспользоваться флажком Build references packages, однако для ускорения я сначала билдил "родительские" модели - т.е. в данном случае ISV, а потом уже клиентские. Вместе у меня не всегда получался успешный билд - порядок компиляции моделей почему-то не всегда был очевиден системе. Но это может быть и поправлено уже. Синхронизацию всегда запускал отдельно, потому что если вдруг билд завершался неудачно, то синхронизация не отрабатывала. Вообще, с синхронизацией тут надо аккуратно при наличии реальных данных, потому что в лучшем случае система поругается, а в худшем - еще чего-то и подпортит. К примеру, есть клиентская БД, в которой добавлено поле в стандартную таблицу. У Вас стандартная D365FO, в которую добавлена клиентская модель, которая еще ни разу успешно не билдилась на Вашей виртуалке. Как должна отработать синхронизация? Она просто отработает по стандартной структуре и знать не будет про кастомное поле, которое может запросто удалить. При регулярной разработке (т.е. не первом билде) синхронизацию я обычно также сразу не включал - это замедляет процесс билда. Однако в проектах по разработке прав доступа - эта галка просто жизненно необходима - т.к. никакие разрешения не меняются до тех пор, пока синхронизация успешно не отработает.
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Lankey (1). |
22.01.2025, 12:16 | #5 |
NavAx
|
Компилируем только свои модели, после синхронизируем.
|
|
25.01.2025, 12:49 | #6 |
Участник
|
Цитата:
Сообщение от fed
Стандартные микрософтовские модели перекомпилировать без галочки "Build only cross-reference data" не рекомендуется. Микрософт со своими моделями поставляет файлы отладочной информации (PDB) сконверитированные в Portable PDB Format, который раз в 7-8 меньше памяти занимает чем обычный PDB-файл, который при перекомпиляции модели стандартным VS получается. Конечно в 64битном VS2022 это не такая большая проблема как это было в VS2019, но все равно - после перекомпиляции стандартных моделей у отладчика эдак с пол-гига памяти впустую отъедаться начинает.
В принципе есть утилита конвертации из обычного PDB в portable (и я ей раньше иногда сжимал PDB файлы стандартных моделей, если их все-же пришлось скомпилировать), но проще их вообще не компилировать. Вы компилиуете все модели с этой галкой ? Или вы сначала компилируете с галкой стандартные, а потом компилируете отдельно остальные, но уже без галки. Если второе, то какие галки отмечаете на закладке Options при втором проходе? |
|
25.01.2025, 13:42 | #7 |
Участник
|
Спасибо. Не могли бы Вы пояснить этот пункт.? То есть, в чем состоит поправка? Если я все отмечаю для компиляции, то галка же будет относиться как к стандартным, так и ко всем остальным
Из моего ограниченного одной машиной опыта, пока я не перекомпилила ВСЕ, ошибок была куча. То есть, я сначала, для быстроты решила за раз откомпилить ISV(их несколько) вместе с клиентскими(их несколько), но компиляция выдавала отшибки, что не существуют объекты , что в реальности существуют и должны были ли бы откомпилиться уже в модели, что в списке указана раньше текущей. То есть, порядок не соблюдается, это точно. И задать заранее не вижу как Потом попробовала сначала все Isv и потом отдельно кастомные. Все равно ошибки. Не находил объекты из касто моделей. Потом все (вскл стандарт) за раз( Я на ночь оставляла компиляцию. Я так понимаю, около 7 часов заняла ). Но вдруг ошибка - не нашел FinTag, когда компилил модель Application Suite! И только одна такая , на одном методе Тут я уже решила отдельно откомпилировать application Suite, а потом заново Isv и потом клиентские. Вышла вдруг на финиш. Без ошибок откомпилировал. Но убила же почти 2 раб дня на это. И так и не поняла, как надо-то по уму было делать. При всех вышеуказанных примерах компиляциях " Build only cross reference data " был всех проставлен (по дефолту стоит). С "Build references packages" не помню. Точно не ставила при полной компиляции. Из Вашего сообшения я понимаю, что Вы прадлагаете на новой машине компилировать : а) ВСЕ модели разом + оnмечать галку Build only cross reference data (закладка Options) и не отмечать "Build references packages". либо б) Делать два этапа : Сначала ISV c "Build references packages". И потом уже клиентские с "Build references packages". Так? Последний раз редактировалось Lankey; 25.01.2025 в 13:49. |
|
26.01.2025, 23:14 | #8 |
северный Будда
|
Несколько лет назад приходилось самому пару-тройку дев-машин подготовить. Первую компиляцию лучше запускать по всем моделям, но без Build references packages и Build only cross-reference data (её тогда вроде бы и не было). После успешного завершения билда - синхронизация.
__________________
С уважением, Вячеслав |
|
27.01.2025, 18:41 | #9 |
Moderator
|
Цитата:
Сообщение от Lankey
Спасибо. Я только не поняла, как Вы сами делаете на новой дев машине?
Вы компилиуете все модели с этой галкой ? Или вы сначала компилируете с галкой стандартные, а потом компилируете отдельно остальные, но уже без галки. Если второе, то какие галки отмечаете на закладке Options при втором проходе? P.S. Поспрашивал окружающих - все говорят - да была такая проблема когда-то, но потом как-то сама собой прошла. Предположу что либо у вас очень старая версия среды разработки, либо что проблема лечиться какими-то нелогичными способами, типа рестарта виртуалки или VS. Последний раз редактировалось fed; 27.01.2025 в 19:11. |
|
27.01.2025, 20:51 | #10 |
Administrator
|
Цитата:
Цитата:
Сообщение от fed
Микрософт со своими моделями поставляет файлы отладочной информации (PDB) сконверитированные в Portable PDB Format, который раз в 7-8 меньше памяти занимает чем обычный PDB-файл, который при перекомпиляции модели стандартным VS получается.
.... но все равно - после перекомпиляции стандартных моделей у отладчика эдак с пол-гига памяти впустую отъедаться начинает. Цитата:
Сообщение от Lankey
Из Вашего сообшения я понимаю, что Вы прадлагаете на новой машине компилировать :
а) ВСЕ модели разом + отмечать галку Build only cross reference data (закладка Options) и не отмечать "Build references packages". либо б) Делать два этапа : Сначала ISV c "Build references packages". И потом уже клиентские с "Build references packages". Так?
__________________
Возможно сделать все. Вопрос времени |
|
Теги |
d365 for operations |
|
|