см. msdn для опций sgen.exe [у вас есть командная строка, вы можете поиграть с ней вручную ... удалите .XmlSerializers.dll или используйте / force, хотя]]
Сегодня я также натолкнулся на то, как более вручную указать параметры sgen . Я хотел, чтобы это не использовало ключ / proxy, но, похоже, он позволяет вам указать выходной каталог. Я не знаю достаточно о msbuild, чтобы сделать его потрясающим, но это должно помочь вам начать [откройте ваш .csproj / .vbproj в своем невизуальном редакторе студии, посмотрите внизу, и вы сможете понять, как / где это идет]
[для кода ниже для вашего удобства для UseProxyTypes установлено значение true]
<Target Name="GenerateSerializationAssembliesForAllTypes"
DependsOnTargets="AssignTargetPaths;Compile;ResolveKeySource"
Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)"
Outputs="$(OutputPath)$(_SGenDllName)">
<SGen BuildAssemblyName="$(TargetFileName)"
BuildAssemblyPath="$(OutputPath)" References="@(ReferencePath)"
ShouldGenerateSerializer="true" UseProxyTypes="true"
KeyContainer="$(KeyContainerName)" KeyFile="$(KeyOriginatorFile)"
DelaySign="$(DelaySign)" ToolPath="$(SGenToolPath)">
<Output TaskParameter="SerializationAssembly"
ItemName="SerializationAssembly" />
</SGen>
</Target>
<!-- <Target Name="BeforeBuild">
</Target> -->
<Target Name="AfterBuild"
DependsOnTargets="GenerateSerializationAssembliesForAllTypes">
</Target>