ফ্রেমওয়ার্কের জন্য রানটাইম টার্গেটটি খুঁজে পাচ্ছে না N


149

আমি একটি এসপি নেট নেট আরসি 1 প্রকল্পটি আরসি 2 তে স্থানান্তরিত করার চেষ্টা করছি এবং এই নথিটি অনুসরণ করছি এবং ডিএনএক্স মাইগ্রেশন সম্পর্কিত .NET CLI- র নির্দেশাবলীও অনুসরণ করেছি ।

আমি চেষ্টা করার পরে আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি dotnet run:

ফ্রেমওয়ার্ক '.NETCoreAPP, সংস্করণ = v1.0' লক্ষ্য রানটাইমগুলির সাথে একের সাথে সামঞ্জস্যপূর্ণ জন্য রানটাইম লক্ষ্য খুঁজে পাচ্ছে না: 'win10-x64, win81-x64, win8-x64, win7-x64' সম্ভাব্য কারণ:

  1. প্রকল্পটি পুনরুদ্ধার করা হয়নি বা ব্যর্থ হয়েছে -রুন 'ডটনেট পুনরুদ্ধার'
  2. প্রকল্পটি 'রানটাইমস'-এ' win10-x64, win81-x64, win7-x64 'এর একটির তালিকা করে না

আমি দৌড়েছি dotnet restoreএবং এটি সফলভাবে শেষ হয়েছে বলে মনে হচ্ছে।

আমি সমস্ত প্রাসঙ্গিক প্যাকেজগুলিকে আরসি 2 তে আপডেট করেছি।

উত্তর:


290

ত্রুটি বার্তাটি যা বলেছিল ঠিক তাই করা আমার উচিত ছিল। আরসি 1 থেকে স্থানান্তরিত করার সময়, আমি বুঝতে পারি না যে আমাকে runtimesআমার project.jsonফাইলে একটি বিভাগ নির্দিষ্ট করতে হবে।

আমার মধ্যে project.jsonআমি নিম্নলিখিত বিভাগটি যুক্ত করেছি:

"runtimes": {
    "win10-x64": { }
  }

এবং আমি যেতে ভাল ছিল।


আপডেট 27 ফেব্রুয়ারী 2017

ভিজ্যুয়াল স্টুডিও 2017 আরসি-তে নতুন প্রকল্পের টেম্পলেটগুলির জন্য আর আগে থেকে রান সময় নির্দিষ্ট ( project.jsonবা বা .csproj) নির্দিষ্ট করতে হবে না যদি আপনি নিজের অ্যাপ্লিকেশনটিকে Framework Dependent Deployment(এফডিডি) হিসাবে স্থাপন করতে চান ।

তবে, আপনি যদি নিজের অ্যাপ্লিকেশনটি Self-contained Deployment(এসসিডি) ব্যবহার করে স্থাপন করতে চান, তবে আপনার অ্যাপ্লিকেশনটি আপনার ফাইলটিতে আগে থেকেই চালিত হওয়া চাইলে আপনার রান করার সমস্ত সময় নির্দিষ্ট করতে হবে .csproj।

.csprojএসসিডি মোতায়েনের পদ্ধতিটি ব্যবহার করে এমন অ্যাপ্লিকেশানের জন্য নীচে এমন একটি ফাইলের উদাহরণ দেওয়া হল :

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.0</TargetFramework>
    <VersionPrefix>1.0.0</VersionPrefix>
    <DebugType>Portable</DebugType>
    <RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
  </ItemGroup>
</Project>

আরও তথ্যের জন্য দয়া করে এই লিঙ্কটি দেখুন, যার মধ্যে উভয় ধরণের স্থাপনার বিকল্পের পাশাপাশি তাদের সুবিধা এবং অসুবিধাগুলির বিশদ বিবরণ অন্তর্ভুক্ত রয়েছে।


42
আমি ভিএস 2015 আপডেট 3 এ একটি নতুন প্রকল্প তৈরি করেছি এবং এখনও এই বিভাগটি অনুপস্থিত ছিল।
— এডওয়ার্ড ওলামিসান

