当我用鼠标右键单击我的解决方案资源管理解决方案,并选择属性,我得到一个对话框,在这里我可以选择启动项目。
我有时会选择当前的选择(如果它是有很多我之间跳跃项目的实验溶液),但大多数情况下是选择了一个启动项目,这通常会是主要的WinForms应用程序或或控制台应用程序。
我的问题是,每当我做了treeclean用TFPT命令(团队基础电动工具2008)此设置遗忘。 所以,当我尝试下一次运行我的解决方案,它默认了一些随机的项目,我得到一个错误,说明我不能跑一个类库或类似的东西。 这是显而易见的,当然。 但是,在保存该设置吗? 为什么当我做treeclean它忘记了吗? 该解决方案的文件仍然存在,对不对? 尚未存储解决方案的属性?
参考1
阿里安库普说:
我与试图找出为什么我的一个特定的解决方案并没有首发右挣扎。 这是在VB中有四个项目。 在最初打开它会设置一个DLL输出作为启动某个项目。 如果我设置的EXE为启动项目,这是罚款,但是当我发布的代码,我总是通过删除名为.suo * *和文件。用户和斌/ OBJ文件夹的清洁。 在打开的“干净”的版本,它会随时恢复到DLL项目,并不能很好地F5。 此修复程序竟然是简单的,但我很好奇,为什么我需要做的。
在解决方案文件,也有伪XML“项目”条目列表。 事实证明,无论是第一个为启动项目结束了,除非它在锁文件的覆盖。 哎呀。 我只是重新安排文件中的顺序,这是很好的。
我猜测,C#是相同的方式,但我没有测试它。 我希望这可以帮助别人!
参考2
设置启动项目
哪个项目是“启动”项目只具有任何用于调试的相关性,这意味着它从溶液中和项目点用户的元数据。 无论哪个项目是“启动”项目,编译后的代码是一样的。
正因为如此,所述信息被存储为在伴随解文件(solution.sln)的解决方案用户选项文件(solution.suo)的用户设置。 该文件名为.suo“记录了所有的,你可能会与你的解决方案,这样每次打开它时,它包含您所做的自定义关联的选项”,根据MSDN 。
该文件名为.suo是一个二进制文件。 如果你想读或编程改变它,你必须使用IVsPersistSolutionOpts.LoadUserOptions从Microsoft.VisualStudio.Shell.Interop命名空间。
我怀疑这个设置保存为每当编辑解决方案文件创建的文件名为.suo的一部分。 此文件包含各种用户设置,如断点,观察数据等。
我无法证实这一点,但,这将是我的猜测。
遗憾的是它不支持XML的二进制文件,而不是轻松编辑。
我只写了一个名为slnStartupProject解决这个窗口一点点命令行实用程序。 它会自动将启动项目是这样的:
slnStartupProject slnFilename projectName
我个人用它产生与解决方案后,设置项目的cmake总是设置一个虚拟ALL_BUILD项目作为解决方案的第一个项目。
该人士是在GitHub上:
https://github.com/michaKFromParis/slnStartupProject
福克斯和反馈是受欢迎的。
希望这可以帮助!