XUnit 测试项目只有 1 个 Main 方法:“程序定义了多个入口点。”

2024-01-03

我在 Visual Studio 2017 RC 中将 vNext 格式的 .NET xUnit 测试项目(带有 project.json)转换为新的 .csproj 格式,并开始出现以下错误。大多数对此错误的在线答案都说“您有两个 Main 方法;摆脱其中一个”。这似乎是一个显而易见的解决方案,但该项目只有一个 Main 方法。

Error:

CS0017 程序定义了多个入口点。使用 /main 进行编译以指定包含入口点的类型。项目.名称 C:\path\to\Program.cs

程序.cs:

using XunitProgram = Xunit.Runner.DotNet.Program;

namespace My.Namespace.Tests
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            XunitProgram.Main(args);
        }
    }
}

旧的project.json:

{
  "version": "1.0.0-*",
  "testRunner": "xunit",
    "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true,
        "debugType": "full"
    },

    "dependencies": {
        "dotnet-test-xunit": "2.2.0",
        "xunit": "2.2.0",
        "Microsoft.DotNet.InternalAbstractions": "1.0.0"
    },
  "frameworks": {
    "net462": {}
  }
}

新项目.csproj:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net462</TargetFramework>
        <RuntimeIdentifier>win7-x86</RuntimeIdentifier>
        <DebugType>full</DebugType>
        <PreserveCompilationContext>true</PreserveCompilationContext>
        <AssemblyName>My.Project.Tests</AssemblyName>
        <OutputType>Exe</OutputType>
        <PackageId>My.Project.Tests</PackageId>
        <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
        <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
        <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
        <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
        <RootNamespace>My.Project.Tests</RootNamespace>
        <StartupObject />
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-preview-20170106-08" />
        <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
        <PackageReference Include="xunit" Version="2.2.0" />
    </ItemGroup>

    <ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
        <Reference Include="System" />
        <Reference Include="Microsoft.CSharp" />
    </ItemGroup>

    <ItemGroup>
        <Folder Include="SampleInput\" />
    </ItemGroup>

</Project>

这需要一些修补才能弄清楚。在迁移到 VS 2017 中的新项目格式后,微软悄悄添加了一个依赖项Microsoft.NET.Test.Sdk,我相信它有自己的 Main 方法。

如果您在 VS 2017 RC 中与已迁移的项目一起创建一个新的 xUnit 测试项目,您会注意到它不再创建带有调用 XUnit 运行程序的 Main 方法的 Program.cs。

