3

Why isn't Visual Studio 2005 generating a serialization setting when I set the project setting "Generate Serialization Assembly" to "On"?

Chris
  • 6,761
  • 6
  • 52
  • 67
Adam Tegen
  • 25,378
  • 33
  • 125
  • 153

2 Answers2

9

It turns out that Dev Studio only honors this setting for Web Services.

For non-web services you can get this to work by adding an AfterBuild target to your project file:

  <Target Name="AfterBuild" DependsOnTargets="AssignTargetPaths;Compile;ResolveKeySource" Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)"  Outputs="$(OutputPath)$(_SGenDllName)">         
      <SGen BuildAssemblyName="$(TargetFileName)" BuildAssemblyPath="$(OutputPath)"  References="@(ReferencePath)" ShouldGenerateSerializer="true" UseProxyTypes="false" KeyContainer="$(KeyContainerName)" KeyFile="$(KeyOriginatorFile)" DelaySign="$(DelaySign)" ToolPath="$(SGenToolPath)">
          <Output TaskParameter="SerializationAssembly" ItemName="SerializationAssembly" />
      </SGen>
  </Target>

See also:

Adam Tegen
  • 25,378
  • 33
  • 125
  • 153
  • 1
    +1 for this help, Adam! As a follow up question, is adding the SGen task to a project considered a best or worst practice? I'm hoping that it speeds up the performance of my app. – flipdoubt Oct 15 '08 at 15:31
1

It can be done manually with sgen.exe.

Adam Tegen
  • 25,378
  • 33
  • 125
  • 153