পথের একটি অংশ খুঁজে পেল না ... বিন s রোসলিন \ csc.exe


810

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

তবে আমি ব্রাউজারে নিম্নলিখিত ত্রুটি পেয়েছি:

'C: 8 B8akWorkspace \ B8akProject \ B8akSolution \ B8AK.Portal \ bin \ roslyn \ csc.exe' পথের একটি অংশ খুঁজে পেল না।

এখানে ত্রুটি পৃষ্ঠার একটি সম্পূর্ণ স্ক্রিনশট রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

কয়েক দিন গবেষণার পরে, আমি বুঝতে পেরেছি যে রোজলিন । নেট কম্পাইলার প্ল্যাটফর্ম যা অগ্রিম সংকলন বৈশিষ্ট্যগুলি সরবরাহ করে। তবে আমি বুঝতে পারি না যে আমার বিল্ড কেন \ বিন \ রোসলিন \ csc.exe সন্ধান করার চেষ্টা করছে কারণ আমি রোজলিন সম্পর্কিত কোনও কিছু কনফিগার করেছি না বা আমার প্রকল্পে রোজলিন ব্যবহার করার ইচ্ছাও নেই।


10
সংকলিত এএসপি.এনইটি অ্যাপ্লিকেশন চালনার অংশ হিসাবে কেন এটি প্রয়োজনীয় তা কি কেউ ব্যাখ্যা করতে পারেন? এটি csc.exe কীসের জন্য ব্যবহার করছে?
গ্রেগম্যাক

1
আমি মনে করি এটি রজলিন জড়িততার ব্যাখ্যা দেয়: ব্লগস.এমএসএন.ইম.সাইক্রোসফট.ওয়েবদেব
১২

4
রোসলিন ফোল্ডারটি বিন ফোল্ডারে অনুলিপি করা হচ্ছে না আমি নীচের ইনস্টল-প্যাকেজ মাইক্রোসফ্ট ইনস্টল করে এটি ঠিক করে ফেলেছি। কোডডম.প্রভাইডার্স.ডটনেট কমপিলারপ্ল্যাটফর্ম
আবদুল্লাহ তাহান

12
মাইক্রোসফ্ট.কডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্মটি পুনরায় ইনস্টল করা আমার সমস্যাটি সমাধান করেছে।
সুরেনসালুকা

4
আমার প্রকল্পটি ভিএস 2019-এ খোলার পরে আমি এটি করছিলাম It এটি পূর্বে ভিএস 2017 তে কাজ করেছিল I এটি আমার .csprojফাইলে কিছু সমস্যা সংশোধন করেছে ।
নিও

উত্তর:


436

ডিফল্ট ভিএস ২০১৫ টেমপ্লেটগুলির সাথে সমস্যাটি হ'ল সংকলকটি আসলে টিফর \ বিন s রোসলিন \ ডিরেক্টরিতে অনুলিপি করা হয়নি, বরং {আউটডির \ s রোজলিন \ ডিরেক্টরিতে রয়েছে

আপনার .csproj ফাইলে এই কোডটি যুক্ত করুন:

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)\*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

9
এটি আমার সমস্যার সমাধান করে না। এখন আমি 'সি: find B8akWorkspace \ B8akProject \ B8akSolution \ B8AK.Portal \ বিন \ রোসলিন \ csc.exe' ফাইলটি খুঁজে পাইনি । দয়া করে লক্ষ্য করুন যে আমি যখন ভিএস ২০১৫ এ একটি নতুন এমভিসি প্রকল্প তৈরি করি তখন আমি .csproj এ উল্লিখিত কনফিগারেশনটি দেখতে পাই না এবং এটি ব্রাউজারে পুরোপুরি সূক্ষ্মভাবে চলে
Eyad

4
ধন্যবাদ। রোজলিন ডিরেক্টরিটি ডাউনলোড করার পরে এবং এটি / বিন ফোল্ডারে রাখার পরে আমি এখন ব্রাউজারে প্রকল্পটি তৈরি করতে এবং চালাতে সক্ষম হয়েছি। আমি উপরে উল্লিখিত PstBuildEvent রাখিনি এবং এটি এখনও কার্যকর হয়। হতে পারে আপনি উপরে নিজের উত্তরটি সম্পাদনা করতে এবং ম্যানুয়ালি রোজলিন ফাইল স্থাপন করার এবং সমাধানটির আরও ভালভাবে প্রতিফলিত করার প্রয়োজনের উল্লেখ করতে চান।
Eyad

2
ভাল, একটি সাধারণ পরিস্থিতিতে; আপনার $ (আউটডায়ার) রোজলিন *। * ফোল্ডারের ভিতরে সংকলক থাকা উচিত, সুতরাং এই স্ক্রিপ্টটি আপনার প্রকল্পের বাইনফোল্ডারে সংকলকটি অনুলিপি করবে। স্পষ্টতই আপনার vs2015 এর ইনস্টলেশনটি সংকলকটি অন্তর্ভুক্ত করে নি।
মিচেল

9
আমি মাইক্রোসফ্ট.কোড.ডম.প্রভাইডার্স.ডটনেট কমম্পিলার প্ল্যাটফর্মটি 1.0.8 এবং মাইক্রোসফট. নেট.কম্পাইলার্স 2.6.1 এ আমাকে অনেক সাহায্য করেছে। আমার এই অতিরিক্ত লক্ষ্য যুক্ত করার দরকার নেই। দেখে মনে হচ্ছে টুলিংয়ের পরবর্তী সংস্করণে অনুরূপ কিছু যুক্ত হয়েছিল: github.com/aspnet/RoslynCodeDomProvider/commit/…
ইয়ান রবার্টসন

