Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >由于找不到应用程序或没有安装兼容的.NET SDK,所以无法执行。

由于找不到应用程序或没有安装兼容的.NET SDK,所以无法执行。
EN

Stack Overflow用户
提问于 2021-04-07 07:09:54
回答 6查看 31K关注 0票数 15

我使用ASP.NET核心5创建了一个基本的Rest,我想要用它来运行。该应用程序在IIS Express上运行良好。

https://learn.microsoft.com/fr-fr/aspnet/core/tutorials/first-web-api?view=aspnetcore-5.0&tabs=visual-studio

为了启动应用程序,我还想创建一个docker容器。

在项目文件夹中,我创建了一个带有多个文件的Docker文件夹。这里是我的App.dockerfile:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM mcr.microsoft.com/dotnet/aspnet:5.0

ARG WEBAPP_VERSION=0.0.1
LABEL maintainer=anymail@email_server.com \
    Name=webapp \
    Version=${WEBAPP_VERSION}
ARG URL_PORT
WORKDIR /app
ENV NUGET_XMLDOC_MODE skip
ENV ASPNETCORE_URLS http://*:${URL_PORT}
ENTRYPOINT [ "dotnet", "WebApplication.dll" ]

我还有一个Build.docker文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM mcr.microsoft.com/dotnet/aspnet:5.0
## Can be Debug or Release.
ARG BUILD_CONFIG=Debug
ARG BUILDER_VERSION=0.0.1
LABEL maintainer=some_email@email_server.com \
    Name=webapp-build-${BUILD_CONFIG} \
    Version=${BUILDER_VERSION}
## Will be the path mapped to the external volume.
ARG BUILD_LOCATION=/app/out
ENV NUGET_XMLDOC_MODE skip
WORKDIR /app
COPY *.csproj .
RUN dotnet restore
COPY . /app
RUN dotnet publish --output ${BUILD_LOCATION} --configuration ${BUILD_CONFIG}

最后,我有了一个对接者-Compose.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
  webapp:
    container_name: webapp.test
    image: webapp:${WEBAPP_VERSION}
    build:
      context: ../
      dockerfile: ./Docker/App.dockerfile
      args:
        WEBAPP_VERSION: ${WEBAPP_VERSION}
        URL_PORT: ${URL_PORT}
    ports:
      - "5000:${URL_PORT}"
    volumes:
      - appbuild:/app
    links:
      - mysql
    environment:
      MYSQL_SERVER_NAME: ${MYSQL_SERVER_NAME}
    env_file:
      - secrets.env
    depends_on:
      - builder
  
  builder:
    container_name: builder
    image: webapp:${BUILDER_VERSION}.${BUILD_CONFIG}
    build:
      context: ../
      dockerfile: ./Docker/Build.dockerfile
      args:
        BUILDER_VERSION: ${BUILDER_VERSION}
        BUILD_CONFIG: ${BUILD_CONFIG}
        BUILD_LOCATION: ${BUILD_LOCATION}
    volumes:
      - appbuild:${BUILD_LOCATION}
   
  mysql:
    container_name: ${MYSQL_SERVER_NAME}
    image: mysql/mysql-server:8.0.23
    restart: always
    volumes:
      - dbvol:/var/lib/mysql
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: root
    env_file:
      - secrets.env

volumes:
  appbuild:
  dbvol:

最后,启动以下命令行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker build -f Docker/App.dockerfile -t webapp:Debug --build-arg URL_PORT=7909 .

这个过程相当快。我还启动了以下命令行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --name webapp.test -p 5000:7909 -it webapp:Debug

我不幸地得到了一条错误信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Could not execute because the application was not found or a compatible .NET SDK is not installed.
Possible reasons for this include:
  * You intended to execute a .NET program:
      The application 'WebApplication.dll' does not exist.
  * You intended to execute a .NET SDK command:
      It was not possible to find any installed .NET SDKs.
      Install a .NET SDK from:
        https://aka.ms/dotnet-download
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2021-04-07 08:54:54

您的使用ASP.NET核心运行时容器映像:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM mcr.microsoft.com/dotnet/aspnet:5.0

这个容器没有SDK,只有运行时。当您构建它时,它会失败:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RUN dotnet restore
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Could not execute because the application was not found or a compatible .NET SDK is not installed. and The application 'restore' does not exist

因为dotnet restore命令是SDK命令。如果您只是使用运行时,它是不可用的。

您应该将SDK容器用于构建Dockerfile (而不是运行时Dockerfile,这很好):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM mcr.microsoft.com/dotnet/sdk:5.0
票数 25
EN

Stack Overflow用户

发布于 2021-10-18 03:58:34

如果您已经安装了SDK,并且您有x64机器;

System Variables > Path中删除以下项目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Program Files (x86)\dotnet

票数 17
EN

Stack Overflow用户

发布于 2021-12-22 01:39:26

在我的例子中,点网络SDK被安装在不同的位置。powershell上的一个简单where.exe dotnet返回以下内容

在系统环境变量中有两个条目,即带有x86的条目在上面,所以它是优先的,所以我交换了这两个条目,并使它们开始工作。特别感谢https://www.hanselman.com/blog/dotnet-could-not-execute-because-the-application-was-not-found-or-a-compatible-net-sdk-is-not-installed

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66988943

