Jenis penyedia CodeDom "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider" tidak dapat ditemukan


159

Ini adalah proyek WebApi menggunakan VS2015.

Langkah untuk mereproduksi:

  1. Buat proyek WebApi kosong
  2. Ubah Build output path dari "bin \" ke "bin \ Debug \"
  3. Lari

masukkan deskripsi gambar di sini

Semuanya berfungsi dengan baik sampai saya mengubah jalur Output Build dari "bin \" menjadi "bin \ Debug \" Bahkan, setiap jalur Output selain "bin \" tidak akan berfungsi.

Satu hal tambahan kecil adalah bahwa, memiliki jalur output lain ke mana saja akan bekerja selama saya meninggalkan build di "bin \".

Tolong bantu memberikan solusi untuk menyelesaikan ini. Saya kira itu akan menjadi masalah biaya pada penyebaran aktual.


Bolehkah saya bertanya mengapa Anda mengubah jalur output aplikasi web Anda? Terima kasih.
X-Mao

Pengecualian ini terjadi pada saya setiap kali saya menyegarkan aplikasi ASP.NET MVC yang sebelumnya dijalankan selama comilasi msbuild .
Nikolay Kostov

Hal yang sama terjadi pada saya. Itu dimulai setelah saya menambahkan referensi ke beberapa perpustakaan .dll. Saya memperbaikinya dengan menghapus dan menginstal ulang perpustakaan. Dan tidak tahu mengapa ini terjadi apa pun ..
Letie Techera

Jawaban:


127

Jika proyek Anda memiliki referensi Roslyn dan Anda menggunakannya di server IIS , Anda mungkin mendapatkan kesalahan yang tidak diinginkan di situs web karena banyak penyedia hosting masih belum meningkatkan server mereka dan karenanya tidak mendukung Roslyn.

