指定在项目目录中使用哪个项目文件

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 工具相同。指定两者都不起作用。

以上是关于指定在项目目录中使用哪个项目文件的主要内容,如果未能解决你的问题,请参考以下文章

unity项目素材在哪个文件夹

vs2019 指定项目输出目录和指定中间目录

如何使用xampp安装php程序

在Spring的项目中配置Log4j存放日志文件到指定目录下

jsp文件放在tomcat的哪个目录下

Android 查看项目的依赖信息以及某个版本的组件是哪个依赖库里的正确姿势