【问题标题】:dotnet core 5.0 version not generating fakes and throwing assembly.cs not founddotnet core 5.0 版本不生成假货并抛出 assembly.cs 未找到
【发布时间】:2022-01-24 22:10:39
【问题描述】:

当我们尝试使用配置为 dotnet core 5.0 版本生成假货时

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="Renci.SshNet"/>
</Fakes>

我们收到以下错误

obj\Debug\net5.0-windows10.0.19041.0\Fakes\rsn\o\net5.0-windows10.0.19041.0\f.AssemblyInfo.cs' could not be found. [projectlocation\obj\Debug\net5.0-windows10.0.19041.0\Fakes\rsn\f.csproj]

你能建议我们缺少什么吗?

【问题讨论】:

  • 信息不足。您使用什么确切的 Visual Studio 版本?您是从不同版本的 .NET 或 Visual Studio 迁移,还是从头开始添加 Fakes?您究竟何时收到此错误(您执行什么操作)?

标签: .net-core mstest microsoft-fakes


【解决方案1】:

解决方案一:

AssemblyInfo.cs 很有用,但不是必需的。

在 .NetCore 中,您可以从 csproj 文件而不是 AssemblyInfo 管理程序集信息。该文件将在 obj 文件夹中为您自动生成。您需要做的就是在 csproj 文件中设置它们:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <AssemblyName>myAppName</AssemblyName>
  </PropertyGroup>
</Project>

如果您的项目中存在带有任何属性集的 AssemblyInfo,编译器将抱怨属性重复。在这种情况下,您应该将 GenerateAssemblyInfo 设置为 false(这样它就不会在 obj 文件夹中自动生成 x.AssemblyInfo.cs):

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <AssemblyName>myAppName</AssemblyName>
  </PropertyGroup>
</Project>

您可以选择手动处理程序集信息,但将自动生成属性设置为false(例如GenerateAssemblyInfoGenerateAssemblyTitleAttribute等),这意味着您可以在both中设置程序集信息AssemblyInfo 和 csproj。当您想在不同项目之间共享一组通用信息,同时能够更改每个项目中的一些信息时,这会派上用场。 (虽然你不能设置一个属性两次,但这仍然是一个有用的功能)。

解决方案 2:

  1. 右键单击项目(不是解决方案)
  2. 卸载项目
  3. 重新加载项目
  4. 重建解决方案

解决方案 3:

要创建一个新的程序集文件:

  1. 右键单击项目属性(不是解决方案)。
  2. 选择应用程序选项卡。
  3. 单击程序集信息按钮。字段可能全部为空。
  4. 添加内容。
  5. 单击“确定”并退出属性。
  6. 重建。

【讨论】:

    猜你喜欢
    • 2021-12-01
    • 2014-06-16
    • 1970-01-01
    • 2022-01-24
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    相关资源
    最近更新 更多