AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2025, 00:55   #1  
Lankey is offline
Lankey
Участник
 
134 / 28 (1) +++
Регистрация: 19.05.2020
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  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,322 / 996 (38) +++++++
Регистрация: 03.04.2002
Я сперва синхронизирую. А потом уже компилирую.
Т.к. версия приложения, на котором делался код, может отличаться, лучше Build references packages.
cross reference отдельно можно построить.
__________________
Isn't it nice when things just work?
Старый 21.01.2025, 12:33   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Стандартные микрософтовские модели перекомпилировать без галочки "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  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,333 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от 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 отмечаете, если на то уж пошло?

Спасибо!
Опыт у меня правда более старых версий D365FO, тем не менее - скажу:
1. Собственно, если отмечать все модели разом - то смысла во флажке Build references packages нет. Смысл этого флажка в том, чтобы при компиляции не всех моделей заодно откомпилировать те модели, на которые ссылаются компилируемые модели. Т.о. при выборе всех моделей такой необходимости нет.
2. Да. Но с поправкой на замечание от fed.
3. Тут как раз можно воспользоваться флажком Build references packages, однако для ускорения я сначала билдил "родительские" модели - т.е. в данном случае ISV, а потом уже клиентские. Вместе у меня не всегда получался успешный билд - порядок компиляции моделей почему-то не всегда был очевиден системе. Но это может быть и поправлено уже.

Синхронизацию всегда запускал отдельно, потому что если вдруг билд завершался неудачно, то синхронизация не отрабатывала.
Вообще, с синхронизацией тут надо аккуратно при наличии реальных данных, потому что в лучшем случае система поругается, а в худшем - еще чего-то и подпортит. К примеру, есть клиентская БД, в которой добавлено поле в стандартную таблицу. У Вас стандартная D365FO, в которую добавлена клиентская модель, которая еще ни разу успешно не билдилась на Вашей виртуалке. Как должна отработать синхронизация? Она просто отработает по стандартной структуре и знать не будет про кастомное поле, которое может запросто удалить.

При регулярной разработке (т.е. не первом билде) синхронизацию я обычно также сразу не включал - это замедляет процесс билда. Однако в проектах по разработке прав доступа - эта галка просто жизненно необходима - т.к. никакие разрешения не меняются до тех пор, пока синхронизация успешно не отработает.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: Lankey (1).
Старый 22.01.2025, 12:16   #5  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,495 / 1070 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Компилируем только свои модели, после синхронизируем.
Старый 25.01.2025, 12:49   #6  
Lankey is offline
Lankey
Участник
 
134 / 28 (1) +++
Регистрация: 19.05.2020
Цитата:
Сообщение от 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  
Lankey is offline
Lankey
Участник
 
134 / 28 (1) +++
Регистрация: 19.05.2020
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Да. Но с поправкой на замечание от fed.:
Спасибо. Не могли бы Вы пояснить этот пункт.? То есть, в чем состоит поправка? Если я все отмечаю для компиляции, то галка же будет относиться как к стандартным, так и ко всем остальным

Из моего ограниченного одной машиной опыта, пока я не перекомпилила ВСЕ, ошибок была куча.
То есть, я сначала, для быстроты решила за раз откомпилить 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  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,512 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Несколько лет назад приходилось самому пару-тройку дев-машин подготовить. Первую компиляцию лучше запускать по всем моделям, но без Build references packages и Build only cross-reference data (её тогда вроде бы и не было). После успешного завершения билда - синхронизация.
__________________
С уважением,
Вячеслав
Старый 27.01.2025, 18:41   #9  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Lankey Посмотреть сообщение
Спасибо. Я только не поняла, как Вы сами делаете на новой дев машине?
Вы компилиуете все модели с этой галкой ? Или вы сначала компилируете с галкой стандартные, а потом компилируете отдельно остальные, но уже без галки. Если второе, то какие галки отмечаете на закладке Options при втором проходе?
Я компилирую только нашу модель с дефолтными опциями. Вообще я пару раз видел такие ситуации, когда при этом вылезают неопределенные ссылки на методы и класса из стандарта или ISV-моделей. Раньше я и вправду запускал полную перекомпиляцию всего, но последний раз это года полтора назад было. Подозреваю что надо просто перезапустить VS несколько раз или что-то подобное
P.S. Поспрашивал окружающих - все говорят - да была такая проблема когда-то, но потом как-то сама собой прошла. Предположу что либо у вас очень старая версия среды разработки, либо что проблема лечиться какими-то нелогичными способами, типа рестарта виртуалки или VS.

Последний раз редактировалось fed; 27.01.2025 в 19:11.
Старый 27.01.2025, 20:51   #10  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,333 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Lankey Посмотреть сообщение
Спасибо. Не могли бы Вы пояснить этот пункт.? То есть, в чем состоит поправка?
Вот это. Т.е. если есть возможность не компилировать модели от MS - то лучше этого не делать.

Цитата:
Сообщение от 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

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
patrickmouwen: D365 F&O/Commerce interfacing via Azure API Management: My Best Practices Blog bot DAX Blogs 0 10.03.2022 02:47
Sumit Potbhare: Retail Warehousing | Wrap up | Approach to D365 for Commerce with Adv WH Mgmt Blog bot DAX Blogs 0 28.04.2021 13:12
patrickmouwen: How to Unlock Many Hidden D365 Retail Features! Blog bot DAX Blogs 0 13.05.2020 22:13
patrickmouwen: D365 Retail APIs Part III: How to use the Retail APIs from Power Automate (Flow) and Logic App Blog bot DAX Blogs 0 28.01.2020 02:15
patrickmouwen: D365 Retail APIs Part II: How to know exactly what happens inside D365 Retail Blog bot DAX Blogs 0 14.12.2019 01:17

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:10.