Powerbuilder запустить

Я использую Powerbuilder для вызова внешней функции из DLL, созданной на C#.

Если я создаю исполняемый файл, он работает нормально, он отлично вызывает веб-службу, но когда я пытаюсь запустить его в режиме «разработки», он не использует файл «application_name.exe.config».

Я попытался установить файл «app.config», жестко закодированный в DLL, но безуспешно.

Подсказки для решения этой проблемы?


person user331367    schedule 03.05.2010    source источник


Ответы (4)


Я думаю, вы сами описали это: вы ищете, чтобы использовать что-то, используемое EXE, когда вы работаете из режима разработки. При запуске из режима разработки EXE-файл не генерируется и не используется, поэтому Windows не будет использовать функциональные возможности, связанные с EXE-файлом. (PB запускает ваше приложение так быстро, потому что оно только загружает приложение на виртуальную машину и запускает его событие Open.) Если вам это нужно, похоже, вам придется включить развертывание EXE и запустить его как часть вашего цикл испытаний.

Удачи,

Терри.

person Terry    schedule 03.05.2010
comment
Да, это что-то вроде этого. Я пытаюсь предотвратить это, потому что полная сборка и генерация EXE моего приложения занимают 2 часа. - person user331367; 03.05.2010
comment
Если сказать прямо, что это двухчасовой процесс, это звучит так, как будто вы используете исключительно полную сборку. Хотя я бы определенно рекомендовал именно этот подход для окончательных сборок, пробовали ли вы экспериментировать с добавочными сборками? Это намного надежнее, чем раньше, и, как я уже сказал, я думаю, вам понадобится сборка EXE для тестирования, которая использует файл конфигурации. (Я буду рад, если кто-то добавит что-то, что доказывает мою неправоту.) - person Terry; 03.05.2010
comment
это приложение разрабатывается несколькими людьми, и мы используем некоторые объекты, унаследованные от других, поэтому, если PB запустится с инкрементальной сборкой, но обнаружит некоторые ошибки, она выполнит полную сборку... спасибо за ответ. Но я не пробую, потому что мне это больше не нужно. - person user331367; 12.05.2010
comment
Именно по этой причине вам НИКОГДА не следует работать с общими PBL! (И это даже менее важно, чем блокировка PBL при запуске.) Настройка репозитория исходного кода PBNative, вероятно, имеет смысл (и бесплатна). Да, это будет казаться дополнительной работой по извлечению/добавлению объектов, но свобода, которую вы получите для запуска, регенерации и т. д., будет значительной. - person Terry; 13.05.2010
comment
+ 1000 за Вы НИКОГДА не должны отрабатывать общие PBL. Мне не раз приходилось восстанавливать общие библиотеки, один раз из резервной копии, которой больше месяца (спасибо, ребята). ПО КРАЙНЕЙ МЕРЕ, создайте репозиторий PBNative. Если у вас есть система управления версиями, которая использует MS SCC API, используйте ее, если это возможно. В настоящее время мы выполняем различные проекты с использованием Merant/PVCS и TFS. - person DaveE; 28.05.2010

Когда вы компилируете и запускаете из исполняемого файла, вы используете свой исполняемый файл. Но когда вы запускаете из среды разработки, вы на самом деле используете pbxxx.exe (pb115.exe, pb110.exe и т. д.). Возможно, вы сможете скопировать «имя_приложения.exe.config» в каталог pb и переименовать его, например, в pbxxx.exe.config. По крайней мере, так это работает с файлами манифеста — у меня было два, один с именем appname.exe.manifest и один с именем pb115.exe.manifest.

person Slapout    schedule 11.05.2010
comment
Решение, которое мы нашли, заключалось в том, чтобы поместить конфигурации, используемые сгенерированным EXE, в файл PB115.exe.config. И он найдет то, что необходимо для правильной работы. Большое спасибо за ответы.. - person user331367; 12.05.2010

Просто любопытно, а сколько библиотек/объектов в вашем приложении?

У меня есть несколько очень больших приложений, и максимальное время полной сборки любого из них составляет около 30 минут. Что-то странное в вашем приложении, для полной сборки которого требуется 2 часа.

person psant    schedule 13.05.2010
comment
FWIW, я видел, что некоторым объектам требуется значительно больше времени (величины) для регенерации, чем другим. Может быть неуместно пытаться экстраполировать от одного приложения к другому, не говоря уже о одной системе сборки на другую. (Процесс сборки PB, как правило, связан с дисковым вводом-выводом, поэтому более медленные диски будут иметь существенное значение.) - person Terry; 14.05.2010

DLL не имеет файлов конфигурации. Только EXE.

person leppie    schedule 03.05.2010
comment
На самом деле, это неправильно. И DLL, и EXE имеют файлы конфигурации. msdn.microsoft.com/en-us/library/ aa374182%28VS.85%29.aspx - person Bruce Armstrong; 04.05.2010