要解决此问题,请删除唯一可见的 Main 方法。如果您有上述包引用,您的测试仍将正常执行(Microsoft.NET.Test.Sdk, xunit.runner.visualstudio, xunit).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XUnit 测试项目只有 1 个 Main 方法:“程序定义了多个入口点。” 的相关文章

  • 在 HKCR 中创建新密钥有效,但不起作用

    我有以下代码 它返回 成功 但使用两种不同的工具使用搜索字符串 3BDAAC43 E734 11D5 93AF 00105A990292 搜索注册表不会产生任何结果 RegistryKey RK Registry ClassesRoot C
  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 无法将字符串文字分配给装箱的 std::string 向量

    这是我的类型系统的简化版本 include
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 检查特定的exe文件是否正在运行

    我想知道如何检查特定位置的程序是否正在运行 例如 test exe 有两个位置 c loc1 test exe 和 c loc2 test exe 我只想知道 c loc1 test exe 是否正在运行 而不是 test exe 的所有实
  • 如何动态改变datagrid行的背景颜色?

    似乎有各种黑客可以改变数据网格行的背景颜色 但所有这些似乎都发生在渲染时 See 在 Adob e Flex 中设置数据网格行的背景颜色 https stackoverflow com questions 748213 setting ba
  • Sql:将行转变成列

    考虑下面的例子 我有一个Person包含人员记录和人物属性包含链接到人员的可选属性的表 表 人 ID Name 1 Joe Bloggs 2 Jane Doe 表人员属性 PersonId Key Value 1 Age 27 2 Hair
  • 是 C++ 语句“delete [] Q;”的 Big-O O(1) 还是 O(n)?

    标题是不言自明的 很简单的问题 我认为这是 O n 但想在明天的期末考试之前验证一下 简短的回答是 这取决于情况 If Q是一个指向具有析构函数的对象数组的指针 那么delete Q将需要调用所有这些析构函数 这将调用 O n 析构函数 其
  • X86 原子 RMW 指令是否空闲等待

    在 x86 上 原子 RMW 指令如lock add dword rdi 1在现代 CPU 上使用高速缓存锁定来实现 因此 高速缓存行在指令执行期间被锁定 这是通过在读取值时获取行 EXCLUSIVE MODIFIED 状态来完成的 并且
  • 如何对连续行进行分组?

    所以 我有一个包含如下行的表 Ev Message Ev Comment EV Custom1 Ev Time Ms Machine 1 Alarm 5 23 2016 11 02 00 AM Alarms Scanned 25 Machi
  • 对屏幕阅读器隐藏图标的适当方法是什么

    在我的网络应用程序中 我为自己制作了一种仅由图标组成的字体 我使用这些图标来补充应用程序中的标题和子标题 并使其在视觉上更具吸引力 然而 像 JAWS 这样的屏幕阅读器会读出这些内容 这会给屏幕阅读器的用户带来不愉快的体验 例如角色c显示云
  • 从 SimpleXMLElement 对象获取值

    我有这样的事情 url http ws geonames org findNearbyPostalCodes country pl placename url rawurlencode city i xml simplexml load f
  • “图表”和“渲染器”同时使用时,HighCharts 性能会急剧下降

    我试图对 HighCharts 的性能有一些感受 比较这两个代码 A 1000 个矩形Renderer object http jsfiddle net highcharts jxpSk 3 50ms B 1000 个矩形Renderer
  • 设置 Eclipse 插件的启动级别和自动启动:p2.inf 与产品定义

    我知道我可以使用 p2 inf 文件或产品定义文件在 Eclipse 中设置捆绑包的启动级别和自动启动标志 在产品文件中执行此操作可以为我提供工具支持 并将设置放入我的启动配置中 另一方面 使用 p2 inf 文件允许我根据每个功能管理启动
  • 如何在 SwiftUI 中没有 NavigationButton 的情况下导航到 NavigationView 中的另一个视图?

    正如问题所说 我想在没有 NavigationButton 的情况下导航到另一个视图 例如 UIkit 中的 pushView 和 popView 我认为这更像是一种限制的解决方法 但它对我有用 添加一个布尔状态变量 用于定义链接是否处于活
  • 使用 find 和 grep 删除文件列表

    我想删除名称包含特定单词的所有文件 例如 车 到目前为止 我想出了这个 find grep car 如何将输出传递给 rm find name car exec rm f 或将管道的输出传递给xargs find grep car xarg
  • 错误:无法访问 jarfile bfg.jar - BFG

    所以我在之前的提交中错误地提交了 Secrets yml 哎呀 我想清除它的 git 提交历史记录 看来最简单的禁食方法就是使用BFG 我已经下载了 jar 文件并安装了 Java 并且我已经创建了我的存储库的镜像 但是当我按照文档运行命令
  • 在分区表上同时创建索引

    我正在使用 postgresql 14 1 并且我使用某些表的分区重新创建了实时数据库 因为我这样做了 所以我可以在服务器不活动时创建索引 但是当它活动时我只能创建使用concurrently但不幸的是 当我尝试同时创建索引时 出现错误 运
  • perl 遍历目录

    我正在尝试获取指定路径中所有目录的名称 我尝试了以下操作 但这给了我每个级别 而不仅仅是在我指定的路径上 find dir names C mydata sub dir names print File Find dir n if f Fi
  • 我可以在 Scala 中定义“方法私有”字段吗?

    鉴于这种情况 object ResourceManager private var inited false def init config Config if inited throw new IllegalStateException
  • MySQL 将十六进制转换为双精度

    MySQL 中应采用哪种方法将十六进制 8 字节 转换为双精度值 为了从 HEX 转换为 INT 我使用 CONV hex value 16 10 但为了转换为双倍我不知道 CREATE FUNCTION HEX2DOUBLE hex in
  • 在 Objective-C 字符串格式中添加零

    快速问题 我试图在 NSString stringWithFormat 格式化字符串中用特定数量的零填充空白 例如 我想要 The number is d 5 I want this to output the number is 05 t
  • 将 HTML 或 RTF 格式的文本插入 Word 书签

    我尝试将格式化文本插入 Word 书签 文本来自多个富文本控件 我们使用 TX Text Control 并附加到书签中 问题在于标签是按原样编写的并且没有被解释 oWord New Word Application Dim strFile
  • XUnit 测试项目只有 1 个 Main 方法:“程序定义了多个入口点。”

    我在 Visual Studio 2017 RC 中将 vNext 格式的 NET xUnit 测试项目 带有 project json 转换为新的 csproj 格式 并开始出现以下错误 大多数对此错误的在线答案都说 您有两个 Main