Я пытаюсь использовать svcutil, чтобы сгенерировать код управляемого С++ от XSD. Командная строка, которую я использую,
Классы "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\xsd.exe" MyTest.xsd / / язык: "Microsoft. VisualC.CppCodeProvider7, CppCodeProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/namespace:MyTestApp
Однако я получаю сообщение об ошибке следующим образом
Ошибка: Значение 'Microsoft visualc.cppcodeprovider7, cppcodeprovider, version=10.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a' для переключателя / язык недопустимо. Нет никакого codedom поставщика, определенного для языка.
Я знаю, что мне установили CppCodeProvider как часть установки Visual Studio. Я также попробовал/language:cpp напрасно. Я смог сгенерировать код в C# без любой проблемы для того же XSD.
Кто-либо знает то, что я делаю неправильно?
Это четко указано в статье MSDN Library для svcutil.exe:
/language:
Значения: c#, cs, csharp, vb, visualbasic, c++, cpp
По умолчанию: csharp
Краткая форма: /l
Примечание: переключатель поддерживает только C++ для поставщика кода, поставляемого с Visual Studio 2005 SP1.
Думаю, тогда он поставлялся с .NET 2.0 SDK. В остальном это не проблема, язык с тех пор не изменился. Почему бы не использовать csharp? Возможность безболезненно смешивать языки в .NET - одно из его великих достоинств.