Visual Studio 2022 - 添加 System.Runtime 假程序集

Bra*_*ing 6 unit-testing

简单测试项目:xUnit,针对Net 6.0 环境:

  • Windows 10 21h1,19043.1348
  • Visual Studio 2022 Enterprise 17.0.0(通过 Visual Studio 安装程序安装 Net 6 和 Net 5 sdk)

添加System.Runtime的假程序集,编译错误:

1>------ Rebuild All started: Project: TestProject1, Configuration: Debug Any CPU ------
Restored D:\TestProject1\TestProject1\TestProject1.csproj (in 570 ms).
1>D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.cs(94904,16): error CS1503: Argument 1: cannot convert from 'string' to 'System.Runtime.Serialization.SerializationInfo' [D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.csproj]
1>D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.cs(94904,31): error CS1615: Argument 2 may not be passed with the 'ref' keyword [D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.csproj]
1>GENERATEFAKES : error : project compilation failed with exit code 1
1>D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.cs(94904,16): error CS1503: Argument 1: cannot convert from 'string' to 'System.Runtime.Serialization.SerializationInfo' [D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.csproj]
1>D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.cs(94904,31): error CS1615: Argument 2 may not be passed with the 'ref' keyword [D:\TestProject1\TestProject1\obj\Debug\net6.0\Fakes\sr\f.csproj]
1>GENERATEFAKES : error : project compilation failed with exit code 1
1>Done building project "TestProject1.csproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)

将目标更改为 Net 5.0(删除目录 Fake 和 FakesAssemblies 后),添加 System.Runtime 假程序集,一切正常。

任何想法 ?

小智 9

我有同样的问题。
\n我想使用System.Fakes.ShimDateTime。\n它是通过以下伪造文件解决的:

\n
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">\n    <Assembly Name="System.Runtime" Version="6.0.0.0" />\n    <StubGeneration>\n        <Clear />\n        <Add FullName="System.DateTime!" />\n    </StubGeneration>\n    <ShimGeneration>\n        <Clear />\n        <Add FullName="System.DateTime!" />\n    </ShimGeneration>\n</Fakes>\n
Run Code Online (Sandbox Code Playgroud)\n

最后,感谢以下答案:
\n /sf/ask/960373221/ assembly-of-microsoft-practices-enterpriselibrary-logging-on-vs2Reference\xef\xbc\x9a

\n