Untuk mengatasi masalah ini, Anda harus menghapus kompiler Roslyn dari templat proyek . Menghapus Roslyn seharusnya tidak memengaruhi fungsionalitas kode Anda. Itu bekerja dengan baik untuk saya dan beberapa proyek lain (C # 4.5.2) di mana saya bekerja.

Lakukan langkah-langkah berikut:

  1. Hapus dari Paket Nuget berikut menggunakan baris perintah yang ditunjukkan di bawah ini ( atau Anda dapat menggunakan GUI dari manajer Paket Nuget dengan Mengklik Kanan pada Root Project Solution dan menghapusnya ).

    PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    PM> Uninstall-package Microsoft.Net.Compilers
  2. Hapus kode berikut dari file Web.Config Anda dan restart IIS . ( Gunakan metode ini hanya jika langkah 1 tidak menyelesaikan masalah Anda. )

    <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>


4
Saya telah terjebak pada "kesalahan server di aplikasi '/' selama sekitar satu hari sekarang. Saya mengkompilasi aplikasi Hello World sederhana di Visual Studio 2015, dan menyebarkannya ke server web, dan mendapatkan kesalahan ini. Menghapus baris <compiler> di atas juga membuat masalah ini hilang. Saya ingin tahu bagaimana ini bisa terjadi dan apakah ada solusi yang lebih baik. Saya merasa sangat tidak dapat dipercaya bahwa Anda tidak dapat menggunakan aplikasi hello world dengan cara ini tanpa menabrak masalah, seperti MS yang tidak melakukan pengujian: -)
user2728841

4
Untuk mengaktifkan Roslyn, Anda dapat melihat artikel berikut Mengaktifkan Platform .NET Compiler (“Roslyn”) di aplikasi ASP.NET Mengapa Roslyn melakukan kompilasi di ASP.NET? Mengaktifkan kompiler Roslyn baru di aplikasi ASP.NET Anda akan menghasilkan dua manfaat utama: * Dukungan untuk fitur bahasa baru * Waktu startup / pra-kompilasi aplikasi yang berpotensi ditingkatkan
vibs2006

1
Ketika saya membuat proyek web baru, itu datang dengan referensi yang sudah ada. Mengapa mereka diinstal secara default, apa tujuan mereka? Juga untuk pemahaman saya, Roslyn adalah kompiler C # yang baru. Bagaimana cara menghapusnya tidak merusak Visual Studio?
Jens Mander

@JensMander keduanya kompilasi runtimes. Di IIS kita perlu mengaktifkan Roslyn Compiler secara manual. Silakan lihat tautan di komentar saya sebelumnya mengenai artikel'Enabling the .NET Compiler Platform.
vibs2006

Saya mengalami kesalahan yang sama, akhirnya memperbarui paket terbaru untuk Microsoft.CodeDom.Providers.DotNetCompilerPlatform dipecahkan untuk saya.
Merah

47

Hati-hati mengikuti saran jawaban ini. Sementara itu memecahkan masalah yang ada, itu mungkin menyebabkan masalah yang berbeda di kemudian hari.

Saya mendapat masalah yang sama. Rupanya .NET compiler tidak dimuat ke GAC. Apa yang saya lakukan untuk menyelesaikannya adalah:

Pertama, dalam jenis konsol manajer paket:

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Sekarang, untuk beberapa alasan tuan-tuan yang baik di Microsoft telah memutuskan untuk tidak menginstalnya ke GAC untuk kita. Anda dapat melakukannya secara manual dengan membuka Command Prompt Perintah dan mengetik:

gacutil -i "C:\*PATH TO YOUR APP CODE*\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll"

Kesimpulan

Microsoft mencoba mendorong semua orang untuk melakukan segalanya dengan nuget yang bisa baik-baik saja tanpa ada bug yang Anda hadapi dengan sistem nuget. Cobalah untuk menggunakan proyek yang sama pada solusi yang berbeda, secara tidak sengaja (atau tidak) memperbarui salah satu dari banyak nuget yang digunakan pada salah satu dari mereka, dan jika Anda kurang beruntung Anda akan melihat apa yang saya maksud ketika Anda mencoba membangun solusi lain. Di sisi lain, meletakkan file di GAC juga dapat menyebabkan masalah di masa depan karena orang cenderung melupakan apa yang mereka taruh di sana dan kemudian ketika mengatur lingkungan baru mereka lupa memasukkan file-file ini. Solusi lain yang mungkin adalah dengan meletakkan file di folder pusat untuk dll pihak ke-3 (meskipun aneh untuk memanggil pihak ke-3 kompiler), yang menciptakan masalah referensi yang rusak ketika mengatur lingkungan baru. Jika Anda memutuskan untuk menginstal dll ke GAC, hati-hati dan ingat bahwa Anda melakukannya. Jika tidak, unduh nuget untuk setiap proyek lagi dan tahan semua bug yang mengganggu yang disebabkan olehnya (setidaknya dulu terjadi ketika saya akhirnya muak dan hanya meletakkan file di GAC). Kedua pendekatan ini mungkin membuat Anda sakit kepala dan menciptakan masalah, itu hanya masalah yang Anda sukai untuk ditangani. Microsoft merekomendasikan untuk menggunakan sistem nuget, dan umumnya, lebih baik mendengarkannya daripada ke programmer yang tidak dikenal di SO, kecuali jika Anda benar-benar muak dengan sistem nuget dan terbiasa berurusan dengan GAC cukup lama untuk itu menjadi alternatif yang lebih baik. untukmu. mengunduh nuget untuk setiap proyek lagi dan menanggung semua bug yang mengganggu yang disebabkan olehnya (setidaknya dulu terjadi ketika saya akhirnya muak dan hanya meletakkan file di GAC). Kedua pendekatan ini mungkin membuat Anda sakit kepala dan menciptakan masalah, itu hanya masalah yang Anda sukai untuk ditangani. Microsoft merekomendasikan untuk menggunakan sistem nuget, dan umumnya, lebih baik mendengarkannya daripada ke programmer yang tidak dikenal di SO, kecuali jika Anda benar-benar muak dengan sistem nuget dan terbiasa berurusan dengan GAC cukup lama untuk itu menjadi alternatif yang lebih baik. untukmu. mengunduh nuget untuk setiap proyek lagi dan menanggung semua bug yang mengganggu yang disebabkan olehnya (setidaknya dulu terjadi ketika saya akhirnya muak dan hanya meletakkan file di GAC). Kedua pendekatan ini mungkin membuat Anda sakit kepala dan menciptakan masalah, itu hanya masalah yang Anda sukai untuk ditangani. Microsoft merekomendasikan untuk menggunakan sistem nuget, dan umumnya, lebih baik mendengarkannya daripada ke programmer yang tidak dikenal di SO, kecuali jika Anda benar-benar muak dengan sistem nuget dan terbiasa berurusan dengan GAC cukup lama untuk itu menjadi alternatif yang lebih baik. untukmu.


41
Seharusnya tidak di GAC. Inti di balik pendekatan Nuget adalah agar proyek Anda menggunakan versi C # atau VB.NET tertentu tanpa mengubah apa pun pada sistem host. Lihat posting ini dari Damian Edwards dari MSFT: blogs.msdn.microsoft.com/webdev/2014/05/12/…
Sudhanshu Mishra

30
Majelis ini TIDAK termasuk dalam GAC, titik. Menempatkan mereka di GAC akan mengakibatkan sakit kepala akhirnya ketika seseorang yang perlu mempertahankan kode Anda tidak dapat menentukan mengapa kompiler yang salah digunakan.
EKW

5
-1 untuk pernyataan Microsoft. Sepertinya keren melakukannya hari ini. BTW, nuget memiliki banyak keunggulan yang menjadikannya sangat populer yang Anda abaikan begitu saja. Sekarang bayangkan tentang apa yang akan dipikirkan oleh tuan-tuan Microsoft tentang ini.
Fabio Milheiro

2
@YuvalPerelman Microsoft melakukan banyak hal yang merusak 3-4 tahun terakhir (seperti destabilisasi Visual studio, menghasilkan produk berkualitas sangat rendah). Kadang-kadang saya bahkan berdoa agar seluruh manajemen departemen pengembangan akan dipecat. Namun jelas bukan itu masalahnya!
Maris

2
MENDAPATKAN ketergantungan ini adalah hal paling menakjubkan yang pernah saya lihat.
Svend

31

Cukup tambahkan paket nuget berikutnya ke proyek Anda - Microsoft.CodeDom.Providers.DotNetCompilerPlatform.

Punya masalah yang sama.


Berhati-hatilah; itu menimpa 'compilerOptions' di web.config, jadi pastikan Anda menyimpan nilai khusus apa pun sebelum menginstal.
Radderz

19

Saya memiliki masalah yang sama dengan aplikasi saya yang bekerja di Vs2013 tetapi mendapatkan kesalahan setelah memperbarui ke Vs2015.

  1. Di Vs2015, klik kanan folder Referensi proyek, untuk membuka NuGet Package Manager
  2. Di bawah tab Browse, cari "DotNetCompilerPlatform" dan instal "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" lib

2
Terima kasih atas tipnya mengklik kanan folder Referensi proyek untuk membuka manajer paket
garyh

3
Coba hapus instalannya terlebih dahulu, lalu pasang kembali di NuGet. Itu berhasil bagi saya.
Matt

Anda seorang legenda
Mo D Genesis

16

Saya tahu ini adalah utas lama, tetapi saya ingin menunjukkan kemungkinan masalah versi DotNetCompilerPlatform.dll, f. ex. setelah pembaruan. Silakan periksa, apakah file Web.config baru yang dihasilkan berbeda dengan web.config yang Anda lepaskan, khususnya bagian system.codedom. Dalam kasus saya itu adalah perubahan versi dari 1.0.7 ke 1.0.8. Dll baru telah disalin ke server, tetapi saya tidak mengubah web.config lama (dengan beberapa pengaturan khusus server):

<pre>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.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.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
</pre>

Setelah saya memperbarui dua baris, kesalahan hilang.


1
Saya memiliki masalah dengan DotNetCompilerPlatform setiap satu kali saya memperbaruinya.
LarryBud

2
Jika Anda menghapus atribut versi, juga akan berfungsi dan mencegah peningkatan kesalahan pada pembaruan berikutnya.
MiguelSlv

Masalah yang sama saya baru saja kecuali saya harus memperbarui dari 2.0.0ke2.0.1
Rory McCrossan

12

Menurut langkah-langkah repro Anda, saya berasumsi bahwa mengubah jalur output di properti aplikasi adalah satu-satunya perubahan setelah Anda membuat aplikasi. Satu-satunya perubahan yang dilakukan adalah memberitahu Visual Studio untuk menempatkan majelis output MSBuild ke folder baru. Saat runtime, bagaimanapun, ASP.Net tidak akan tahu bahwa ia harus memuat majelis dari folder baru ini, bukan dari folder \ bin.

Jawaban ini menunjukkan cara untuk mengubah direktori build output dari aplikasi WebApi. Untuk mendapatkan kesalahan yang sama persis seperti yang ditampilkan dalam posting itu, Anda perlu mengomentari seluruh bagian <system.codedom> di web.config. Dan kemudian Anda dapat mengikuti instruksi untuk mengubah jalur output.

Setelah Anda mendapatkan aplikasi Anda berfungsi, Anda kemudian dapat membatalkan komentar pada bagian <system.codedom>. Jika Anda tidak menggunakan sintaks C # 6 baru dalam aplikasi Anda, Anda dapat menghapus instalan Microsoft.CodeDom.Providers.DotNetCompilerPlatform dari aplikasi Anda; jika tidak, Anda mungkin ingin menambahkan baris perintah berikut di acara post-build Anda,

xcopy /Q /Y "$(TargetDir)roslyn\*.*" "$(TargetDir)..\roslyn\"

Penyedia CodeDom baru selalu mencari folder "\ roslyn" di \ bin. Perintah di atas berfungsi sebagai solusi dan menyalin folder \ roslyn dari folder output baru Anda ke \ bin.

Dalam percobaan saya, alat terbitan Visual Studio, menerbitkan rakitan keluaran ke folder \ bin di lokasi penempatan terlepas dari pengaturan jalur output saya. Saya kira aplikasi Anda masih harus bekerja pada penyebaran yang sebenarnya.


10

Cara mudah - Project> Kelola Paket NuGet ...> Browse (tab)> di input pencarian atur ini: Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Anda dapat menginstal atau memperbarui atau menghapus dan menginstal kompiler ini

DotNetCompilerPlatform


8

Solusi lain yang mungkin:

Mulai ulang Instance Visual Studio Anda dengan Hak Administrator

masukkan deskripsi gambar di sini


4

Itu berhenti setelah penerbitan di server produksi. Alasan mengapa ini menunjukkan kepada saya kesalahan ini adalah karena itu digunakan untuk sub folder. Di IIS saya mengklik kanan pada subfolder dan mengeluarkan "Konversi ke aplikasi" dan setelah ini berhasil.


Konversi ke Aplikasi adalah yang saya butuhkan. (Itu adalah proyek baru yang belum diterbitkan sebelumnya.)
Patrick

Menggunakan subfolder adalah masalah saya juga, jadi saya pindah ke folder dasar dan semuanya mulai berfungsi.
J_L

4

Dalam kasus saya, ini terjadi ketika saya mengubah izin folder aplikasi dan akun IIS_IUSRS telah dihapus. Setelah saya menambahkan kembali IIS_IUSRS (IIS Manager-> YourWebApp -> Edit Izin -> Tambahkan IIS_IUSRS) ke folder aplikasi dan berfungsi.


Saya telah menambahkan izin IUSR, tetapi itu tidak memadai. Saya harus menambahkan "IIS_IUSRS" dan kemudian berhasil.
zacharydl

3

Inilah cara saya mengatasinya :

  1. Menghapus bin folder di direktori proyek.
  2. Klik pada Build Solution. Di VS2017 (Jalankan sebagai Admin)> Build> Build Solution .


2

Saya memiliki sejumlah proyek dalam solusi dan proyek web (masalah yang memberikan kesalahan ini) tidak ditetapkan sebagai proyek StartUp. Saya mengatur proyek web ini sebagai proyek StartUp, dan mengklik item menu "Debug" -> "Start Debugging" dan berhasil. Saya berhenti men-debug dan kemudian mencobanya lagi dan sekarang kembali berfungsi. Aneh.


2

Lalu masalahnya kembali. Saya mencopot keduanya Microsoft.CodeDom.Providers.DotNetCompilerPlatformdan Uninstall-package Microsoft.Net.Compilerstetapi tidak ada bantuan. Kemudian diinstal - tidak ada bantuan. Proyek yang dibersihkan dan dibangun tidak membantu. Restart server tidak membantu. Kemudian saya perhatikan bahwa proyek tersebut tidak memerlukan yang terbaru yang saat ini 1.0.5 tetapi 1.0.3 karena kesalahannya tidak dapat memuat versi 1.0.3. Jadi saya menginstal versi dll dan sekarang berfungsi.


1

ASP.NET tidak mencari bin/debugatau subfolder di bawah bin untuk majelis seperti jenis aplikasi lainnya. Anda dapat menginstruksikan runtime untuk mencari di tempat yang berbeda menggunakan konfigurasi berikut:

<configuration>
   <runtime>   
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin\Debug;bin\Release"/>
      </assemblyBinding>
   </runtime>   
</configuration>

1

Anda harus memperbarui paket "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" dan "Microsoft.Net.Compilers" di proyek Anda.


1

Dalam kasus saya, saya mendapatkan kesalahan ketika saya memiliki Aplikasi Web saya di 4.5.2 dan perpustakaan kelas referensi di 4.6.1. Ketika saya memperbarui Aplikasi Web ke versi 4.5.2 kesalahan itu hilang.


Memang benar ada kesalahan yang sama ketika menginstal Umbraco 8, untuk versi Net yang salah (diperlukan 4.7.2) dan bukannya 4.5.2 (default VS 2017)
Bunkerbuster

1

Saya mendapatkan kesalahan ini karena pengguna kumpulan aplikasi saya diatur ke ApplicationPoolIdentity. Saya mengubahnya menjadi akun pengguna / layanan yang memiliki akses ke folder dan kesalahan hilang.


1

Inilah temuan saya. Saya juga menghadapi masalah ini pagi hari ini. Saya baru saja menambahkan pengguna saya saat ini ke kumpulan aplikasi tempat aplikasi berjalan.

Langkah:

  1. Buka IIS

  2. Klik pada kumpulan aplikasi

  3. Pilih kumpulan aplikasi Anda di mana Anda mendapatkan masalah

  4. Klik Kanan -> pengaturan lanjutan

  5. Klik pada ikon tiga titik di sebelah identitas

  6. Sekarang pilih akun khusus

  7. Berikan nama pengguna dan Kata Sandi PC Anda

  8. Menyimpan

Segarkan aplikasi Anda .. dan akan mulai berfungsi. Ada beberapa masalah keamanan untuk mengakses dll.


1

hapus instalan paket dari konsol manajer paket dari perintah di bawah ini

PM> Hapus instalan-paket Microsoft.CodeDom.Providers.DotNetCompilerPlatform

PM> Hapus instalan-paket Microsoft.Net.Compiler

dan kemudian instal lagi dari nuget manager masukkan deskripsi gambar di sini


1

Jika Anda baru saja menginstal atau memperbarui Microsoft.CodeDom.Providers.DotNetCompilerPlatformpaket, periksa kembali apakah versi paket yang dirujuk di proyek Anda menunjuk ke versi yang benar, dan sama, dari paket itu:

  • Di ProjectName.csproj, pastikan ada <Import>tag untuk Microsoft.CodeDom.Providers.DotNetCompilerPlatformdan menunjuk ke versi yang benar.

  • Di ProjectName.csproj, pastikan bahwa <Reference>tag untuk Microsoft.CodeDom.Providers.DotNetCompilerPlatformada, dan menunjuk ke versi yang benar, baik dalam Includeatribut dan anak <HintPath>.

  • Dalam proyek itu web.config, pastikan bahwa <system.codedom>tag ada, dan bahwa <compiler>tag anaknya memiliki versi yang sama dalam typeatributnya.

Untuk beberapa alasan, dalam kasus saya upgrade paket ini dari 1.0.5 ke 1.0.8 menyebabkan <Reference>tag dalam .csprojuntuk memiliki nya Includemenunjuk ke versi lama 1.0. 5 .0 (yang saya hapus setelah memutakhirkan paket), tetapi yang lainnya menunjuk ke versi 1.0 yang baru dan benar. 8 .0.


1

Pastikan proyek Anda telah sepenuhnya dibangun!

Klik pada tab 'Output' dan pastikan Anda tidak memiliki sesuatu seperti:

========== Bangun Kembali Semua: 14 berhasil, 1 gagal, 0 dilewati =========

Dan buka bin folder dan periksa untuk melihat apakah itu terbaru.

Saya memiliki sejumlah kesalahan penulisan naskah yang awalnya saya abaikan, lupa bahwa mereka melanggar build dan menyebabkan tidak ada DLL yang disalin.



1

Dalam kasus saya proyek web saya tidak dimuat dengan benar (itu menunjukkan proyek tidak tersedia) maka saya harus memuat ulang proyek web saya setelah membuka studio visual saya dalam mode admin kemudian semuanya bekerja dengan baik.


0

Saya hanya punya masalah yang sama dan itu karena saya pindah lokasi proyek dan hanya perlu membuat ulang direktori virtual.


0

Pengecualian yang kami temui bukan pada lokal tetapi pada server jauh, Azure CI membacanya dari folder paket tetapi versi kompiler yang disebutkan di atas tidak ditemukan.

Untuk memperbaiki ini, kami memodifikasi file proyek untuk membuatnya menjadi seperti

Itu tidak merujuk salah satu paket di sini langsung merujuk variabel lingkungan.

Ini memperbaiki masalah, namun dalam kasus kami, kami tidak menggunakan paket langsung dari "package.config" sebagai gantinya kami memiliki folder terpisah untuk menjaga integritas versi di seluruh tim.


0

Pergi ke inetmgr dari mulai perintah Di IIS manager console pilih folder aplikasi di bawah Default Web Site klik kanan pada folder itu kemudian Konversikan ke Aplikasi Jalankan file .asmx dengan Mengaktifkan Ini menyelesaikan masalah


0

Periksa apakah BINfolder diunggah sepenuhnya atau tidak ada dalam file.


Saya juga menghadapi masalah yang sama, cukup baru di asp.net
Prashant Pimpale

0

Mengenai kesalahan ini, saya sudah mencoba:

  • Membersihkan dan membangun kembali proyek
  • Membongkar dan memuat ulang proyek
  • Memodifikasi Kerangka Target
  • Memodifikasi jalur Output
  • Menambahkan nugget ke GAC
  • Menghapus paket uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform uninstall-package Microsoft.Net.Compilersdan memasangnya kembali.

Walaupun semua ini tampaknya merupakan solusi yang valid, saya hanya dapat menghasilkan kesalahan baru dan pada akhirnya, kesalahan tersebut tampaknya dapat ditampilkan ketika referensi / nuget tertentu hilang.

Dalam kasus saya, saya baru saja menginstal ulang Microsoft Office dan mereferensikan majelis seperti Microsoft.Office.Core. Instalasi baru tampaknya tidak menyertakan paket yang diperlukan, yang membuatnya jadi solusi saya tidak bisa membangun dengan benar.

Saya dapat menyelesaikan masalah ini dengan mengolah kembali kode saya ke titik di mana saya tidak perlu referensi Microsoft.Office, tetapi bisa menyelesaikannya dengan mencari paket yang diperlukan dan menginstalnya sesuai.

Tampaknya seperti pesan kesalahan yang tidak jelas dari Visual Studio.


0

Jika Anda telah mengerjakan suatu proyek dan ini baru saja muncul sebagai kesalahan. REBOOT komputer Anda (atau server dalam kasus saya) ini memperbaiki masalah bagi saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.