Changing where XmlSerializer Outputs Temporary Ass

2020-02-06 01:29发布

问题:

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?

回答1:

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>