7
আমি মনে করি এই সেটিংটি যুক্ত করা সবসময় প্রয়োজন হয় না। ডকুমেন্টেশনটিতে বলা হয়েছে: "আপনি যদি কোনও পোর্টেবল ক্লাসের লাইব্রেরি হন যে কোনও রানটাইম চলতে পারে তবে আপনার রানটাইম নির্দিষ্ট করার দরকার নেই।" - এটি আমার বেশিরভাগ প্রকল্পের ক্ষেত্রে সত্য, তবে আমি যখন আমার সমাধানে একটি সত্ত্বা ফ্রেমওয়ার্ক কোর প্রকল্প যুক্ত করেছি তখন এই ত্রুটিটি উপস্থিত হয়েছিল। আমি মনে করি ইএফ কোর - কমপক্ষে তার আরসি 2 রাজ্যে - এটির কোনও সীমাবদ্ধতা রয়েছে যার উপর এটি প্ল্যাটফর্ম চালাতে পারে, সুতরাং, যে প্রকল্পগুলি এটি রেফারেন্স করে, সেই সেটিংস মেনে চলার প্রয়োজন হতে পারে। তবে আমি কেবল অনুমান করছি। ডকুমেন্টেশন এই মুহূর্তে সত্যিই বিভ্রান্তিকর।
— বার্নহার্ড কোইনিগ

7
এমনকি এটি নতুন 1.0 কোর ভিএস ২০১৫ টেমপ্লেটেও দরকার নেই, এটি 1.0.1 এ আপডেট হয়েছে এবং উপরের ত্রুটিটি পেয়েছে, ঠিক করার জন্য!
— স্টিভ ম্যাকনিভেন-স্কট

1
@ স্টিভমিসনিভেন-স্কট - এখানেও একই। উবুন্টু সার্ভারটি পুনরুদ্ধার করতে এবং এটির পুনঃনির্মাণ করতে আমাকে "রানটাইমস" এ আরও একটি লাইন যুক্ত করতে হয়েছিল: "উবুন্টু.16.04-x64"। ওয়াইএমএমভি তবে ত্রুটিটি আপনার যে প্ল্যাটফর্মটি মিস করছে তা চিহ্নিত করা উচিত এবং এটি যুক্ত করতে হবে।
— জার বোম্বা

5
ত্রুটি বার্তায় "প্রকল্প.জসন" উল্লেখ করা হয়নি। লোকেরা কেমন অনুমান করার কথা ??
— দরকারী

76

VS2015 কোর টেম্পলেটটি 1.0.1 এ আপডেট করার পরে আমি এই ত্রুটিটি পেয়েছি। এটি ছিল কারণ আমার কাছে একটি পিসিএল রয়েছে যা লক্ষ্য করে netstandard 1.4 যে আপনি যদি প্রতিটি রানটাইম নির্দিষ্ট করতে চান না, কেবল এর জন্য নির্ভরতা মার্কআপটি পরিবর্তন করুন Microsoft.NETCore.App:

"Microsoft.NETCore.App": {
 "type": "platform",
 "version": "1.0.1"
}

1
উপরের মার্কআপটি আমার সংকলন ত্রুটিটিকে স্থির করে, তবে আইআইএস এক্সপ্রেস এর পরে আর শুরু হবে না। "সংস্করণ" পরিবর্তন: "1.0.0" থেকে "সংস্করণ": "1.0.0" আইআইএস সমস্যা সমাধান করেছে।
— রস

@Ross project.json সরঞ্জাম অধ্যায় আপডেট করা সংস্করণ NETCore.App মেলে
— DalSoft

এক্ষেত্রে "সরঞ্জাম": {"মাইক্রোসফ্ট.এএসপনেটকোর.সর্ভার.আইআইএসআইন্টিগ্রেস.টুলস": "1.0.0-পূর্বরূপ 2-ফাইনাল"},
— ডালসফট

1
@ ডালসফট - হ্যাঁ, আমি কয়েক সপ্তাহ আগে আইআইএসইন্টিগ্রেশন.টুলস সহ সর্বশেষ প্যাচগুলি সহ আমার ভিএস 2015 আপডেট করেছি এবং এটি আমার জন্য মাইক্রোসফট.নটকোর.অ্যাপ: 1.0.1 সমস্যা সমাধান করেছে solved
— রস

1
@ ইউজফুলবি পোর্টেবল ক্লাস লাইব্রেরি
— মাইক_জি

35

in প্রকল্প.json আমি এটি পরিবর্তন করেছি (যুক্ত প্রকার):

