指定在项目目录中使用哪个项目文件
Posted
技术标签:
【中文标题】指定在项目目录中使用哪个项目文件【英文标题】:Specify which project file to use when inside project directory 【发布时间】:2018-08-26 19:52:42 【问题描述】:尝试在包管理器控制台中使用“dotnet ef”命令。 PMC 是 cd 到 .csproj 目录,仍然得到:
dotnet : Specify which project file to use because this 'C:\Users\PC-NAME\Source\Repos\TestProject\Test" contains more than one project file.
At line:1 char:1
dotnet ef migrations add TestMigration
+ CategoryInfo : NotSpecified: (Specify which p...e project file.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
尝试使用 -p / --p 并指向 .csproj 文件/目录 - 仍然是同样的错误。
使用 .NET CORE、MVC 项目、最新的 EF Core 2.0.2 版本。
没有那么多有价值的数据 在互联网上关于这个问题,只是一个疯狂的猜测 该 dotnet ef 命令正在寻找要运行的 .exe 文件。
希望得到帮助。
【问题讨论】:
为什么不直接使用EF Core PMC commands? 【参考方案1】:如果您的项目包含多个 .csproj 文件,您应该将它们移动到项目文件夹以外的另一个目录并再次运行您的命令行。
在我的情况下,我的项目文件夹中有两个 .csproj:CoreWebApplication.csproj 和 CoreWebApplication-backup.csproj,所以我移动了 CoreWebApplication-backup.csproj 并保留了 CoreWebApplication.csproj
dotnet ef ... -p CoreWebApplication.csproj -s CoreWebApplication.csproj
【讨论】:
【参考方案2】:您需要同时指定-p
和-s
:
dotnet ef ... -p ThisOne.csproj -s ThisOne.csproj
在哪里
-p --project <PROJECT> The project to use.
-s --startup-project <PROJECT> The startup project to use.
EF Core .NET Command-line Tools
【讨论】:
我提交了 issue #11330 以改善这种体验。 我正在尝试使用这种方法,但仍然提供-p
和-s
参数并不能解决问题。键入 dotnet ef -p BlazorApp1.csproj -s BlazorApp1.csproj
返回“指定要使用的项目文件...”错误。项目路径正确,我导航到项目文件夹
注意:如果您没有在 PATH 中安装 dotnet-ef
,即使您确实指定了一个项目,您似乎也会得到同样的错误文本和/或启动项目。
我得到同样的错误。我只是将 /home/yuri/.dotnet/tools/ 设置为我的 PATH。当我运行dotnet ef -p myProject.csproj -s myProject.csproj
时,它会返回给我Specify which project file to use because this '/home/yuri/Documents/csharp' contains more than one project file.
。我该如何解决这个问题?
与 5.0.0 工具相同。指定两者都不起作用。以上是关于指定在项目目录中使用哪个项目文件的主要内容,如果未能解决你的问题,请参考以下文章