5
আমি মাইক্রোসফ্ট. নেট.কম্পলারের সংস্করণটি নুগেট থেকে ২.১০.০ সংস্করণে আপডেট করেছি এবং এটি আমার জন্য সমাধান হয়ে দাঁড়িয়েছে। আমি টার্গেটফ্রেমওয়ার্ক = "৪.6.২" ব্যবহার করছি
জুলাইটিউব

1160

টি এল; ডাঃ

এটি প্যাকেজ ম্যানেজার কনসোলে চালান:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

অধিক তথ্য

এই সমস্যাটি ভিজ্যুয়াল স্টুডিওর সাথে সম্পর্কিত নয়, সুতরাং ফাইলগুলি অনুলিপি করার জন্য বিল্ড স্টেপগুলি যুক্ত করার পরামর্শ দেওয়া উত্তরগুলি বরং একটি কর্মচঞ্চল। প্রকল্পে ম্যানুয়ালি সংকলক বাইনারি যুক্ত করার সাথে একই।

রোজলিন সংকলকটি একটি নুগেট প্যাকেজ থেকে এসেছে এবং সেই প্যাকেজটির কয়েকটি সংস্করণে একটি বাগ ছিল (আমি ঠিক কোনটি জানি না)। সমাধানটি হ'ল সেই প্যাকেজটিকে বাগ-মুক্ত সংস্করণে পুনরায় ইনস্টল / আপগ্রেড করা। মূলত ২০১৫ সালে উত্তরটি লেখার আগে আমি নির্দিষ্ট সংস্করণে নিম্নলিখিত প্যাকেজগুলি ইনস্টল করে এটি ঠিক করেছি:

  • মাইক্রোসফট. নেট.কম্পেলার্স ১.১.১
  • মাইক্রোসফ্ট.কোড.ডম.প্রভাইডার্স.ডটনেটকম্পিলারপ্ল্যাটফর্ম 1.0.1

তারপরে আমি .csproj সন্ধান করেছি এবং নিশ্চিত করেছি যে প্যাকেজগুলির পাথগুলি সঠিক (আমার ক্ষেত্রে .. \ .. \ প্যাকেজগুলি \ *। *) <ImportProject>উপরের <Target>নীচে এবং নীচে "EnsureNuGetPackageBuildImports" নাম সহ ট্যাগ রয়েছে । এটি এমভিসি 5 এবং .NET ফ্রেমওয়ার্ক 4.5.2 এ রয়েছে।


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

16
আমি নিশ্চিত যে এটিই সেরা সমাধান ... একটি আপডেট-প্যাকেজ -ইনস্টল -প্রজেক্টনাম মাইপ্রজেক্টনাম দিয়ে নিজেই এটি চেষ্টা করে দেখছি
cr1pto

5
এত কিছুর পরেও, আমার প্রকল্পের জন্য কিছুই পরিবর্তন হয়নি। বিন ফোল্ডারটি এখনও সমতল হয়।
ব্রায়ানারি

8
একটি নোট: মাইক্রোসফ্ট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্ম নিউজ প্যাকেজটির 1.0.0 সংস্করণটি আমার পক্ষে কাজ করে তবে সংস্করণ 1.0.6 এই প্রশ্নের ত্রুটির কারণ ঘটায়।
ড্যানিয়েল নীল

5
1.0.6 এর একটি বাগ রয়েছে: github.com/aspnet/RoslynCodeDomProvider/issues/13
akatakritos

176

আপনার বিল্ডটি অনুসন্ধানের চেষ্টা করছে \bin\roslyn\csc.exeকারণ নিম্নলিখিত প্রকল্পগুলি আপনার প্রকল্পে যুক্ত করা হয়েছে added আপনার packages.configফাইলটি কেবল পর্যালোচনা করুন, আপনি উভয়কে সেখানে রাখতে পারেন

Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers

প্রকল্পে রোজলিন কী এবং কারা তাদের (প্যাকেজগুলি) যুক্ত করেছে: আপনি যদি ভিএস2015 ব্যবহার করে প্রকল্পগুলি তৈরি করতে। নেট ফ্রেমওয়ার্ক 4.5.4 ব্যবহার করেন তবে আপনি লক্ষ্য করেছেন যে প্রকল্প টেমপ্লেটগুলি ডিফল্টরূপে রোজলিন ব্যবহার করে। প্রকৃতপক্ষে রোজলিন হ'ল মাইক্রোসফ্ট থেকে নেট নেট ভাষার জন্য অন্যতম ওপেন সোর্স সংকলক।

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

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

1. নিউগেট প্যাকেজগুলি সরান, নুগেট প্যাকেজ কনসোল থেকে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন

PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers

২. আপনি এটি করার পরে আপনার ওয়েব.কমফিগ ফাইলটি স্বয়ংক্রিয়ভাবে আপডেট হওয়া উচিত। যদি এটি না হয় তবে web.configফাইলের নীচের কোডটি সন্ধান করুন এবং যদি এটি পাওয়া যায় তবে এই টুকরা কোডটি মুছুন।

<system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"></compiler>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"></compiler>
    </compilers>
</system.codedom>

28
আপনি যদি নতুন সংকলক এবং নতুন বৈশিষ্ট্যগুলি ব্যবহার করতে চান তবে এটি আসলে কোনও সমাধান নয় ।
মট্টি ভির্ককুনেন

14
আপনি ভবিষ্যতের বিরুদ্ধে কথা বলছেন।
চেম্বারলাইন

2
@ চাম্বারলাইন কেন এটি ভবিষ্যত? আমি কেবল এটি ব্যবহার করার জন্য কঠোর হওয়া উচিত বলে মনে করি তবে দেখে মনে হচ্ছে অনেক লোক এটির সাথে ঝামেলা করছে।
অ্যালিসন

