我有一个vs2017项目,只有SLN文件,没有SUO文件。当我打开解决方案并转到属性时,将其设置为当前选定的启动项目。除非我手动将其设置为我的某个项目,否则当我执行Update-Database时,其他数据迁移项目不会获取连接字符串。我尝试在SLN文件中重新排序项目,但这并没有影响它。在更改设置中的默认项目后虽然它实际上没有更新任何源控制文件,但我没有看到SUO文件。有关如何修改解决方案文件以将默认启动项目设置为单个特定项目的任何建议吗?
答案 0 :(得分:3)
启动项目被故意保存到.suo文件中,该文件是解决方案的用户特定设置。 .suo文件已移至.vs\SolutionName\v15\.suo
,而不是紧挨着.sln文件。
这是为了避免诸如Bill,一个只关心API项目的假想的后端开发人员,以及Fred,一个只关心网站项目的前端工程师,不会发生冲突的情况。彼此的设置。
也就是说,Update-Database
cmdlet应该使用任何必要的参数来完成任务。在这种情况下,它是-StartupProjectName
参数。请注意,其他cmdlet可能使用不同的参数名称。
PM> get-help update-database
NAME
Update-Database
SYNOPSIS
Applies any pending migrations to the database.
SYNTAX
Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>]
[-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [-AppDomainBaseDirectory <String>] [<CommonParameters>]
Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>]
[-ConfigurationTypeName <String>] -ConnectionString <String> -ConnectionProviderName <String> [-AppDomainBaseDirectory <String>] [<CommonParameters>]
答案 1 :(得分:2)
我认为我也有同样的问题,vs2017不记得我设置为默认的默认项目。 他总是将其他项目设为默认项目。
我发现他设置为默认的项目位于解决方案文件的第一个位置。
所以我最终通过将我最喜欢的项目的位置移动到该文件的第一个位置(.sln)。所以我最喜欢的项目仍然是默认项目。
我很乐意对这种奇怪的情况有一个正常的解决方案。