我下载了一个c#项目,我想调试这个项目,看看算法实现是如何工作的。

该项目已经在一个文件夹,在这个文件夹内有-

.sln文件和 一个包含源文件和.csproj文件的文件夹。

我安装了Visual Studio并打开了主文件夹中的.sln文件。我成功地构建了项目,但是当我尝试调试项目时,我得到了这样的消息:

输出类型为Class Library的项目不能直接启动。为了调试此项目,请向此解决方案中添加一个引用库项目的可执行项目。将可执行项目设置为启动项目。

奇怪的是,我在任何地方都没有看到主函数。

我该怎么做才能解决这个问题呢?


当前回答

如果您的解决方案有一个编译为exe的项目,则接受答案有效。如果您的解决方案没有任何编译到exe的项目,那么您必须使用“启动外部程序”。

VS2019指令:

右键单击主解决方案上的>属性 调试、启动外部程序和添加命令行参数

VS2022指令:

右键单击主解决方案上的>属性 向下滚动到调试 调试>通用>打开调试启动配置文件UI 左键点击左上角的“new”图标,选择“executable” 根据VS2019填写(选择exe并添加命令行参数) 当单击start按钮时,首先选择您创建的概要文件

其他回答

奇怪的是,我在任何地方都没有看到主函数。

这正是你的问题所在。该项目仅仅创建了一个DLL。它没有可执行文件要运行。

您将需要添加第二个项目,这是一个引用其他项目的可执行文件,并调用其中的某些内容。

我在尝试使用Visual Studio 2013的实验实例时遇到了类似的问题。这是一个vsix项目(创建片段)。

解决方案是:

在解决方案资源管理器>属性>调试中右键单击“项目”

设置“启动动作”为“启动外部程序”,路径如下:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe

此选项被设置为“启动项目”,这将不适用于应用程序输出类型类库,从而导致相同的错误。

注意:根据你安装VS的方式不同,你的可能会有所不同。

如果您的解决方案有一个编译为exe的项目,则接受答案有效。如果您的解决方案没有任何编译到exe的项目,那么您必须使用“启动外部程序”。

VS2019指令:

右键单击主解决方案上的>属性 调试、启动外部程序和添加命令行参数

VS2022指令:

右键单击主解决方案上的>属性 向下滚动到调试 调试>通用>打开调试启动配置文件UI 左键点击左上角的“new”图标,选择“executable” 根据VS2019填写(选择exe并添加命令行参数) 当单击start按钮时,首先选择您创建的概要文件

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

在那里,在右手边选择单选按钮与单一启动项目 在那里选择你的项目并应用。

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

只需要去:

解决方案资源管理器—>进入属性—>更改(单一启动项目)从.dll到.web

然后尝试调试它。

你的问题一定会解决的。