1
অ্যালিসন - রোজলিন হ'ল দিক যা চলছে things এতে নতুন ভাষার বৈশিষ্ট্য রয়েছে, আরও পারফরম্যান্ট, ক্রস প্ল্যাটফর্ম এবং ওপেন সোর্স। এটি অন্যান্য সরঞ্জামগুলির পরে প্রকাশিত হয়েছিল - তাই ভবিষ্যত। কিছুই আপনাকে বলার দরকার নেই, বেশিরভাগ আপগ্রেডে কিছু ব্যয় হয়। "এএসপি.নেটে রজলিন সংকলন কেন দেখুন?" বিভাগ: ব্লগস.এমএসডন.মাইক্রোসফট.ওয়েবদেব
২০১৪

1
আপনি যদি এমভিসি প্রকল্পটি উইন্ডোজ হোস্টিংয়ের গোডাড্ডিতে শেয়ার করতে চান তবে এটির উত্তর। GoDaddy csc.exe এর মত এক্সিকিউটেবল চালায় না
জেসন মারতাজায়া

140

একটি পরিষ্কার এবং পুনর্নির্মাণ আমার জন্য কাজ করেছে!


4
আমি মনে করি না যে পরিষ্কার দরকার। ইস্যুটির এই আলোচনা অনুসারে একটি পুনর্নির্মাণ নিয়মিত নির্মাণ নয়, রোজলিন ফাইলটি সর্বদা পিছিয়ে রাখবে। github.com/dotnet/roslyn/issues/15556
লিমিক

আমি সহজেই বিল্ড> পুনর্নির্মাণ সমাধান চালিয়েছি এবং ত্রুটিটি চলে গেছে।
ম্যাট মেরিল

আমার জন্য পুনর্নির্মাণের বিষয়টি আমি আউটপুটটিতে লক্ষ্য করেছিCopying file from "C:\Users\medmondson\Source\UK\Portal\Branches\v12\Source\packages\Microsoft.Net.Compilers.1.3.2\tools\csi.exe" to "bin\Debug\roslyn\csi.exe".
m.edmondon

12
কেবল পুনর্নির্মাণটি আমার পক্ষে কাজ করেনি .. ক্লিন + পুনর্নির্মাণের পরে ত্রুটিটি অদৃশ্য হয়ে গেল।
ব্রুনো মিকেলিন

2
ডটনেটকম্পিলারপ্ল্যাটফর্ম 1.0.3, মাইক্রোসফ্ট. নেট.কম্পিলার্স 1.3.2, ভিএস প্রো 2017 15.9.4। একটি পরিচ্ছন্ন / পুনর্নির্মাণটি ভিজুয়াল স্টুডিও পুনরায় চালু করার আগে এবং তার পরেও আমার পক্ষে কাজ করে না। অবশেষে, একটি বিল্ড> ব্যাচ বিল্ড ...> পুনর্নির্মাণ সমস্ত কৌশলটি করেছে। এটি অবশ্যই আউটপুটে বিন / রোজলাইন ডিরেক্টরিটি অনুপস্থিত রয়েছে তা দেখতে ভিএসকে পেতে সঠিক ডাবল মিষ্টি-কিছুই বলা উচিত নয়।
জোহান

59

এটি করার আরও একটি এমএস বিল্ড উপায়।

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'">
    <ItemGroup>
      <RoslynFiles Include="$(CscToolPath)\*" />
    </ItemGroup>
    <MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
    <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

তবে আমি লক্ষ্য করেছি যে রোজলিন ফাইলগুলি আমার বিন ডিরেক্টরিতেও রয়েছে (কোনও ফোল্ডারে নয়)। যদিও অ্যাপটি কাজ করছে বলে মনে হচ্ছে।


4
আপনি এটি অন্য কোনও <টার্গেট> ট্যাগের সমান স্তরে আপনার .csproj ফাইলের যে কোনও জায়গায় রাখতে পারেন। আমি সাধারণত এটি নীচের দিকে রাখি।
রব ক্যানন

এটি সত্যই গ্রহণযোগ্য উত্তর হওয়া উচিত। আপনি এটি উত্সে পরীক্ষা করতে পারেন এবং পরবর্তী দরিদ্র স্ক্যাম্ক যা আপনার রেপো টানছে একই সমস্যাটি কাটিয়ে উঠতে হবে না।
অ্যান্ড্রু পরিষ্কার

37

গিটহাবের রোজলিন প্রকল্পের একটি ইস্যুতে যেমন উল্লেখ করা হয়েছে , একটি সমাধান (যা আমার পক্ষে কাজ করেছিল) কেবলমাত্র ভিজ্যুয়াল স্টুডিওতে প্রকল্পটি আনলোড এবং পুনরায় লোড করা।

আমি প্রকল্পটি পুনরায় লোড না করা পর্যন্ত "বিন রোজলিন" ফোল্ডারটি বিল্ড বা পুনর্নির্মাণে তৈরি করা হয়নি।


আপনাকে ধন্যবাদ, এটি আমার জন্য কাজ করেছে। ডটনেট রিপোজিটরিতে ইস্যুটি ২০১ we সালে উন্মুক্ত ছিল এবং আমরা এখনও ভিজ্যুয়াল স্টুডিও 2019 এ এই সমস্যাটি রেখেছি I আমি বিশ্বাস করতে পারি না এটি বাস্তব!
ফিলিপ ওরিয়ানি

26

আমি এই পদক্ষেপগুলি অনুসরণ করেছিলাম এবং এটি পুরোপুরি কার্যকর হয়েছিল

  • সমস্ত বিন এবং আপত্তি ফোল্ডার মুছুন
  • পরিষ্কার সমাধান এবং পুনর্নির্মাণ
  • পাওয়ারশেলের মাধ্যমে এই কমান্ডটি চালান

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r


22

