Управляемые CA по-разному используют streamwriter? - PullRequest
1 голос
/ 19 июля 2011

Кто-нибудь сталкивался с ошибкой, при которой путь временного извлечения настраиваемого действия добавлялся при создании файла?

У меня есть управляемое настраиваемое действие (64-разрядная библиотека C # DLL с использованием Microsoft.Deployment.WindowsInstaller), которое выполняетнекоторые системные проверки.Он записывает файл ключа стиля inf = значение в отложенном ЦС.Здесь действительно ничего необычного не происходит, только File.Create ( FullPathToFile ).

Но когда я пытаюсь записать файл, по какой-то причине включается временный каталог, в который извлекается ЦС.

MSI (3C: E4) [10:19: 36: 712]: Здравствуйте, я ваш 64-битный сервер пользовательских действий с повышенными правами.

SFXCA: Извлечение пользовательского действия во временный каталог: C: \ Windows \ Installer \ MSIC451.tmp - \

SFXCA: привязка к версии CLR v2.0.50727

System.IO.DirectoryNotFoundException: Не удалось найти часть пути 'C: \ Установщик Windows \ MSIC451.tmp- * C:\ Program Files \ Path, файл свойств должен быть записан в * '.в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath)
в System.IO.FileStream.Init (Строковый путь, режим FileMode, доступ к FileAccess, права Int32, логические useRights, общий ресурс FileShare, буфер32Size Int32, параметры FileOptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
в System.IO.FileStream..ctor (Строковый путь, режим FileMode, доступ к FileAccess, FileShare, Int32 bufferSize, параметры FileOptions, строковый msgPath, логический bFromProxy) * 10at .....

Есть ли что-то странное в том, как управляемый CA использует модуль записи потоков?

1 Ответ

0 голосов
/ 27 июля 2011

Я наконец понял, что переменная, которую я пытался использовать, включала свойство, то есть: [TARGETDIR]\otherstuff. Когда я использовал переменную для в качестве пути к файлу, я ожидал путь C:\Program Files\productname\otherstuff\mystuff. Но не собственность. При использовании с некоторыми операциями (в данном случае StreamWriter) свойство не разрешается должным образом, что выдает ошибку выше.

После того, как я выяснил, что часть пути фактически была разрешена из свойства, я смог внести изменения, чтобы определить нужный мне путь из свойства, и все работает как ожидалось.

session.Format(Property) или session[Property]

...