11.06.2007, 13:18 | #11 |
Участник
|
блин, чета не получается у меня решить задачу с использованием SysFileDeployer. В общем у меня проблема такая - DAX4.0 )))))
Короче сделал как там и описали (в смысле пока хотел посмореть как скопируются у меня файл \\axapta\40\NATApplication\Share\Include\addInsBut.bmp): 1. необходимый для копирования файл разместил на сервере в папке \\axapta\40\NATApplication\Share\Include (именно на папкуC:\Program Files\Microsoft Dynamics AX\40\NATApplication натравлен AOS), данной папке дал полный доступ для всех, а так же копируемому файлу в этой папке и на клиенте ресурсу «C:\Program Files\Microsoft Dynamics AX\40\Client\Share\Include» установил полное разрешение для всех (вкладка «безопасность» в свойствах файлов и папок). 2. написал класс-наследник от SysFileDeploymentFile, в нем перекрыл методы destinationPath и filename, в которых указал путь (return xInfo::directory(DirectoryType::Include) и имя файла (return 'addInsBut.bmp' 3. в методе SysFileDeployer.filesToDeploy возвращаю контейнер к котором указан описанный выше класс (classNum(имя_класса)) при пошаговой отладке запуска клиента, вижу что в методе SysFileDeployer.main проверка if (!sysFileDeployer.parmUpToDate() && !sysFileDeployer.isUptodate() && sysFileDeployer.prompt()) обрывается на первом же !sysFileDeployer.parmUpToDate() (возвращает истину) вообщем при комментировании данной проверки if (/*!sysFileDeployer.parmUpToDate() &&*/ !sysFileDeployer.isUptodate() && sysFileDeployer.prompt()) получается ошибка уже в !sysFileDeployer.isUptodate() – вообщем при отладке дохожу при проверке версии файла (даты модификации) до info.add(), в нем _txt = «Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand (S)\Classes\WinAPIServer\createFile - line 26 (S)\Classes\WinAPIServer\getFileDate - line 13 (S)\Classes\WinAPIServer\getFileModifiedDate - line 10 (S)\Classes\SysFileDeploymentFile\serverVersion - line 5 (S)\Classes\SysFileDeploymentFile\parmServerVersion - line 4 (S)\Classes\SysFileDeployment\getServerVersion - line 5 (S)\Classes\SysFileDeployer\filesAndVersions - line 17 (C)\Classes\SysFileDeployer\isUptodate - line 3 (C)\Classes\SysFileDeployer\main - line 8 (C)\Classes\Info\startup - line 30» И в данном методе переменная _sysInfoAction=null… В общем, работа прекращается при проверке !sysFileDeployer.isUptodate() ошибкой «Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand (S)\Classes\WinAPIServer\createFile - line 26 (S)\Classes\WinAPIServer\getFileDate - line 13 (S)\Classes\WinAPIServer\getFileModifiedDate - line 10 (S)\Classes\SysFileDeploymentFile\serverVersion - line 5 (S)\Classes\SysFileDeploymentFile\parmServerVersion - line 4 (S)\Classes\SysFileDeployment\getServerVersion - line 5 (S)\Classes\SysFileDeployer\filesAndVersions - line 17 (C)\Classes\SysFileDeployer\isUptodate - line 3 (C)\Classes\SysFileDeployer\main - line 8 (C)\Classes\Info\startup - line 30» -------------------------------------------------------- Выясняется что в методе Info.addв следующей строке if (!_sysInfoAction && !_helpUrl && hasSecuritykeyAccess(securitykeynum(SysDevelopment), AccessType::View)) { session = new xSession(); if(session.clientKind() == ClientType::Client) { _sysInfoAction = SysInfoAction_Editor::newStack(); } } Метод SysInfoAction_Editor::newStack() возвращает null… ------------------------------------------------- кстати, в метод info.add() курсор каким-то чудом переходит сразу после кода в методе WinAPIServer.createfile // check file I/O permission if(_flags == #OPEN_EXISTING) { fileIOPerm = new FileIOPermission(_fileName,'r'); } else { fileIOPerm = new FileIOPermission(_fileName,'w'); } fileIOPerm.demand(); данный кусок я закомментировал и только после этого вроде как при входе аксапта спрашивает "В клиентской установке отсутствуют файлы, необходимые для работы Microsoft Dynamics", при подтверждении установки возникает ошибка: Сбой запроса на разрешение типа "FileIOPermission". (S)\Classes\FileIOPermission\demand (S)\Classes\BinData\loadFile (S)\Classes\SysFileDeployment\getServerFile - line 15 (C)\Classes\SysFileDeployment\copy - line 4 (C)\Classes\SysFileDeployment\run - line 7 (C)\Classes\SysFileDeployer\run - line 26 (C)\Classes\SysFileDeployer\main - line 9 (C)\Classes\Info\startup - line 30 уже не знаю куда дальше копать... ((((( |
|
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|