সিগার ছাড়াই সমস্ত সমাধানের চেষ্টা করার পরে আমি ভিজুয়াল স্টুডিওতে এই নুগেট প্যাকেজটি আপডেট করে এটি ঠিক করেছি:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

খনি রেফারেন্সের জন্য 1.0.0 থেকে 2.0.0 পর্যন্ত ছিল (ত্রুটিটি আর প্রদর্শিত হবে না)


3
এটি ওয়েল হিসাবে আমার জন্য ছিল। এমনকি ২.০.০ আমার প্রকল্পের জন্য খুব কম ছিল, এটি ২.০.১ দাবি করেছিল।
হ্যাঁমান

3
এটি আমার জন্য এটি সমাধান করেছে। আমি ডাউনগ্রেড করেছি যা অবশ্যই সমস্যাটি স্থির করেছে এবং তারপরে আমি সর্বশেষে আপডেট হয়েছি।
ড্যানিয়েল জ্যাকসন

1
আমি এটাও করেছি। এখন roslynআমার আউটপুট পথে ফোল্ডারটি তৈরি করা হয়েছে। আমি আমার সিএসপিজে "রসালিন" রেফারেন্সও দেখতে পাচ্ছি না। এটি হতে পারে এটি Target Name="CopyRoslyn...একটি ভিএস ২০১৫ জিনিস এবং এটি আমার (২০১২ সংস্করণ) সংস্করণে প্রয়োজনীয় নয়। লক্ষণীয় মূল্য: যেহেতু আমি একটি অনুলিপি লক্ষ্য যুক্ত করার সাথে ঘুরে বেড়ানোর আগে আমি ডটনেটকম্পিলারপ্ল্যাটফর্ম আপডেট করেছি (আমি উল্লেখ করেছি) আমার কাছে একটি ক্লিনার সিএসপ্রোজ রয়েছে।
লসম্যানোস

1
এটি আমার সাথে ঘটেছিল। এই পোস্টটি একটি জীবন রক্ষাকারী। আমার বার বার এই একই ত্রুটি বার্তা রয়েছে এবং এটি সর্বদা সম্পূর্ণ ভিন্ন কারণ বলে মনে হয়!
ব্রায়ান নোব্লাচ

19
  1. পরিষ্কার সমাধান
  2. পুনর্নির্মাণ সমাধান, এই দুটি পদক্ষেপ আমার পক্ষে কাজ করেছিল।

আপনাকে ধন্যবাদ, এটি আমার জন্যও কাজ করেছিল।
জো ফিলিপস

1
কাজ করে। আমি দুর্ঘটনাক্রমে চাপ দিয়েছিলাম Ctrl Cযখন আমি একটি শাখা পরীক্ষা করার মাঝখানে ছিলাম gitএবং এটি আমার রেপোটিকে আঘাত করল। git reset --hardকাজ হয়নি, তাই আমি git clean -xdfএবং প্রকল্পটি পুনর্নির্মাণ করতে হয়েছিল। তবে আমি এই ত্রুটির মধ্যে দৌড়েছি তাই আমি প্রকল্পটি কেবল পরিষ্কার করে আবার তৈরি করেছি এবং এটি আমার পক্ষে কাজ করেছে।
পল কার্লটন

15

নিউগেট প্যাকেজ ম্যানেজার

আপনাকে মাইক্রোসফ্ট.কডডম.প্রভাইডার্স.ডটনেটকম্পিলারপ্ল্যাটফর্ম.বিনফিক্স ইনস্টল করতে হবে, বিশেষত সেই ত্রুটির জন্য তৈরি করা হয়েছিল


এটি কাজ করে না - আমার সন্দেহ হয় যে প্যাকেজটি এই সঠিক উদ্দেশ্যে নয়।
ড্রয় মিলার

আমি ভিএস 2017 দিয়ে পরীক্ষা করেছি এবং এটি দুর্দান্ত কাজ করে, এটি অন্যান্য সংস্করণগুলির সাথে সমস্যা হতে পারে।
জুয়ান অ্যাকোস্টা

11
আমি ডাকনাম হিসাবে 'ডিএসএক্স' দিয়ে এলোমেলোভাবে প্যাকেজ ইনস্টল করছি না। এটি বড় সুরক্ষা নয় ...
ম্যাটিউজ

1
@ ম্যাটিউজ বা এমন একটি যা আমার নন-অ্যাপএস.এনইটি [এসইসি] ফোল্ডারের কাঠামোটি ঠিক করবে
ইলিয়াসার ২

14
  • আপনার প্রকল্পে ডান ক্লিক করুন এবং নিউজ প্যাকেজ পরিচালনা করুন নির্বাচন করুন
  • "মাইক্রোসফ্ট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলারপ্ল্যাটফর্ম" সন্ধান করুন
  • কেবল পুরানো বা নতুন সংস্করণে আপডেট করুন (যা কিছু আসে না) এবং তারপরে আবার আপনার মূল সংস্করণে আপডেট করুন।

এটি প্যাকেজের সমস্ত নির্ভরতা এবং ফাইলগুলি পুনরায় ইনস্টল করে (যেমন csc.exe)

নিউজ - ডটনেটকম্পিলার প্ল্যাটফর্ম


এটি আমার জন্য এটি স্থির! ধন্যবাদ!
ম্যাসন

11

সুতরাং, রব ক্যাননের উত্তরটি আমার জন্য মূলত কাজ করেছিল, তবে আমাকে কয়েকটি মুখ্য বিকল্পগুলি মুছে ফেলতে হয়েছিল। বিশেষত, আমাকে লক্ষ্যবস্তুতে শর্তটি সরিয়ে ফেলতে হয়েছিল, পাশাপাশি অন্তর্ভুক্তি বৈশিষ্ট্যটিও পরিবর্তন করতে হয়েছিল, কারণ যখন আমাদের বিল্ড সার্ভারে প্রকল্পটি তৈরি করা হত তখন CscToolPath খালি ছিল। কৌতূহলজনকভাবে, ally সিসিটিউলপথ স্থানীয়ভাবে চলার সময় খালি ছিল না।