//"Microsoft.NETCore.App": "1.1.0",
"Microsoft.NETCore.App": { "version": "1.1.0", "type": "platform" },

এখন আমি আবার নির্মাণ করতে পারি :-)

আপডেট: এখন আমি আবার তৈরি করতে পারি তবে ওয়েবসাইটটি "চালাতে" পারি না।

আপনার রানটাইম এবং এসডিকেও রয়েছে তা নিশ্চিত করতে হবে:

*) ভিজ্যুয়াল স্টুডিও সরঞ্জামগুলির মধ্যে নেট কোর 1.0.1 অন্তর্ভুক্ত। .NET কোর 1.1 সমর্থন যুক্ত করতে আপনাকে .NET কোর 1.1 রানটাইম ইনস্টল করতে হবে।

https://www.microsoft.com/net/download/core#/current


1
দেখে মনে হচ্ছে যে আপনি ওয়েবসাইটটি চালাতে পারবেন না কারণ আপনার ইনস্টল করা দরকার
— N

এবং কখনও কখনও রানটাইম পুনরায় ইনস্টল করাও আমার খুঁজে পাওয়া দরকার।
— juFo

এটি আমার পক্ষে সাহায্য করেছিল। ধন্যবাদ! প্রকল্প.জসনের নির্ভরতা থেকে সরাসরি "মাইক্রোসফ্ট.নাইটকোর.এপ" মন্তব্য করে এবং এটিকে "ফ্রেমওয়ার্ক" এর অধীনে পরিবর্তন করা হচ্ছে: {"নেটকর্প্প ১.১": depend "নির্ভরতা": Microsoft "মাইক্রোসফট.নাইটকোর.এপ": {" সংস্করণ ":" ১.১.০ "," টাইপ ":" প্ল্যাটফর্ম "}}}},
— নিউওডিয়ামিয়াম

1
ধন্যবাদ. এই 2 টি সহজ পদক্ষেপটি সমস্যার সমাধান করেছে। আশা করি নিকট ভবিষ্যতে এমএস এটিকে আরও বিকাশকারী বান্ধব করে তুলবে।
— ইভজ

20

আমি এই ত্রুটিটি পেয়েছি কারণ আমি আমার প্রজেক্ট.জসন নির্ভরতা আপডেট করতে ভিজ্যুয়াল স্টুডিও 2015 তে অবিশ্বাস্যভাবে ভাঙা নুগেট প্যাকেজ ম্যানেজারটি ব্যবহার করেছি। এটি এটি পরিণত:

"frameworks": {
  "netcoreapp1.0": {
    "dependencies": {
      "Microsoft.NETCore.App": {
        "type": "platform",
        "version": "1.0.1"
      } 
    }
  }
}

এটিতে:

"dependencies": {
  "Microsoft.NETCore.App": "1.1.0"
},
"frameworks": {
  "netcoreapp1.0": {}
}

বিদায়, প্ল্যাটফর্ম সংজ্ঞা!


15

আপনি যদি এই দুটি লিঙ্কটি পড়েন:

প্রথম, https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/used-with-xplat-cli

এবং

দ্বিতীয়, https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catolog

আপনি দেখতে পাবেন যে আপনি প্রকল্প.জসনের নির্ভরতা মূল উপাদানটিতে নিম্নলিখিত স্নিপেট ব্যবহার করে একটি সম্পূর্ণ পোর্টেবল সংস্করণ তৈরি করতে পারেন। রানটাইম নির্দিষ্ট করার দরকার নেই কারণ এটি একটি CORE স্তরের রানটাইম যা প্ল্যাটফর্ম অজন্যস্টিক হওয়া উচিত, বা "ফ্রেমওয়ার্ক নির্ভর" হিসাবে পরিচিত

"Microsoft.NETCore.App": {
    "type": "platform",
    "version": "1.0.1"
}

বা আপনি একাধিক টার্গেটযুক্ত প্ল্যাটফর্মগুলির জন্য ("স্ব-অন্তর্ভুক্ত অ্যাপ্লিকেশনগুলি") টাইপ করুন: প্ল্যাটফর্মের উপাদানটি এইভাবে সরিয়ে:

এটিকে প্রজেক্ট.জসনে নির্ভরতাগুলির মূল উপাদানটিতে যুক্ত করুন

"Microsoft.NETCore.App": {
    "version": "1.0.1"
}

