views:

31

answers:

1

Hi

I am trying to change where XmlSerializer Outputs Temporary Assemblies so I am following this sort of tutorial

http://www.hanselman.com/blog/ChangingWhereXmlSerializerOutputsTemporaryAssemblies.aspx

yet when I add

<system.xml.serialization> 
  <xmlSerializer tempFilesLocation="c:\\foo"/> 
</system.xml.serialization> 

I get tempFileLocation is not a valid attribute. I am using .net 4.0

Has the name changed or something?

A: 

What version of the .NET Framework are you using? This undocumented functionality was only introduced in an update for Framework 2.0, so it might be that you have not got all the updates?

Here is a link to the MS support site regarding the update http://support.microsoft.com/kb/934529

Update: I tested this with VS2010 Framework 4.0. While the IDE does show the followin warning due to the schema not including this attribute.

Warning 13  The 'tempFilesLocation' attribute is not allowed.

I ran and compiled the code and it worked fine. Here is the config file I used.

<?xml version="1.0"?>
<configuration>
  <system.diagnostics>
    <switches>
      <add name="XmlSerialization.Compilation" value="1" />
    </switches>
  </system.diagnostics>

  <system.xml.serialization>
    <xmlSerializer tempFilesLocation="c:\foo"/>
  </system.xml.serialization>
  <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
Chris Taylor
I am using .net 4.0
chobo2
I checked with reflector and the code to read the tempFilesLocation is there, so it shoud work. I will check tomorow when I am at my dev machine to confirm it works. But keep in mind this is undocumented functionality so even if it works today it might not and need not work tomorrow.
Chris Taylor
Yes, most likely, that behavior is just a glitch/omission in the XML schema that Visual Studio uses to parse the web.config - wouldn't be the first one!
marc_s