【问题标题】:A project with an Output Type of Class Library cannot be started directly输出类型为类库的项目无法直接启动
【发布时间】:2020-12-28 04:48:04
【问题描述】:

请有人可以解释我为什么会收到此错误以及如何解决它(或我做错了什么!)。我采取的步骤是

  1. http://www.codeproject.com/Articles/16859/AForge-NET-open-source-framework下载源代码
  2. 在 VS2010 中打开显示找不到引用

  3. 重新添加来自PlayingCardRecognition\bin\Release 的所有 3 个引用,因此不再有警告

  4. 当我尝试构建或运行时,我收到以下消息

【问题讨论】:

标签: c#


【解决方案1】:

要解决此问题,请执行以下步骤:

  1. 在 Visual Studio 的解决方案资源管理器中右键单击项目名称
  2. 从菜单中选择Set as StartUp Project
  3. 重新运行您的项目 它应该可以工作!

如果它不起作用,请确保您已设置起始页。如果您的项目是 C# Windows 应用程序或 C# 控制台应用程序,请尝试以下操作:

  1. 在 Visual Studio 的解决方案资源管理器中右键单击项目名称
  2. 选择Properties
  3. 选择应用程序选项卡
  4. Output Type 投递箱中
  5. 为您的项目选择正确的应用类型
  6. 重新运行您的项目,如果它不起作用,请告诉我。

【讨论】:

  • 宾果游戏!马克的回答对我有用。这也比得到绿色复选标记的答案容易得多。
  • 赞成。就我而言,我有一个带有单元测试的项目,而 VS 社区正试图启动它而不是项目。我右键单击上面的项目,然后选择设置启动项目,然后单击“Single Startup Project”并将下拉列表更改为项目名称(不是.Tests。)然后我单击确定,一切正常。
  • 在我的情况下,我有一个额外的挂断可能会帮助某人:我引用了另一个注册 COM DLL 的项目,我还必须(除了 Sam 的 cmets)更改 StartUp 的平台目标要匹配的项目,即 x64 或 x86(由于 UnmanagedExports 包,不能使用任何 CPU)。
  • 嗯,我没有“应用程序”选项卡 - 我正在尝试使用 Visual Studio 2017 专业版调试 Unity 2018.3.3 中构建的 Unity 3D 项目。
【解决方案2】:

在该解决方案中设置为启动项目的项目类型是 ClassLibrary 类型。因此,输出是 dll 而不是可执行文件,因此您无法启动它。

如果这是一个错误,那么你可以这样做:

如果这是解决方案中唯一的 csproj,则快速而肮脏的解决方法是在文本编辑器中打开 .csproj 文件并将节点 <ProjectGuid> 的值更改为对应于 WinForms C# 项目的 Guid . (您可以通过 google 搜索或通过创建新项目并打开 Visual Studio 生成的 .csproj 文件来了解该类型的 GUID 是什么)。 (享受 - 没有多少人知道这个鬼把戏

但是:该项目可能是一个正确的类库,然后您应该在另一个项目中引用它并以这种方式使用它。

【讨论】:

  • 这是否会导致Main 能够在dll 项目中作为启动对象运行?
【解决方案3】:

.Exe.dll 都是程序集。关键区别在于可执行文件定义了一个入口点Main,它可以由运行时调用。错误

“类库不能直接启动”

是因为说.dll 没有Main。要解决此问题,请将项目类型更改为 Windows 应用程序/控制台应用程序并定义一个入口点。或者,添加一个类型为 Windows 应用程序/控制台应用程序的新项目并引用 .dll

【讨论】:

    【解决方案4】:

    该项目是一个类库。没有可执行项目就无法运行或调试(F5 不起作用!!!)。您只能构建项目 (Ctrl+Shift+B)。

    如果您要调试代码,请将控制台应用程序项目(将其设置为启动项目)添加到解决方案并添加对库的引用。

    【讨论】:

      【解决方案5】:

      您下载的项目是一个类库。无法启动。

      添加一个可以启动的新项目(控制台应用程序、win 表单、任何您想要的)并添加对类库项目的引用以便能够“玩它”。

      并将这个新项目设置为“启动项目”

      【讨论】:

        【解决方案6】:

        您下载的项目是一个类库,而不是一个可执行程序集。这意味着您需要将该库导入到您自己的项目中,而不是尝试直接运行它。

        【讨论】:

        • 如何导入库?
        • 我想通了按 CTRL + F5。当编译成功时,它会在 /bin/Debug 文件夹中放置一个 dll。将此 dll 复制并粘贴到另一个项目中。右键单击项目并选择“添加引用”浏览到新的 dll。
        【解决方案7】:

        您的项目类型是一个可能会被怀疑的类库,添加一个ConsoleApplicationWindowsApplication 并将其用作您的启动对象。引用这个项目,然后访问代码。

        【讨论】:

          【解决方案8】:

          如果您将 WPF 应用程序转换为类库以获取项目 .dll 文件。然后将同一项目转换为 WPF 应用程序,您将收到以下错误。

          错误:“.exe 不包含适合入口点的静态 main 方法”。

          问题排查步骤: 1.在相应项目中包含 App.xaml 文件。 2.右键单击App.xaml文件将构建操作更改为应用程序定义 3.现在构建你的项目

          【讨论】:

            【解决方案9】:

            转到解决方案属性 -> 在构建右侧,您会看到启动项目类型。这里需要选择控制台应用/windows应用。

            【讨论】:

              【解决方案10】:

              如果您遇到此问题(在 Visual Studio 2017 RC 中遇到),并且从第 3 步开始的“4 在输出类型下拉框...”中没有收到 Mak 帖子列出的任何内容,这是因为您在创建跨平台应用程序时制作了一个类库应用程序,所以这里是解决方案:

              1 开始一个新项目

              2 选择 V​​isual C# 和跨平台应用程序。

              3 选择跨平台应用(Xamarin 和原生应用)

              4 选择空白表格。

              从那时起,右键单击,选择作为启动项目并按照 Mak 所说的构建,它应该可以工作。

              如果你有能力从头开始,它可以像我一样做到这一点。

              这也可以解决主要问题,但必须适应您当前的 Visual Studio 版本(例如 Visual Studio 2015 的“Xamarin.forms 便携版”)。

              再见!

              【讨论】:

                【解决方案11】:

                将您的 api 项目设置为启动项目: 右键单击 api 项目,然后选择设置为启动项目。

                【讨论】:

                  【解决方案12】:

                  VS -> 调试 -> 附加统一调试器 -> 双击项目

                  【讨论】:

                    【解决方案13】:

                    只需右键单击项目解决方案就会弹出一个窗口。展开公共属性。选择启动项目

                    在右侧选择带有单一启动项目的单选按钮在那里选择您的项目并应用。

                    就是这样。现在保存并构建您的项目。运行项目以查看输出。

                    _Sarath@F1

                    【讨论】:

                      【解决方案14】:

                      要解决此问题,请执行以下步骤:

                      在 Visual Studio 的解决方案资源管理器中右键单击项目名称 从菜单中选择设置为启动项目 重新运行您的项目,它应该可以工作了!

                      【讨论】:

                      • 这是 Mak 4 年前答案的精确副本,格式较差,重复它有什么意义?
                      猜你喜欢
                      • 2011-03-22
                      • 2010-10-19
                      • 2016-07-03
                      • 2012-06-24
                      • 1970-01-01
                      • 2012-08-31
                      • 2022-01-27
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多