sgen
, похоже, по умолчанию принимает версию сборки исходного кода, это вполне разумно.
Вот как я запускаю, ничего особенного:
"... PathToSDK ... \ Microsoft Visual Studio
SDK \ sgen.exe "/ force
/ сборки: "$ (TargetPath)"
/ Составитель: "\" / файл_ключа: $ (ProjectDir) .. \ key.snk "\"
/ Составитель: / delaysign-
/ force - перезаписать существующие сборки сериализатора
/ assembly - путь к сборке, я запускаю его в событии после сборки в настройках проекта VS, поэтому я использую переменную $(TargetPath)
/ compiler: ... - опции csc, я использую их для подписи сборок сериализатора ключом