visualstudio取消设置为启动项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visualstudio取消设置为启动项目相关的知识,希望对你有一定的参考价值。

参考技术A 我有一个包含大量项目的解决方案。"启动"项目是一个ASP.NET MVC Web应用程序。

我将其设置为启动项目(通过在解决方案资源管理器中右键单击它,然后选择"设置为启动项目"。项目标题变为粗体,一段时间后一切正常。

然后,我将编辑一个支持项目,然后单击"开始调试"按钮,然后单击"该类型的项目无法启动"消息。

然后,我检查了,该Web项目不再设置为启动项目。 等等....

有人知道为什么会这样吗?

如果解决方案中的项目没有唯一的ID,则会发生这种情况。
每个项目文件都有一个这样的条目:

1
ProjectGuid ="36910E05-3D05-4AC0-B90C-94F8F776CE5F"
如果您通过文件复制启动来创建支持项目
项目中,它们仍然具有相同的ID。 最简单的检查方法
这是使用文本编辑器打开解决方案文件。 你会知道的
您有问题,如果您看到两个名称不同的项目,
但相同的ID:

1
2
3
4
5
6
7
8
9
Microsoft Visual Studio Solution File, Format Version 8.00
Project("FAE04EC0-301F-11D3-BF4B-00C04F79EFBC") ="Project1","Project1.csproj","BAC18E5A-710F-4E5A-8DE3-822CE1AA5D38"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("FAE04EC0-301F-11D3-BF4B-00C04F79EFBC") ="Project2","Project2.csproj","BAC18E5A-710F-4E5A-8DE3-822CE1AA5D38"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
此问题的另一个症状是,您无法定义
项目之间的依赖关系(即Visual Studio不断"忘记"
他们)。

要解决此问题,只需将您的项目文件编辑为具有唯一ID
并相应地调整您的解决方案文件。

相关讨论
我的文件看起来有些不同(它说File Forrmat v10不是8)。每个项目都按如下所示列出:Project(" FAE04EC0-301F-11D3-BF4B-00C04F79EFBC")=" PROJECTNAME"," PATHTO.csproj"," ED22D573-32FA-4983-ABB0-7E67B82C1557"每个项目的GUID都是相同的,而第二个项目的GUID是唯一的。他们俩都应该独特吗?
不,第二个数字是ProjectGuid。解决方案中的所有项目必须具有不同的ProjectGuid。
尝试关闭您的解决方案,删除解决方案的根目录中的YourSolution.suo文件,然后再次打开它。

如何设置 Visual Studio 以调试 DLL(“无法启动程序错误”)

【中文标题】如何设置 Visual Studio 以调试 DLL(“无法启动程序错误”)【英文标题】:How to set up Visual Studio to debug a DLL ("Unable to start program error") 【发布时间】:2017-02-10 16:50:17 【问题描述】:

基本上,我有一个构建 DLL(VST 音频插件)的 Visual Studio 项目。在过去为我设置了这种类型的项目场景的地方,我将能够构建、运行和调试插件。 Visual Studio 会自动启动我用来托管插件的任何程序。我正在尝试在我当前的项目中实现相同的效果,但我不知道如何设置它。目前,当我在 Visual Studio 中构建和运行我的 DLL 时,我收到错误“无法启动程序”。 DLL 仍在构建,我仍然可以运行它,但我无法从 Visual Studio 调试它,因为我不知道我需要在我的项目设置中做什么才能实现这一点。我该怎么做?

更多信息:

我所知道的是,在成功运行的项目中,在标记为“预构建事件”和“构建后事件”的字段下对 Visual Studio 项目设置进行了一些修改,所以大概是我想要的要做的是以某种方式编辑这些以告诉 Visual Studio 以下内容:“嘿,在您尝试运行和调试此 DLL 之前,您必须启动另一个程序(我的程序称为 Max.exe),然后您必须等待直到那个程序加载了DLL。然后你就可以调试了!不要做笨电脑,在Max.exe加载之前尝试调试它......”

我不知道的:其他的。这实际上是我所知道的关于我正在尝试做的事情的全部内容,以及用英语与计算机交谈的丰富多彩的尝试。

目前,当我在 Visual Studio 中构建和运行我的 DLL 时,我收到错误“无法启动程序”。这并不奇怪,因为该项目对我想用来测试 DLL 的环境一无所知,但问题是我不知道 Visual Studio 需要知道什么。我真的对编程知之甚少,无法理解我正在尝试做的事情的含义。是的,我确实提到了那些标记为 pre-build 和 post-build 的字段,因为我记得它们很重要,但我不知道在这些字段中具体写什么或如何写,也不知道是否会有更多的东西在此之前我需要告诉 Visual Studio。

Q.E.D 我实际上并不确定构建前和构建后事件是什么,或者它们是如何工作的。而且我几乎不知道关于自定义 VS 项目设置的第一件事。我所知道的是如何编写音频处理代码。我觉得需要这个免责声明,因为我的问题通常会遇到愤怒的程序员,他们认为我不做自己的研究;他们没有意识到我是一名跳过编程 101 的音频工程师。是的,我确信如何调试 dll 是一个常见问题,但这些问题的答案往往假设我没有先决条件知识。

【问题讨论】:

转到配置属性 -> 调试并将“命令”更改为将加载您的 DLL 的可执行文件。 您也可以附加到现有进程调试 -> 附加到进程 【参考方案1】:

您需要在项目的调试属性中编辑命令字段。在解决方案资源管理器中右键单击您的项目,然后单击属性(通常是最后一项)。打开配置属性下的调试页面。 Command 字段指示调试时要启动的可执行文件。

默认情况下,它包含 $(TargetPath) ,它指的是您的项目编译的最终二进制文件。这对 DLL 没有用,因为 DLL 不可执行。将其更改为您正在为其编写插件的任何第三方应用程序的路径。

通过此更改,使用调试启动实际上将启动第三方应用程序并将调试器附加到它。一旦应用程序加载了你的插件,你就可以正常调试了。

【讨论】:

【参考方案2】:

对于 Visual Studio,

    Solution Explorer中,右键单击项目并选择Properties。 在Properties 中,选择Configuration Properties -> Debugging。 对于Command,输入将加载您的DLL 的可执行文件的完整路径。相应地填写Command ArgumentsWorking Directory

此外,您需要确保可执行文件实际加载您正在构建的 DLL。很多人犯的一个错误是启动他们的可执行文件,而没有意识到可执行文件正在加载他们试图调试的另一个版本的 DLL。这可能是由于 Windows 使用 DLL 搜索逻辑(exe 目录、路径等)搜索它找到的第一个 DLL。

【讨论】:

以上是关于visualstudio取消设置为启动项目的主要内容,如果未能解决你的问题,请参考以下文章

为Visual Studio项目生成clang编译数据库

Visual Studio 8 中程序集引用的 Aliases 属性有啥用

Visual Studio 2022 未加载依赖项

为啥我的resharper控件安装之后没有显示

VS2010中将当前选定项目做为启动项

怎么取消开机启动?我已经在设定里取消开机启动了但还是会自己启动