Purnima Naik
Purnima Naik

Reputation: 2683

Deploying .net core app to docker gives "Microsoft.DotNet.Props" not found error

I am having Windows 10 Home operating system. I have installed Docker toolbox. I want to deploy my .net core application to Docker. I created my Docker file by referring to following helpful article: https://stormpath.com/blog/tutorial-deploy-asp-net-core-on-linux-with-docker

My docker file is as follows:

FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app

RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]

EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000

ENTRYPOINT ["dotnet", "run"]

But when I run, docker command for creating image, it gives me error.

user@machine_name MINGW64 path to solution
$  docker build -t helloWorld:core .

Error:

/app/Web.xproj(7,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/1.0.0-rc4-004771/Microsoft/VisualStudio/v14.0/DotNet/Microsoft.DotNet.Props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
The command 'dotnet restore' returned a non-zero code: 1

Can someone please guide, what is going wrong over here, as I am completely new to Docker.

Upvotes: 4

Views: 2375

Answers (1)

Set
Set

Reputation: 49779

As I see Web.xproj in your error, look like you have the same problem as described in this github issue. The root of such problem is that Microsoft updated their docker to the newest SDK which moves back to .csproj from project.json. The solution is to use another, 1.1-sdk-projectjson tag:

FROM microsoft/dotnet:1.1-sdk-projectjson

Note on microsoft/dotnet/ docker page:

The latest tag no longer uses the project.json project format, but has now been updated to be csproj/MSBuild-based. If you do not wish to migrate your existing projects to MSBuild simply change your Dockerfile to use the 1.1.0-sdk-projectjson or 1.1.0-sdk-projectjson-nanoserver tag. Going forward, new .NET Core sdk images will be MSBuild-based.

Upvotes: 5

Related Questions