এবং এটিকে নতুন মূল স্তরের উপাদান হিসাবে যুক্ত করুন

"runtimes": {
    "win10-x64": {},  /* one or more RIDs */
    "osx.10.10-x64": {}
  },

একাধিক লক্ষ্যবস্তুর জন্য আপনার ".NET কোর রানটাইম আইডেন্টিফায়ার্স (আরআইডি)" নামে পরিচিত প্ল্যাটফর্মের নাম সরবরাহ করা দরকার "এগুলির একটি তালিকা উপরের দ্বিতীয় লিঙ্কে পাওয়া যাবে। এটিতে উইন্ডোজ, লিনাক্স এবং ওএস এক্সের অনেক স্বাদ অন্তর্ভুক্ত রয়েছে

বিভিন্ন স্থাপনার অপ্টিনগুলির একটি ভাল ওভারভিউয়ের জন্য, আপনি এই পৃষ্ঠাটিও পড়তে পারেন:

https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index

উপরের লিঙ্ক থেকে:

.NET কোর অ্যাপ্লিকেশনগুলির জন্য আপনি দুটি ধরণের মোতায়েন তৈরি করতে পারেন:

ফ্রেমওয়ার্ক নির্ভর ডিপোমেন্ট

নামটি থেকে বোঝা যায়, ফ্রেমওয়ার্ক-নির্ভর ডিপ্লোমেন্ট (এফডিডি) লক্ষ্য সিস্টেমে উপস্থিত হতে .NET কোরের একটি শেয়ার্ড সিস্টেম-বিস্তৃত সংস্করণে নির্ভর করে। .NET কোর ইতিমধ্যে উপস্থিত থাকায়, আপনার অ্যাপ্লিকেশন .NET কোর ইনস্টল করার মধ্যেও বহনযোগ্য। আপনার অ্যাপ্লিকেশনটিতে কেবল তার নিজস্ব কোড এবং কোনও .NET কোর লাইব্রেরির বাইরে থাকা কোনও তৃতীয় পক্ষের নির্ভরতা রয়েছে। এফডিডিতে .dll ফাইল থাকে যা কমান্ড লাইন থেকে ডটনেট ইউটিলিটি ব্যবহার করে চালু করা যেতে পারে। উদাহরণস্বরূপ, dotnet app.dll অ্যাপ্লিকেশন নামের একটি অ্যাপ্লিকেশন চালায়।

স্ব-অন্তর্ভুক্ত স্থাপনা

এফডিডি থেকে ভিন্ন, একটি স্ব-অন্তর্ভুক্ত ডিপ্লোমেন্ট (এসসিডি) লক্ষ্য সিস্টেমে উপস্থিত থাকার জন্য কোনও ভাগ করা উপাদানগুলির উপর নির্ভর করে না। .NET কোর লাইব্রেরি এবং .NET কোর রানটাইম উভয় সহ সমস্ত উপাদান অ্যাপ্লিকেশন সহ অন্তর্ভুক্ত এবং অন্যান্য .NET কোর অ্যাপ্লিকেশন থেকে বিচ্ছিন্ন। এসসিডিগুলিতে একটি এক্সিকিউটেবল (যেমন অ্যাপ্লিকেশন নামের অ্যাপ্লিকেশনটির জন্য উইন্ডোজ প্ল্যাটফর্মে app.exe) অন্তর্ভুক্ত থাকে, যা প্ল্যাটফর্ম-নির্দিষ্ট .NET কোর হোস্টের একটি নামকরণ সংস্করণ এবং একটি .dll ফাইল (যেমন app.dll) অন্তর্ভুক্ত, যা আসল প্রয়োগ।


9

আমার ক্ষেত্রে আমি সমস্ত নুগেট প্যাকেজগুলি তাদের সাম্প্রতিক সংস্করণগুলিতে সবেমাত্র আপডেট করেছি এবং নুগেট আমার 'মাইক্রোসফট.নেটকোর.অ্যাপ' প্যাকেজ রেফারেন্সটির নীচে পরিবর্তন করেছে:

"Microsoft.NETCore.App": "1.1.0"

আমি এটিকে আবার নিম্নলিখিত ফর্মটিতে পরিবর্তন করেছি এবং সবকিছু ঠিকঠাক কাজ করেছে:

"Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    }

বিদায় আমার জীবনের 3 ঘন্টা ....


4

