Saya mencoba membuat aplikasi web menggunakan Visual Studio 2015 dan .NET 4.5.1. Ketika saya mempublikasikan website, studio visual membuat folder bernama roslyn
.
Saya tahu ini digunakan untuk mengkompilasi kode dengan cepat, tetapi sayangnya penyedia hosting saya tidak mengizinkan saya untuk mengeksekusi kompiler di server mereka.
Bagaimana cara mempublikasikan situs web tanpa roslyn
seperti versi Visual Studio sebelumnya?
EDIT: Saya mendapat kesalahan ini saat mencoba mengakses situs web saya.
Sepertinya IIS mencoba mengeksekusi roslyn\csc.exe
tetapi akun pengguna saya tidak memiliki izin untuk melakukan itu. Dengan versi Visual Studio sebelumnya, kesalahan ini tidak muncul.
Jawaban:
Saya baru saja menghadapi masalah yang sama. Saat Anda membuat proyek web baru, dua paket nuget secara otomatis ditambahkan ke proyek Anda. Jika Anda menghapusnya, masalah Anda harus diselesaikan. Nama paketnya adalah: " Microsoft.CodeDom.Providers.DotNetCompilerPlatform " dan " Microsoft.Net.Compilers ".
sumber
Import
node,Target
node (EnsureNugetPackageBuildImports), danReference
node. Hapus juga<system.codedom>
node web.config Anda.Saya memiliki masalah yang sama. Ikuti langkah-langkah dari sini . Pada dasarnya:
Copot pemasangan paket
Dalam pengaturan profil terbitkan Anda, hapus centang "Izinkan situs yang telah dikompilasi menjadi dapat diperbarui". Anda dapat menemukan ini di bawah Pengaturan> Prakompilasi selama penerbitan> konfigurasikan
sumber
Setelah mencari yang sama dengan wajah saya, saya baru saja datang ke sini. Saya membaca jawaban di atas yang benar.
Saya memberikan jawabannya, karena inilah artikel yang bagus untuk menjelaskan:
Ini juga artikel yang sangat bagus, tentang sejarah exe ini
sumber
Setelah usaha yang tak terhitung jumlahnya .... dan menurut situs web ini . Saya menemukan bahwa Anda dapat menggunakan
/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
MSBuild untuk mengubah web.config, ini juga menyertakan kompiler roslyn dalam build. Outputnya sama dengan yang Anda dapatkan dengan menerbitkan di Visual Studio ke dalam sistem filesumber
Ada bug terbuka di repositori roslyn tentang masalah ini.
Dalam kasus saya, yang harus saya lakukan adalah menurunkan versi dll
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
dari versi1.0.6
ke1.0.5
.sumber
Saya mengalami masalah yang sama di Sept2016 ketika saya mengambil alih program ASP.NET yang ada. Saya menemukan bahwa ada beberapa versi dari dua paket kompilator yang disebutkan oleh Kemal yang diinstal di proyek solusi yang berbeda.
Jadi pertama-tama saya memperbarui untuk mendapatkannya sama. VS tidak memberi tahu Anda bahwa pembaruan tersedia dalam skenario ini (atau mungkin saya melewatkannya?)
Saya kemudian harus memulai ulang VS2015 agar paket dapat dibersihkan dengan benar.
sumber