2017-08-16 18 views
8

Tôi đang cập nhật một số ứng dụng từ .NET Core 1.1 lên 2.0. Các ứng dụng hoạt động tốt tại địa phương nhưng sau khi cập nhật Runtime trên linux của tôi VM và triển khai, tôi nhận được lỗi:thiếu thời gian chạy lỗi cửa hàng trên Linux với thời gian chạy .NET Core 2.0 chỉ

Một assembly được chỉ định trong các phụ thuộc ứng dụng manifest (foo.deps.json) không được tìm thấy: gói : 'Microsoft.ApplicationInsights.AspNetCore', phiên bản: '2.1.1' đường dẫn: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'
Hội đồng này được dự kiến ​​sẽ ở trong cửa hàng thời gian chạy địa phương là ứng dụng đã được xuất bản bằng cách sử dụng tệp kê khai đích sau: aspnetcore-store-2.0.0-linux-x64.xml; aspnetcore-store-2.0.0-osx-x64.xml; aspnetcore-store-2.0.0-win7-x64 .xml; aspnetco re-store-2.0.0-win7-x86.xml

Tôi nghĩ rằng điều này là do tải xuống thời gian chạy không tạo thư mục lưu trữ thời gian chạy mới khi bạn sử dụng gói Microsoft.AspNetCore.All.

Tôi có thể cài đặt toàn bộ SDK và cách này hoạt động tốt nhưng tôi chỉ muốn tiếp tục sử dụng thời gian chạy.

Làm cách nào để tạo bộ nhớ cache thời gian chạy theo cách thủ công mà không yêu cầu SDK trên máy chủ sản xuất?

Trả lời

5

Cập nhật 12/4/2017

Thời gian chạy ASP.NET Lõi hiện đang niêm yết trên trang tải chính cho NET Core. https://www.microsoft.com/net/download/linux

Cập nhật 10/3/2017

Bạn cũng có thể cài đặt từ một thức ăn gói.

Xem liên kết này để được hướng dẫn thêm gói NET Lõi nguồn cấp dữ liệu cho apt, yum, zypper, và những người khác: https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md#installing-net-core-on-linux

Ví dụ, nếu bạn muốn cài đặt trên Ubuntu 16, bạn sẽ làm điều này:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg 
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg 
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list' 
sudo apt update 
sudo apt install aspnetcore-store-2.0.0 

Original câu trả lời

Bạn có thể tải về chỉ các cửa hàng thời gian chạy ASP.NET lõi từ đây:

https://dist.asp.net/runtimestore/2.0.0/linux-x64/aspnetcore.runtimestore.tar.gz

Bạn cũng sẽ cần tải xuống thời gian chạy .NET Core 2.0.0 (xem https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md).

Trích xuất cả hai thư mục này vào cùng một thư mục, nghĩa là thư mục "lưu trữ" và "bổ sungDeps" từ kho lưu trữ thời gian chạy nên song song với tệp thực thi dotnet.

+0

cảm ơn. Tôi không tìm thấy bất kỳ tài liệu nào về điều này. Bạn có thể thêm điều này vào trang tải xuống thời gian chạy cũng như https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction. Nó cũng sẽ là tốt đẹp nếu thiết lập cửa hàng thời gian chạy được kết hợp vào dotnet-install.sh –

+0

Vâng, tôi sẽ liên hệ với nhóm tài liệu của chúng tôi để cải thiện điều này. – natemcmaster

0

Đối với CentOS 7, sau đây làm việc cho tôi:

  1. Tải về và cài đặt thời gian chạy:

    mkdir -p/home/DotNet & & tar zxf DotNet-runtime-2.0.0- linux-x64.tar.gz C/home/DotNet

  2. Tải về và cài đặt SDK "Đây là một pHẢI để có được Asp.Net lõi thư mục lưu trữ"

    01.

    mkdir -p/home/dotnetSDK & & tar zxf dotnet-sdk-2.0.0-linux-x64.tar.gz C/home/dotnetSDK

  3. Sao chép các cửa hàng thư mục từ SDK để thời gian chạy:

    cp -rp/home/dotnetSDK/cửa hàng/home/DotNet/cửa hàng

  4. Tháo SDK :

    rm -dfr/home/dotnetSDK

  5. bộ 'DotNet' để PATH như được giải thích trong tài liệu chính thức (sau đây không phải là vĩnh viễn):

    export PATH = $ PATH:/home/DotNet

Bây giờ bạn có thể kiểm tra và xác nhận làm việc của nó:

# dotnet WebApiTest.dll 
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0] 
     User profile is available. Using '/root/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. 
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58] 
     Creating key {87d17c5a-120f-4204-b316-52027a264791} with creation date 2017-08-17 16:34:49Z, activation date 2017-08-17 16:34:49Z, and expiration date 2017-11-15 16:34:49Z. 
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] 
     No XML encryptor configured. Key {87d17c5a-120f-4204-b316-52027a264791} may be persisted to storage in unencrypted form. 
info: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[39] 
     Writing data to file '/root/.aspnet/DataProtection-Keys/key-87d17c5a-120f-4204-b316-52027a264791.xml'. 
Hosting environment: Production 
Content root path: /home/dotnet/WebApiTest 
Now listening on: http://localhost:5000 
Application started. Press Ctrl+C to shut down. 

Cuối cùng: Compress/Lưu trữ/home/dotnet để bạn giành không cần bước 2, 3 & 4 trong các triển khai trong tương lai cùng bản phát hành 2.0.0.

1

mỗi sự Runtime package store documentation, bạn có thể thêm dòng sau vào tập tin .csproj của bạn:

<PropertyGroup> 
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> 
</PropertyGroup> 

và sự phụ thuộc sẽ được đưa vào khi bạn sử dụng dotnet publish.

0

Tôi gặp phải sự cố này vì phiên bản SDK dotnet của tôi nằm phía sau phiên bản gói Microsoft.AspNetCore.All.Làm cho phiên bản phù hợp (hoặc bằng cách hoàn nguyên gói hoặc nâng cấp SDK máy chủ) đã khắc phục sự cố của tôi. Sai lầm ngớ ngẩn để thực hiện nhưng hy vọng nó sẽ giúp một ai đó.

Các vấn đề liên quan