From: Jason G. <jas...@mi...> - 2008-05-21 20:43:21
|
This is a bug in the reading of record streams over the out-of-proc CA remoting channel. Can you file it on SF for tracking? Thanks! For now I suggest you use the workaround you already have, which is to extract the stream to a temporary file. -Jason- From: Christopher Karper [mailto:chr...@gm...] Sent: Wednesday, May 21, 2008 1:24 PM To: Jason Ginchereau Subject: Re: [WiX-users] DTF Stream Operations Issue Exception occured during stream processing: System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Runtime.InteropServices.Marshal.CopyToManaged(IntPtr source, Object destination, Int32 startIndex, Int32 length) at Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods.ReadStream(IntPtr buf, Int32 field, Byte sBuf, Int32 count) at Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods.MsiRecordReadStream(Int32 hRecord, UInt32 iField, Byte szDataBuf, UInt32& cbDataBuf) at Microsoft.Deployment.WindowsInstaller.RecordStream.Read(Byte buffer, Int32 offset, Int32 count) at System.IO.StreamReader.ReadBuffer() at System.IO.StreamReader.ReadToEnd() at triCerat.Installer.CustomActions.BinaryFormatter.FormatBinaryScript(Session session) On Wed, May 21, 2008 at 4:15 PM, Jason Ginchereau <jas...@mi...<mailto:jas...@mi...>> wrote: Can you share the stack trace? From: wix...@li...<mailto:wix...@li...> [mailto:wix...@li...<mailto:wix...@li...>] On Behalf Of Christopher Karper Sent: Wednesday, May 21, 2008 1:10 PM To: Kelly Leahy Cc: wix...@li...<mailto:wix...@li...>; wix...@li...<mailto:wix...@li...> Subject: Re: [WiX-users] DTF Stream Operations Issue No, it's not, and actually, that was a remnant from a variation I tried. I thought maybe ReadToEnd wasn't working, so I did it line by line and got the same issue. The exception is thrown from within the Read operation, I know that's where the issue lies. :-) Good thought though. Chris On Wed, May 21, 2008 at 4:00 PM, Kelly Leahy <Kel...@mi...<mailto:Kel...@mi...>> wrote: dumb question (maybe). Is "script" null upon entry into the loop you gave? It can't be as far as I know for the += operator to work. Kelly "Christopher Karper" <chr...@gm...<mailto:chr...@gm...>> Sent by: wix...@li...<mailto:wix...@li...> 05/21/2008 12:38 PM To "Christopher Painter" <ch...@ya...<mailto:ch...@ya...>> cc "wix...@li...<mailto:wix...@li...>" <wix...@li...<mailto:wix...@li...>> Subject Re: [WiX-users] DTF Stream Operations Issue I haven't seen a WiX developer yet that wasn't helpful and open. I'm impressed with the fact that the entire team is very active in this mailing list. On Wed, May 21, 2008 at 3:20 PM, Christopher Painter <ch...@ya...<mailto:ch...@ya...>> wrote: As an aside, we do have the source code to all those internal classes :) And more importantly we have a developer who in the very few days I've known him has been extremly open and cordial in addressing questions about the classes and even taking suggestions from improvement from such an obvious C# rookie as me who happens to have a bit of domain knowledge the classes are trying to address. Christopher Karper <chr...@gm...<mailto:chr...@gm...>> wrote: Shouldn't matter. I can get the data to and from the file with no issue. It's just trying to get the data into the memorystream instead f the filestream is an issue. The RecordStream object in DTF looks like it might be useful, but in typical MS fashion, the useful foundation classes are internal instead of public, LOL. I appreciate your help. I'll just keep banging on it from here. Chris On Wed, May 21, 2008 at 3:01 PM, Christopher Painter <ch...@ya...<mailto:ch...@ya...>> wrote: Ok, I was wondering how you were going to read binary data into a string. I'm not the best C# guy in the world but I'll see what I can learn here. I am wondering though, is your text unicode or ansi and would it even matter? Christopher Karper <chr...@gm...<mailto:chr...@gm...>> wrote: It's text, and I'm running as a custom action, so my database should already be available. I'm opening the view with a joined query, but getting the same data. I can get the record fine, and I can get the stream fine, it's when I try to read from the StreamReader wrapper that I run into issues. I'm trying to read out the text data stored in the binaries table, then modify it. I'm trying to avoid using a temp file if I can, since I only need it in memory. Chris On Wed, May 21, 2008 at 2:41 PM, Christopher Painter <ch...@ya...<mailto:ch...@ya...>> wrote: What is the type of script? Eitherway, would this work for you? Database db = new Database("C:\\TEST.MSI", DatabaseOpenMode.ReadOnly); View view = db.OpenView("SELECT `Name`, `Data` From `Binary` WHERE `Binary`.`Name` = 'ISXMLCFG.DLL'"); view.Execute(); foreach (Record rec in view) using (rec) { Stream stream = rec["Data"] as Stream; } Christopher Karper <chr...@gm...<mailto:chr...@gm...>> wrote: I'm trying to read binary data into a memory stream, but Stream stream = binRec.GetStream("Data"); using (StreamReader sr = new StreamReader(stream)) { script += sr.ReadToEnd(); } Gives me an ArgumentNullException when I try to read the stream. Am I missing a step? Is this stream not compatible with a streamreader? Chris ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________ WiX-users mailing list WiX...@li...<mailto:WiX...@li...> https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________ WiX-users mailing list WiX...@li...<mailto:WiX...@li...> https://lists.sourceforge.net/lists/listinfo/wix-users ************************************************************************************** This communication is intended solely for the addressee and is confidential. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. Unless indicated to the contrary: it does not constitute professional advice or opinions upon which reliance may be made by the addressee or any other party, and it should be considered to be a work in progress. Unless otherwise noted in this email or its attachments, this communication does not form a Statement of Actuarial Opinion under American Academy of Actuaries guidelines. ************************************************************************************** |