<Target Name="CopyRoslynFiles" AfterTargets="AfterBuild" >
  <ItemGroup>
    <RoslynFiles Include="$(SolutionDir)packages\Microsoft.Net.Compilers.1.1.1\tools\*" />
  </ItemGroup>
  <MakeDir Directories="$(WebProjectOutputDir)\bin\roslyn" />
  <Copy SourceFiles="@(RoslynFiles)" DestinationFolder="$(WebProjectOutputDir)\bin\roslyn" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>

1
আচরণ আরও খারাপ। স্থানীয়ভাবে, আপনি যদি আপনার প্যাকেজ ফোল্ডারে যান এবং মাইক্রোসফট.কোড.ডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্ম.1.nn এবং দুটি কোড মুছে ফেলেন এবং আপনার কোড তৈরি করেন, তবে $ CscToolPath খালি থাকবে। আপনি যদি দ্বিতীয়বার তৈরি করেন তবে তা খালি হবে না। আপনার বিল্ড সার্ভারে সমস্যাটি সর্বদা ঘটে থাকে, কারণ এটি সর্বদা একটি "প্রথম বিল্ড" হিসাবে বিবেচিত হয়। আপনার কোডটি পুরোপুরি কার্যকরভাবে কাজ করে তবে আপনি যদি Microsoft.Net.Compilers প্যাকেজ আপডেট করেন তবে আপনাকে .csproj আপডেট করতে হবে । ধন্যবাদ.
জুলিয়েন ডি

3
নোট করুন যে Microsoft.Net.Compilers এর সংস্করণ পরিবর্তন হলে এই সমাধান ব্যর্থ হবে (বা সমন্বয় করতে হবে)।
জানডটনেট

আমি মাইক্রোসফ্ট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্মটি আপগ্রেড করেছি এবং তারপরে এগিয়ে যেতে সক্ষম হয়েছি।
iowatiger08

10

নুগেট প্যাকেজগুলি আপডেট করা আমার পক্ষে কাজ করেছে সমাধানের জন্য ডান ক্লিক করুন> সমাধানের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন এবং সমস্ত প্যাকেজগুলি এবং বিশেষত আপডেট করুন: মাইক্রোসফট.নেট.কম্পিলার এবং মাইক্রোসফট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্ম


এটি আমার জন্য এবার কাজ করেছে। অনুপস্থিত রোজলিন / সিএসসি.এক্সি ত্রুটিটি আমার জন্য ক্রমাগত আসে এবং সমাধানটি প্রায়শই আলাদা হয় ...
ব্রায়ান নোব্লাচ

10

এটি মাইক্রোসফ্ট.কডডম.প্রভাইডার্স.ডটনেটকম্পিলারপ্ল্যাটফর্ম 1.0.6 এর সাথে একটি জ্ঞাত সমস্যা । 1.0.5 এ ডাউনগ্রেডিং আমার জন্য এটি স্থির করে।


এটা ঠিক। আমি আজুরে প্রকাশিত হবার সময় 1.0.0 সংস্করণ সহ এই সমস্যাটি নিয়ে চলেছি। 1.0.5 কাজগুলিতে ডাউনগ্রেডিং
আগস্টো ব্যারেটো

2.0.0 থেকে 1.0.5 এ ডাউনগ্রেড এবং এটি কাজ করে। তবে আমি তখন টার্কি স্যান্ডউইচ খাচ্ছিলাম যা সম্ভবত সমাধানের জন্য আংশিক দায়ী ছিল। চিত্রে যান.
বার্নিম্যাক


9

উপরে ড্যানিয়েল নীলের একটি মন্তব্য:

মাইক্রোসফ্ট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্ম নিউগেট প্যাকেজটির 1.0.3 সংস্করণটি আমার পক্ষে কাজ করে তবে সংস্করণ 1.0.6 এই প্রশ্নের ত্রুটির কারণ ঘটায়

1.0.3 এ ডাউনগ্রেডিং আমার জন্য এই সমস্যাটি সমাধান করেছে।


3
1.0.6 এর একটি বাগ রয়েছে: github.com/aspnet/RoslynCodeDomProvider/issues/13
akatakritos

@akatakritos এটি সাহায্য করেছে। আমি কয়েক ঘন্টা অনুসন্ধান করছিলাম। দুজন কেই ধন্যবাদ.
এরিনরোল

2
1.0.7 এখনও নির্দিষ্ট পরিস্থিতিতে প্রভাবিত হয় github.com/aspnet/RoslynCodeDomProvider/issues/17
altso

1
1.0.5 হ'ল আমার পক্ষে কাজ করা সাম্প্রতিকতম সংস্করণ (1.0.6 এবং 1.0.7 ত্রুটি উত্পন্ন করছে)
প্যাট্রিক

একই, আমি 1.0.7 ছিল এবং এটি কাজ করবে না। 1.0.3 কাজ করে। আমি এই সমস্যাটি সহ আমার জীবনের শেষ ঘন্টাটি নষ্ট করায় আমি এর চেয়ে উচ্চতর কিছু চেষ্টা করিনি এবং এখন এটির সাথে আর ঝামেলা করছি না এটি কাজ করছে!
ফিলিপ স্ট্রাটফোর্ড

9

আমার ক্ষেত্রে জেনকিন্সে আমার সমস্যা হয়েছে যখন এটি নিম্নলিখিত ত্রুটির সাথে অক্টোপাসে এটি স্থাপনের চেষ্টা করেছিল:

MSBUILD : OctoPack error OCT-1676060969: Failed to build the path for '\bin\roslyn\csc.exe' relative to 'T:\workspace\machine.engine\Machine.engine.Test': Invalid URI: The format of the URI could not be determined.. See the inner exception for more details. [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969: System.Exception: Failed to build the path for '\bin\roslyn\csc.exe' relative to 'T:\workspace\machine.engine\Machine.engine.Test': Invalid URI: The format of the URI could not be determined.. See the inner exception for more details. ---> System.UriFormatException: Invalid URI: The format of the URI could not be determined. [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at System.Uri..ctor(String uriString) [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\Util\OctopusPhysicalFileSystem.cs:line 211 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    --- End of inner exception stack trace --- [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.Util.OctopusPhysicalFileSystem.GetPathRelativeTo(String fullPath, String relativeTo) in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\Util\OctopusPhysicalFileSystem.cs:line 224 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.CreateOctoPackPackage.AddFiles(XContainer nuSpec, IEnumerable`1 sourceFiles, String sourceBaseDirectory, String targetDirectory, String relativeTo) in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\CreateOctoPackPackage.cs:line 443 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
MSBUILD : OctoPack error OCT-1676060969:    at OctoPack.Tasks.CreateOctoPackPackage.Execute() in Z:\buildAgent\workDir\20ba9f2e0d5e4022\source\OctoPack.Tasks\CreateOctoPackPackage.cs:line 190 [T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj]
Done Building Project "T:\workspace\machine.engine\Machine.engine.Test\Machine.engine.Test.csproj" (default targets) -- FAILED

কারণ

কিছু সময় ব্যয় করার পরে, আমি একটি অভ্যন্তরীণ বিকাশযুক্ত উপাদান যা ব্যবহার করছিলাম তা ব্যবহার করছিলাম Microsoft.Net.Compilers। অভ্যন্তরীণ উপাদানটি ব্যবহার Microsoft.Net.Compilersকরার কারণটি হ'ল এই সমস্যাটি ( সি #: অবৈধ অভিব্যক্তি সংকলন নিক্ষেপ করা ) এবং এইভাবে সমাধান করা হয়েছে ( ভিজুয়াল স্টুডিও 2015 এর সাথে সি # 7 কীভাবে ব্যবহার করবেন? )। এর ফলস্বরূপ, যখন আমি মূল প্রোগ্রামটিতে উপাদানটি ইনস্টল করি, এটি Microsoft.Net.Compilersস্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায়।

সমাধান

আমার চারপাশের কাজটি ছিল, আমাদের অভ্যন্তরীণ উপাদান থেকে অনুসরণ করে আনইনস্টল করা (@ মলিকখালির উত্তর অনুসরণ করে)

PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers

এবং জেনকিনসে সি # 6 এর পরিবর্তে সি # 7 সংকলকটি বেছে নিয়ে পুনর্নির্মাণ করেছেন, এটি সবকিছু কাজ করছে এবং সঠিকভাবে নির্মাণ করছে তা নিশ্চিত করা।

শেষ পর্যন্ত আমার মূল প্রোগ্রামের চেয়ে আমি আমার অভ্যন্তরীণ উপাদানটি আপডেট করার চেষ্টা করেছি। এবং আবার নির্মাণের চেয়ে সবকিছু everything এটি কোনও সমস্যা বা সমস্যা ছাড়াই তৈরি করেছে।


8

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

রোজলিন ফোল্ডারটি ডিফল্টরূপে অন্তর্ভুক্ত ছিল না।


7

Microsoft.CodeDom.Providers.DotNetCompilerPlatform1.0.0 থেকে 1.0.1 থেকে আপগ্রেড করা আমার জন্য এটি ঠিক করেছে।


6

প্রকল্পের ফাইলটি খুলুন এবং সরান আমদানি প্রকল্প = ".. \ প্যাকেজগুলি \ মাইক্রোসফট.কোডডম.প্রভাইডার্স.ডটনেটকম্পিলার প্ল্যাটফর্ম .১.০.০ ... এর সাথে সমস্ত উল্লেখ ....

ওয়েবকনফিগ খুলুন এবং সমস্ত সিস্টেমের কোডডেডম সংকলক বৈশিষ্ট্যগুলি মুছে দিন


6

ইতিমধ্যে দ্বারা হিসাবে উল্লিখিত /programming/32780315#34391473 , দ্রুত ফিক্স প্যাকেজ ম্যানেজার ব্যবহার করা হয়, Tools> Nuget Package Manager> Package Manager Console, চালানোর জন্য

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

প্যাকেট ম্যানেজার কনসোল - কীভাবে খুলবেন

তবে একটি বিকল্প সমাধান (যা আপনার প্যাকেজগুলি নিখোঁজ হয়ে থাকলে স্বয়ংক্রিয়ভাবে এবং নিঃশব্দে পুনরায় তৈরি করে) আপনার প্রকল্পের Web.configফাইলটির একটি বৈশিষ্ট্য অপসারণ করা ।
( Web.configআপনার একই ডিরেক্টরিতে রয়েছে.csproj ফাইলের ))

Web.configকোনও পাঠ্য সম্পাদক (বা ভিজ্যুয়াল স্টুডিওর ভিতরে) ফাইলটি খুলুন ।
- ট্যাগে configuration> system.codedom> compilers> compiler language="c#;cs;csharp", সম্পূর্ণ অপসারণ typeঅ্যাট্রিবিউট।

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- ... -->
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

সংক্ষেপে, শুরু হওয়া লাইনটি সরিয়ে ফেলুন type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft

(সম্ভবত, একই ফিক্স ভিজ্যুয়াল বেসিকের পাশাপাশি সিশার্পের জন্যও কাজ করে, তবে আমি এটি চেষ্টা করি নি))

ভিজ্যুয়াল স্টুডিও বাকিটির যত্ন নেবে। আর নেই Server Error in '/' Application

উপরের জিপ ফাইলে প্রদত্ত উদাহরণ কোডে আপনি HTTP Error 403 যখন Ctrl+ টি চাপবেন তখন আপনি পাবেন F5

HTTP ত্রুটি 403.14 - নিষিদ্ধ

http://localhost:64195আপনার ওয়েব ব্রাউজারে এর সাথে প্রতিস্থাপনের চেষ্টা করুন http://localhost:64195/api/products
ওয়েব এপিআই এখন যা করা উচিত তা প্রদর্শন করে:

পণ্যযুক্ত একটি ওয়েব এপিআই

উস্কানিমূলক হিসাবে, আমি packageআমার ভিজ্যুয়াল স্টুডিও সমাধানের পুরো ডিরেক্টরিটি সরিয়ে দেওয়ার চেষ্টা করেছি।
আমি (পুনরায়) এটি তৈরি করার সাথে সাথে এটি স্বয়ংক্রিয়ভাবে এবং নিঃশব্দে পুনরায় তৈরি করা হয়েছিল।


সর্বশেষে তবে সর্বনিম্ন নয়, এখানে কোডটি যা ত্রুটিটি পুনঃপ্রবর্তন করে: http://schulze.000webhostapp.com/vs/SrvrErr-reproduce.zip (মূলত https://github.com/aspnet/AspNetDocs/tree/master/aspnet থেকে / ওয়েব-এপিআই / ওভারভিউ / অ্যাডভান্সড / কলিং-এ-ওয়েব-এপিআই-এ-নেট-ক্লায়েন্ট / নমুনা / সার্ভার / প্রোডাক্ট অ্যাপ )

সার্ভার সমস্যা


6

আমার ক্ষেত্রে কেবল বিন ফোল্ডারের ভিতরে সমস্ত কিছু মুছে ফেলা এবং পুনরায় সংশোধন করে আমার জন্য সমস্ত কাজ করা হয়েছিল।


2
আমি মনে করি এটি আরও সহজ এবং কার্যকর। একটি সংগ্রহস্থল থেকে একটি নতুন সংখ্যক হিসাবে কোনও প্রকল্প ক্লোন করার পরে সাধারণত আমি এই ত্রুটিটি পাই।
জোনাথন অরতেগা

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

6

প্রকল্পটি চালানোর সময় আমারও একই সমস্যা ছিল। আমি যে পদক্ষেপগুলি অনুসরণ করেছি তা এখানে।

  1. সমাধানে ডান ক্লিক করুন
  2. পরিষ্কার সমাধান নির্বাচন করুন
  3. সাফ সাফল্যের পরে আবার আপনার প্রকল্পটি তৈরি করুন
  4. প্রকল্পটি আবার চালান

এবারও আমি একই ত্রুটিটি দেখিনি। এটি প্রত্যাশার মতো কাজ করে।


কলিগগুলি জানিয়েছে যে কনসোল থেকে নিউগেট প্যাকেজ আপডেট করা কাজ করে তবে এটি কোনও কমান্ড না চালিয়েও কাজ করে। আমার নির্বাচিত উত্তর।
tsemer

5

আপনি যদি এই স্ট্যাকওভারফ্লো প্রশ্নটির মতো এমভিসিতে আপনার রেজার ভিউগুলি সংকলন করতে এসপিএনটকম্পিলার যুক্ত করে থাকেন , তবে রোজলিন নুগেট প্যাকেজটি যেখানে অবস্থিত সেখানে ফিজিক্যালপথ পরিবর্তন করুন (সাধারণত $ CscToolPath ভেরিয়েবলের মাধ্যমে নির্দেশিত ):

<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(CscToolPath)" />


5

ডিফল্ট ভিএস ২০১৫ টেমপ্লেটগুলির সাথে সমস্যাটি হ'ল সংকলকটি আসলে {outdir}_PublishedWebsites\tfr\bin\roslyn\ডিরেক্টরিতে অনুলিপি করে না , বরং {outdir}\roslyn\ডিরেক্টরিতে থাকে। এটি সম্ভবত আপনার স্থানীয় পরিবেশের থেকে পৃথক যেহেতু AppHarbor"ইন-প্লেস" সমাধান তৈরির পরিবর্তে আউটপুট ডিরেক্টরি ব্যবহার করে অ্যাপ্লিকেশনগুলি তৈরি করে।

এটি ঠিক করতে, .csprojএক্সএমএল ব্লকের ঠিক পরে ফাইলের শেষের দিকে নিম্নলিখিতটি যুক্ত করুন<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">...</Target>

<PropertyGroup>
  <PostBuildEvent>
    if not exist "$(WebProjectOutputDir)\bin\Roslyn" md "$(WebProjectOutputDir)\bin\Roslyn"
    start /MIN xcopy /s /y /R "$(OutDir)roslyn\*.*" "$(WebProjectOutputDir)\bin\Roslyn"
  </PostBuildEvent>
</PropertyGroup>

তথ্যসূত্র: https://support.appharbor.com/discussion/problems/78633-cant-build-aspnet-mvc-project-generated-from-vstudio-2015-enterprise


1
/ D বিকল্পটি কেবলমাত্র নতুন ফাইলগুলি অনুলিপি করে ("তারিখ" হিসাবে চিহ্নিত)। মেঘ / অ্যাজুরিতে স্থাপনের বিষয়টি মনে রাখবেন যেখানে স্থানীয় সময়ের সামনে / পিছনে সময় থাকতে পারে।
সর্বোচ্চ

4

আমার ক্ষেত্রে, বাসিমের অনুরূপ, একটি নিউগেট প্যাকেজ ছিল যা সংকলকটি বলছিল যে আমাদের সি # 6 প্রয়োজন, যা আমরা করিনি।

আমাদের নুগেট প্যাকেজটি সরিয়ে ফেলতে হয়েছিল Microsoft.CodeDom.Providers.DotNetCompilerPlatformযা পরে মুছে ফেলা হয়েছিল:

  1. <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" /> প্যাকেজস কনফিগ ফাইল থেকে
  2. <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> </compilers> </system.codedom>

ইন system.codedomনোড, আপনি দেখতে পারেন কেন এটা Roslyn আনার ছিল:compilerOptions="/langversion:6


1
আমাকে যা করতে হয়েছিল তা হ'ল নুগেট প্যাকেজ "মাইক্রোসফট.কোডডম.প্রভাইডার্স.ডট নেট নেটকম্পিলার প্ল্যাটফর্ম" আনইনস্টল করা এবং এটি আমার জন্য সমাধান করেছে (আমার প্রকল্পের লক্ষ্যগুলি। নেট 4.5.2)।
ব্লুস্কি

1
এটি আমার পক্ষে কাজ করেছে। এই অতিরিক্ত নির্ভরতা উভয়ের আশেপাশে রাখার কোনও কারণ নেই বলে আপনি মাইক্রোসফ্ট. নেট.কম্পেলারদেরও সরাতে চাইবেন।
সর্বদা

4

আপনার সমাধান এক্সপ্লোরারটিতে বিন ফোল্ডারটি মুছুন এবং আবার সমাধানটি তৈরি করুন। যে সমস্যার সমাধান করবে


ধন্যবাদ! এটি আমার পক্ষেও কাজ করেছিল। এটি ছাড়াও আমি আমার সমস্ত নুগেট প্যাকেজ আপডেট করেছি
আন্দ্রে ক্রাইমার

4

সার্ভারে আমার অ্যাপ্লিকেশন ইনস্টল করার সময় আমার একই সমস্যা ছিল যখন লোকালহোস্টে সবকিছু সঠিকভাবে কাজ করে।

এই সমাধানগুলির কোনওটিই খারাপ হয়ে উঠেনি, আমার সর্বদা একই ত্রুটি ছিল:

Could not find a part of the path 'C:\inetpub\wwwroot\myApp\bin\roslyn\csc.exe'

আমি এটি করে শেষ করেছি:

  • আমার সেটআপ প্রকল্পে, ডান ক্লিক, দেখুন> ফাইল সিস্টেম
  • একটি bin/roslynফোল্ডার তৈরি করুন
  • অ্যাড> ফাইল নির্বাচন করুন এবং এ থেকে সমস্ত ফাইল যুক্ত করুন packages\Microsoft.Net.Compilers.1.3.2\tools

এটি আমার সমস্যার সমাধান করেছে।


4

উইন্ডোজ পুনরায় বুট করুন।

এটিই একমাত্র সমাধান যা আমার পক্ষে পুনর্নির্মাণ, সামগ্রী মুছে ফেলার binএবং পুনর্নির্মাণের, ভিজুয়াল স্টুডিও পুনরায় চালু করার চেষ্টা করার পরে কাজ করেছিল ।

সি # /। নেট বিল্ডিংয়ের সরঞ্জামগুলি কতটা ভয়াবহ তা তার আর একটি উদাহরণ।

আমি মনে করি (অনেক উত্তর পড়ার পরে), সামগ্রিক উপসংহারটি হ'ল এই সমস্যার কারণ ও সমাধানটি সেটআপ এবং প্রকল্পের উপর নির্ভর করে, সুতরাং যদি একটি উত্তর কার্যকর না হয় তবে কেবল অন্য একটি চেষ্টা করুন। নুগেট প্যাকেজগুলির সাথে জড়িত হওয়া বা বিকাশ সরঞ্জামগুলি পুনরায় ইনস্টল করার আগে অদ্ভুত / ধ্বংসাত্মক সমাধানগুলি যেমন ভিজ্যুয়াল স্টুডিও পুনরায় চালু করা, পুনরায় চালু করা, পুনর্নির্মাণ করা ইত্যাদি FIR শুভকামনা!

(দ্রষ্টব্য: ভিজ্যুয়াল স্টুডিও 2019 ব্যবহার করে এবং প্রকল্প ফাইলটি মূলত ভিজ্যুয়াল স্টুডিও 2015 সালে তৈরি করা হয়েছিল Maybe সম্ভবত এটি কাউকে সমস্যাটি অনুসন্ধানে সহায়তা করে)

(সম্পাদনা: ইনস্টলার পুনরায় বুট করার অনুরোধ জানালে ভিজ্যুয়াল স্টুডিও ইনস্টলেশন ইনস্টল / সংশোধন করার পরে বা ভিজ্যুয়াল স্টুডিও আপডেট করার পরে রিবুট না করার কারণে এটি হতে পারে?)


3

আমার কাছে সিএসপিজেজ ফাইল ছাড়াই ওয়েবপ্রজেক্ট রয়েছে এবং এখানে উল্লিখিত সমাধানগুলি আমার পক্ষে কার্যকর হয়নি।

লক্ষ্য .NET কাঠামো পরিবর্তন করা, প্যাকেজ পুনরায় ইনস্টল করা ( Update-Package -reinstall) এবং তারপরে প্রকল্পটি তৈরি করা আমার পক্ষে কাজ করেছিল। এমনকি এই অপারেশনের পরে আপনি লক্ষ্য কাঠামোটিও আবার পরিবর্তন করতে পারেন (পরে নুগেট প্যাকেজগুলি পুনরায় ইনস্টল করুন)।


এটি একটি "ওয়েবসাইট প্রকল্প"। আমি এই কমান্ডটি কেবলমাত্র একটি প্যাকেজ পুনরায় ইনস্টল করতে ব্যবহার করেছি:update-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -reinstall
গারডাভিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.