dotnet exec 在添加 Entity Framework 核心 (1.1.0) 迁移时需要托管 .dll 或 .exe 扩展名
dotnet exec needs a managed .dll or .exe extension while adding Entity Framework Core (1.1.0) Migrations
错误信息:
PM> Add-Migration InitialDatabase
dotnet exec needs a managed .dll or .exe extension. The application specified was 'C:\Users\xxxxxx\documents\visual studio 2017\Projects\TheWorld\src\TheWorld\bin\Debug\netcoreapp1.0\TheWorld.runtimeconfig.json'
Process finished with non-zero exit code
PM>
Visual Studio 版本:2017 RC
项目依赖关系:
错误截图:
VS 和 dotnet 的工具仍处于预览阶段。在 TheWorld/src
文件夹中从命令行尝试 运行 dotnet ef migrations add InitialDatabase
。
我遇到了同样的问题。我唯一需要做的就是更改项目属性中的目标框架。
Changing the framework version
希望对您有所帮助。
在 VS2017RC 中——我所要做的就是使用包管理器控制台再次安装 .NetCore:
Install-Package Microsoft.NETCore.App
后来的迁移脚本起作用了,"dotnet exec needs a managed .dll or .exe extension." 错误消失了。
我的上下文正在部署到 AWS Lambda。
解决方法是将我的 lambda 使用的 EF 项目 (EFCore) 中的 output type
更改为 Class Library
。
p.s。当您 运行 迁移等
时,您可能需要将其改回
我在将 docker 容器部署到 AWS Lambda 时遇到了类似的问题。
我使用的是自定义容器而不是 public.ecr.aws/lambda/dotnet:latest
。
因此,lambda-entrypoint.sh
对使用哪个 deps.json
感到困惑,并试图 运行 dotnet exec
随机 json 文件.
最终解决它的方法是将环境变量 LAMBDA_DOTNET_MAIN_ASSEMBLY
设置为主程序集名称 - 不包括 .dll
此名称应与您的 .csproj
文件的名称相匹配。例如,如果您的程序是 myDotnetExample.csproj
,您可以将环境变量设置为:
LAMBDA_DOTNET_MAIN_ASSEMBLY = "myDotnetExample"
设置此变量后,lambda-entrypoint.sh
能够找到正确的文件和 运行 程序。
错误信息:
PM> Add-Migration InitialDatabase
dotnet exec needs a managed .dll or .exe extension. The application specified was 'C:\Users\xxxxxx\documents\visual studio 2017\Projects\TheWorld\src\TheWorld\bin\Debug\netcoreapp1.0\TheWorld.runtimeconfig.json'
Process finished with non-zero exit code
PM>
Visual Studio 版本:2017 RC
项目依赖关系:
错误截图:
VS 和 dotnet 的工具仍处于预览阶段。在 TheWorld/src
文件夹中从命令行尝试 运行 dotnet ef migrations add InitialDatabase
。
我遇到了同样的问题。我唯一需要做的就是更改项目属性中的目标框架。
Changing the framework version
希望对您有所帮助。
在 VS2017RC 中——我所要做的就是使用包管理器控制台再次安装 .NetCore:
Install-Package Microsoft.NETCore.App
后来的迁移脚本起作用了,"dotnet exec needs a managed .dll or .exe extension." 错误消失了。
我的上下文正在部署到 AWS Lambda。
解决方法是将我的 lambda 使用的 EF 项目 (EFCore) 中的 output type
更改为 Class Library
。
p.s。当您 运行 迁移等
时,您可能需要将其改回我在将 docker 容器部署到 AWS Lambda 时遇到了类似的问题。
我使用的是自定义容器而不是 public.ecr.aws/lambda/dotnet:latest
。
因此,lambda-entrypoint.sh
对使用哪个 deps.json
感到困惑,并试图 运行 dotnet exec
随机 json 文件.
最终解决它的方法是将环境变量 LAMBDA_DOTNET_MAIN_ASSEMBLY
设置为主程序集名称 - 不包括 .dll
此名称应与您的 .csproj
文件的名称相匹配。例如,如果您的程序是 myDotnetExample.csproj
,您可以将环境变量设置为:
LAMBDA_DOTNET_MAIN_ASSEMBLY = "myDotnetExample"
设置此变量后,lambda-entrypoint.sh
能够找到正确的文件和 运行 程序。