我正在尝试使用XSD.EXE工具从XSD生成一些类文件。是否从结果文件中获得了任何东西是另一个问题,但我希望看到生成的内容。我找到了reference,注意到:
哪,感谢卢克对F# Visual Studio团队,意味着我可以做到 这样:
xsd.exe fpml-asset-4-z.xsd /classes /l:”Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider, FSharp.Compiler.CodeDom, Version=1.9.9.9, Culture=neutral, PublicKeyToken=a19089b1c74d0809″
哪个很精彩。我没有相同版本的代码dom - 所以看看GAC我将行改为:
xsd.exe RIXML-datatypes-2_3_1.xsd /classes /l:"Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider, FSharp.Compiler.CodeDom, Version=2.0.0,0, Culture=neutral, PublicKeyToken=a19089b1c74d0809"
哪个收益率:
C:\ Users \用户桌面\ CSharpSamples \ ResearchUploader \ Fc的RixmlLib> XSD.EXE RIXML-datatypes-2_3_1.xsd / classes /l:"Microsoft.FSharp.Compiler.CodeDom.FSharpCodePr ovider,FSharp.Compiler.CodeDom, 版本= 2.0.0,0,文化=中立, 公钥= a19089b1c74d0809" Microsoft(R)Xml架构/数据类型 支持实用程序[Microsoft(R).NET 框架,版本4.0.30319.1] 版权所有(C)Microsoft Corporation。 版权所有。错误:给定的 程序集名称或代码库无效。 (来自HRESULT的异常:0x80131047)
如果您需要更多帮助,请 输入“xsd /?".
思想?
答案 0 :(得分:3)
我有同样的问题“来自HRESULT的异常:0x80131047” - 没有设法解决它,但有一个丑陋的解决方法:
花了一个小时试图让xsd.exe工作,我只用了5分钟就这样暴力了......
这可以很容易地制作成xsdfs.exe或其他东西,以节省人们使xsd.exe使用f#代码dom的麻烦:)
答案 1 :(得分:1)
这对我来说是正确的。你能仔细检查一下GAC中是否安装了组件吗? 这是一个可以输入“Visual Studio命令提示符”的命令:
> gacutil -l | find "FSharp.Compiler.CodeDom"
我得到了:
FSharp.Compiler.CodeDom, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=a19089b1c74d0809, processorArchitecture=MSIL
答案 2 :(得分:0)
取消Microsoft
部分,安装到GAC后,它应该可以正常工作。他们不久前改名了。
我可以在安装(反汇编和汇编 - ildasm,gacutil fun)之后使用xsd.exe
和编辑器中的C#方法(重写为F#)。谢谢:))