复制
相关文章
undefined vs null
许多编程语言都有一个空值(non-value)null:表示存在一个变量但是没有指向一个对象。
前端柒八九
2022/08/25
1.1K0
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.4K0
JS中判断null、undefined与NaN的方法
写了个 str ="s"++;  然后出现Nan,找了一会。  收集资料如下判断: 1.判断undefined: 1 2 3 4 var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); } 说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"  2.判
庞小明
2018/03/08
5.7K0
主外键关联删除(on delete set null和on delete cascade)
主外键关联,当删除的是父表数据,参照这些要删除的数据,Oracle有三种处理方式:
bisal
2019/01/29
2.9K0
如何删除对象的某个属性(对象属性方法是什么)
const object = { ‘a’: 1, ‘b’: ‘2’, ‘c’: 3 };
全栈程序员站长
2022/07/29
4.5K0
null == undefined ?
最近在看《JavaScript高级程序设计》一书,书中讲到相等操作符(==)时说,要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,但要记住 null == undefined 会返回 true 。的确,在ECMAScript规范中也是这样定义的,但我认为这样来理解这件事情,似乎有些浮于表面,网上也有很多关于这个问题的文章,下面我希望从一个全新的角度来分析 null 和 undefined 的区别,从而理解两者为何会相等:
疯狂的技术宅
2019/03/28
2.5K0
null == undefined ?
Javascript中null和undefined的区别?
null:空值,一般主动赋值才会出现。表示主观上这个变量的值就是空的,比如你去获取蒙奇 D 鸣人的资料,这人不存在,那么返回的值就应该是 null。
IT工作者
2022/01/15
5090
Javascript 中 null和undefined的区别
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
wfaceboss
2019/04/08
7820
JavaScript中undefined与null详解
对于undefined和null我一直知道他们有很多区别,也知道一点关于他们的区别,但却不具体系统,因此总结了一下,主要心得如下:
Javanx
2019/09/04
7700
JavaScript中undefined与null详解
JS中Null与Undefined的区别
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。 Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。 Screenshot (12).png js 代码 var oValue; alert(oValue == undefined); //output "true" 这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。 js 代码 a
前朝楚水
2018/04/02
3.6K0
JS中Null与Undefined的区别
Typescript中undefined与null的区别
ts配置文件中有个选项 "strictNullChecks" 如果设置值为false,那么以下代码都不是问题 ,如果设置为true, 以下代码可以说明undefined和null在ts中的区别
lilugirl
2020/06/28
3.3K0
null 和 undefined
浏览器会弹出窗口显示 undefined。因为对于使用了 var 声明但没有进行初始化定义的变量, 其值默认为 undefined。
Chor
2019/11/08
1.8K0
JavaScript中的null和undefined的区别
1、null 表示没有对象,即该处不应该有值,用法如下: 作为函数的参数,表示该函数的参数不是对象; 作为原型链的终点。 2、undefined 表示缺少值,就是此处应该有一个值,但是还没有定义,情况如下: 变量被声明了,但没有赋值时,就等于undefined; 调用函数时,应该提供的参数没有提供,该参数等于undefined; 对象没有赋值的属性,该属性的值为undefined; 函数没有返回值的时,默认返回undefined;
IT工作者
2021/12/31
7730
python中面向对象VS面向过程
面向过程编程:首先分析出解决问题所需要的步骤(即“第一步做什么,第二步做什么,第三步做什么”),然后用函数实现各个步骤,再依次调用。
全栈程序员站长
2022/09/07
4360
python中面向对象VS面向过程
vs中没有vc_vs中的控件
头文件fstream包含了ifstream、ofstream、fstream三个类,可以通过定义这三个类的对象来实现相对应的文件操作。
全栈程序员站长
2022/09/30
7630
【基础】JavaScript 中 null 和 undefined 的区别?
通过运行代码可以看出null和undefined是相等的,但是当他们做全等比较时,又不等。原因是什么呢?我们再来看下他们的类型:
青年码农
2020/12/17
7780
探索JavaScript中Null和Undefined的深渊
在讨论JavaScript中的原始数据类型时,大多数人都了解基本知识,从String,Number和Boolean开始。这些原语非常简单,可以像您期望的那样起作用。但是,本文将重点介绍称为Null和Undefined的更独特的原始数据类型。是什么使它们相似,不相似以及总体上与众不同。
公众号---人生代码
2021/02/24
7250
vue删除对象的某个属性(js怎么删除对象中的某个元素)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128065.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/26
10.3K0
null 和 undefined 的区别!
许多编程语言都有一个称为null的非值。它指示一个变量当前不指向一个对象,例如,当它还没有初始化的时候。
前端小智@大迁世界
2022/03/22
1.1K0
null和undefined的区别
在Js中null与undefined是两种基本数据类型,都可以用来表示"无"这个概念,但是在语义表达以及实际使用上是有所区别的。
WindRunnerMax
2020/08/27
2.5K0

相似问题

c++中的delete vs NULL vs free

60

删除vs delete[]

49

批量删除(truncate vs delete)

61

new char [] vs new char(),delete() vs delete []

10

正确使用C++中关于char *的delete vs delete[ ]

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文