我需要伪造SHA1Cng.ComputeHash()
(以及System.Security.Cryptography
各个类中的许多其他函数)。
我创建了测试项目,引用了其中的主项目,为其生成了伪造品,还为System
生成了伪造品,这给了我mscorlib.fakes
(Cryptograhy在哪里)。我添加了以下几行:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
<Assembly Name="mscorlib" Version="4.0.0.0"/>
<StubGeneration>
<Remove FullName="System.Runtime.CompilerServices.ITuple"/>
</StubGeneration>
<ShimGeneration>
<Add FullName="System.Security.Cryptography"/>
</ShimGeneration>
</Fakes>
由于某些原因,我得到很多错误:
'CryptoStream'不包含带有4个参数的构造函数(.. \ Debug \ Fakes \ m \ f.csproj)
'Rfc2898DeriveBytes'不包含带有4个参数的构造函数(.. \ Debug \ Fakes \ m \ f.csproj)
...
答案 0 :(得分:0)
我能够撤消Fakes文件,只包含我们需要的文件。类似于以下内容:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="mscorlib" Version="4.0.0.0"/>
<StubGeneration>
<Clear/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Add FullName="System.IO.FileSystemInfo"/>
<Add FullName="System.IO.Path"/>
<Add FullName="System.DateTime!" />
</ShimGeneration>
</Fakes>
不幸的是,这是反复试验的结果。我们将尽快放弃MS Fakes。似乎微软已经放弃了它。