আপনি যদি ডটনেট এক্সিকিউট করেন এবং আউটপুট প্রজেক্ট জসনকে দেখেন, আপনি দেখতে পাবেন মনিটরগুলি বদলে গেছে।

আপনার প্রকল্পে পরিবর্তন করুন। জসন নীচে:

"dependencies": {},
   "frameworks": {
     "netcoreapp1.0": {
        "dependencies": {
         "Microsoft.NETCore.App": {
         "type": "platform",
         "version": "1.0.1"
         }
    },
      "imports": "dnxcore50"
    }
  }

আমার জন্য এটি সেরা সমাধান। .NET কোর একটি তাত্পর্যপূর্ণ অবস্থায় রয়েছে এবং জিনিসগুলি পরিবর্তন হতে থাকে। সিএলআই ব্যবহার করে আপনাকে একটি প্রজেক্ট তৈরি করতে। জজসন আপনার প্রজেক্টের পরিবর্তনগুলি ঠিক করার জন্য। জিউসন যে নুগেটের প্রধানমন্ত্রী সামঞ্জস্যপূর্ণ এবং আপডেট থাকতে পারে বলে মনে হচ্ছে না।
— জেমস বি

0

আমি নীচের পৃষ্ঠার নীচে স্বিকের মন্তব্যের একটি দরকারী লিঙ্ক পেয়েছি: https://github.com/dotnet/cli/issues/2442


1
যদিও আপনার উত্তর 100% সঠিক, তা যদি লিঙ্ক, সরানো দ্বারা পরিবর্তন করা 100% বেহুদা হয়ে পারে, অন্য এক বা প্রধান সাইট শুধু disappears মধ্যে মিশে গিয়ে তৈরি ... :-( অতএব, দয়া করে সম্পাদন করা আপনার উত্তর, এবং প্রাসঙ্গিক কপি আপনার উত্তরের লিঙ্ক থেকে পদক্ষেপগুলি, যার ফলে এই সাইটের জীবদ্দশায় 100% আপনার উত্তরটির গ্যারান্টি রয়েছে ! ;-) আপনি সবসময় আপনার উপাদানের উত্স হিসাবে আপনার উত্তরের নীচে লিঙ্কটি রেখে যেতে পারেন ...
— ডোনাল্ড ডাক

0

আমি আপনাকে প্রকল্প.জসনে নিম্নলিখিত প্রয়োজন আছে। আমার ত্রুটিটি ঠিক করার জন্য এখানে যা দরকার ছিল তা এখানে:

নির্ভরতা

"dependencies": {
   "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
   },
}

ফ্রেমওয়ার্ক

"frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

রানটাইম

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

আপনি আইআইএসে প্রকাশের পরিকল্পনা করলে আপনি রানটাইম যুক্ত করতে চাইবেন। নীচের মত কিছু দেখুন:

 "runtimes": {
    "win10-x64": {}
  },

এখানে একটি সাধারণ টিপ যা আমার পক্ষে ভালভাবে কাজ করেছে। যখন আমার স্টাফগুলি ভেঙে যায়, আমি কখনও কখনও প্রকল্প.জসন এবং অন্য কোথাও নির্ভরতা দেখতে ওয়েবসাইট বা খালি ওয়েব এপিআই একটি ডিফল্ট এএসপি.এনইটি কোর অ্যাপ্লিকেশন তৈরি করি। আপনি প্রায়শই অনেক কিছু সেভাবে ধরতে পারেন। উপরের উত্তরগুলি স্পট রয়েছে, তবে আমি ভেবেছিলাম যে কেউ যদি এএসপি.নেট কোর ব্যবহার করেন সেই সাধারণ টেম্পলেট বিন্যাসে যুক্তিটি আরও আলাদা করতে চায় তবে আমি এখানে এটি লিখব।


0

উইন্ডোজ 7-তে ভিএস 2015 এর সাথে, নেটকোর 1.1.2 এ আপডেট করার পরে সলিউটনটি প্রজেক্ট.জসন ফাইলটি নিম্নলিখিত হিসাবে পরিবর্তন করছে:

{
"version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": "1.1.2"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"    //This line must disappear
    }
  },

  "runtimes": {                 //
    "win7-x64": {}              //Add this lines
  }                             //
}

এটি পরিবর্তনের পরে নির্ভরতা আপডেট হবে এবং লঙ্ঘন হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.