Трассировка событий для Windows (ETW): ошибочное поведение wevtutil в зависимости от пути к файлу ресурса

Хорошо, я задал этот вопрос на форумах Microsoft и был удивлен их действием.

Это вопрос: //social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/6c2354ae-f9f6-423f-bf91-a34b40e20fa1:

Я также разместил его здесь с дополнительной информацией.

В этом сообщении Проблема установки манифеста WPT с помощью wevtutil предполагается, что wevtutil имеет ограничение на размер атрибута resourcefileName в манифесте.

Я думал, что этого не должно быть, но, к сожалению, это так!

Интересно, почему такое ограничение?

Вот что я сделал. У меня есть решение с довольно умеренной глубиной пути (например, C:\users\\\

Если я укажу имя файла ресурса и имя файла сообщения (в файле манифеста, который необходим для настройки отслеживания событий. См. здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dd996930(v=vs.85).aspx) к exe-файлу по его исходному пути (имеющему указанный выше формат) я получаю предупреждение:

resources are not accessible.

Если я установлю путь exe к чему-то вроде C:\temp\publisher.exe, а затем вручную скопирую

exe из выходного каталога решения в папку C:\temp, все работает нормально.

PS: Кроме того, exe должен иметь правильные разрешения для доступности.

Теперь мой вопрос: почему это ненужное ограничение на путь к файлу? Если так написано в этом якобы мощном API, что он не может обрабатывать пути к файлам более определенной длины, то, к сожалению, он был запрограммирован очень плохо. Как ни странно, у него есть много функций, которые я хотел бы использовать в своем приложении. При этом, как говорится, есть ли какая-либо конкретная опция с атрибутами resourceFileName и messageFileName, которая может изменить это поведение? В msdn об этом ничего не сказано. Или я что-то упускаю?

Во-первых, если кто-нибудь нашел обходной путь для установки издателя событий ЛЮБЫМ путем, не могли бы вы просветить меня?

Во-вторых, ответ Microsoft. Даже не прочитав мой вопрос должным образом, модератор перенес мой вопрос в ветку Windows Server (он догадался об этом по слову resourceFileName, которое, видимо, может иметь какое-то отношение к Windows Server). Я всегда был недоволен Microsoft, но это раздражает!


person Richard Macwan    schedule 11.06.2013    source источник
comment
Какой именно путь терпит неудачу? Я предполагаю, что это что-то глупое, например превышение MAX_PATH или наличие пробелов.   -  person Luke    schedule 11.06.2013
comment
Ну, путь терпит неудачу с пробелами и без них. например C:\Users\richardm\EventTest\EventTest.exe завершается ошибкой, а C:\temp\EventTest.exe - нет.   -  person Richard Macwan    schedule 11.06.2013