是否有人在创建文件时遇到错误,其中附加了自定义操作的临时提取路径?
我有一个托管自定义操作(使用Microsoft.Deployment.WindowsInstaller的64位C#DLL)执行一些系统检查。它在延迟CA中写入inf样式key = value文件。这里只有一个File.Create( FullPathToFile ),真的没什么特别的。
但是当我尝试编写文件时,由于某种原因包含了CA被提取到的临时目录。
MSI(s)(3C:E4)[10:19:36:712]:您好,我是您的64位Elevated自定义操作服务器。
SFXCA:将自定义操作提取到临时目录:C:\ Windows \ Installer \ MSIC451.tmp - \
SFXCA:绑定到CLR版本v2.0.50727
System.IO.DirectoryNotFoundException:找不到路径的一部分 'C:\ Windows Installer \ MSIC451.tmp- * C:\ Program Files \ Path属性文件应写入< / EM> * ”。在 System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)
在System.IO.FileStream.Init(String path,FileMode mode,FileAccess access,Int32 rights,Boolean useRights,FileShare share,Int32 bufferSize,FileOptions options,SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy)
at System.IO.FileStream..ctor(String path,FileMode mode,FileAccess access,FileShare share,Int32 bufferSize,FileOptions options,String msgPath,Boolean bFromProxy)
在......
管理CA使用流编写器的方式有什么奇怪之处吗?
答案 0 :(得分:0)
我终于发现我试图使用的变量包含一个属性,即:[TARGETDIR]\otherstuff
。当我将变量用作文件路径时,我期望路径为C:\Program Files\productname\otherstuff\mystuff
。但不是财产。当与某些操作(在这种情况下为StreamWriter)一起使用时,属性无法正确解析,从而给出了上述错误。
在我发现路径的一部分实际上是从属性中解析后,我能够进行更改以解析我需要的属性路径,一切都按预期工作。
session.Format(Property)
或session[Property]