वेबसाइट को बिना रोसलिन के प्रकाशित करें


91

मैं Visual Studio 2015 और .NET 4.5.1 का उपयोग करके वेब एप्लिकेशन बनाने का प्रयास कर रहा हूं। जब मैं वेबसाइट प्रकाशित करता हूं, तो दृश्य स्टूडियो नाम का फ़ोल्डर बनाता है roslyn

यहां छवि विवरण दर्ज करें

मुझे पता है कि यह मक्खी पर कोड संकलित करने के लिए उपयोग किया जाता है, लेकिन दुर्भाग्य से मेरे होस्टिंग प्रदाता ने मुझे अपने सर्वर पर संकलक को निष्पादित करने की अनुमति नहीं दी है।

roslynविज़ुअल स्टूडियो के पिछले संस्करण की तरह वेबसाइट को कैसे प्रकाशित किया जाए ?

संपादित करें: मुझे यह त्रुटि तब मिली जब मैं अपनी वेबसाइट पर आरोप लगाने की कोशिश कर रहा था।

यहां छवि विवरण दर्ज करें

ऐसा लगता है कि IIS निष्पादित करने की कोशिश कर रहा है, roslyn\csc.exeलेकिन मेरे उपयोगकर्ता खाते को ऐसा करने की अनुमति नहीं है। विजुअल स्टूडियो के पिछले संस्करण के साथ, यह त्रुटि दिखाई नहीं देती है।


इसके अलावा, रोजलिन सिर्फ DLL का एक सेट है। मेज़बान यह नहीं जानते या परवाह नहीं करते कि वे क्या करते हैं।
SLKs

3
@Slaks IIS csc.exe निष्पादित करने की कोशिश कर रहा है। संपादित देखें।
निओको यूलियावन

यदि आप Plesk का उपयोग कर रहे हैं, तो आप 'अपनी वेबसाइट के लिए समर्पित IIS अनुप्रयोग पूल' को अक्षम कर सकते हैं तो आपको उन पैकेजों को हटाने की भी आवश्यकता नहीं है!
वाहिद अमीरी

जवाबों:


183

मैं सिर्फ एक ही समस्या का सामना करना पड़ा है। जब आप एक नया वेब प्रोजेक्ट बनाते हैं, तो दो नगेट पैकेज स्वचालित रूप से आपकी परियोजना में जुड़ जाते हैं। यदि आप उन्हें हटा देते हैं, तो आपकी समस्या हल हो जानी चाहिए। पैकेज के नाम हैं: " Microsoft.CodeDom.Providers.DotNetCompilerPlatform " और " Microsoft.Net.Compilers "।


यह काम किया और तीसरे पक्ष के वेब-होस्टिंग प्रदाताओं के साथ उपयुक्त है। इस पर दो प्रश्न हैं- 1) क्या इन नुगेट पैकेजों को हटाने से किसी भी तरह से उत्पाद प्रभावित हो सकता है? 2) क्या इस अभ्यास से बचने के लिए इन पैकेजों को प्रोजेक्ट टेम्पलेट से ही हटाया जा सकता है?
4

1) उत्पाद के वर्कफ़्लो या तर्क पर कोई प्रभाव नहीं पड़ता है; लेकिन url ( itorian.com/2015/09/roslyn-cscexe-and-vbcexe-deployment-on.html ), जो @ Ajay2707 द्वारा प्रदान किया गया है, का कहना है कि यह पैकेज पृष्ठ लोड समय को प्रभावित करता है। 2) मुझे नहीं पता कि आप यह कैसे कर सकते हैं, लेकिन अगर आप वहाँ कोई समस्या नहीं कर सकते हैं।
केमल केफेली

3
दोनों NuGet संकुल को निकाला। हटाए गए कॉन्फ़िगरेशन की घोषणा। अभी भी यह फ़ोल्डर संकलन या प्रकाशित करते समय बनाया जा रहा है .. केवल मेरे आवेदन का उपयोग कर रहा है केवल NuGet पैकेज "Newtonsoft.Json" है। क्या मुझे इसे भी अनइंस्टॉल करने की आवश्यकता है?
रंजन कुमार

8
ध्यान रखें कि इन पैकेजों को हटाने से C # 6 सुविधाओं का उपयोग टूट जाएगा। इसे अनचेक करके हल किया जा सकता है "" पहले से तैयार साइट को अद्यतन करने योग्य होने दें "जो कि विचारों को पूर्व संकलित करती है।
रुटिक्स

9
@ रंजनकुमार: अपनी csproj फ़ाइल को टेक्स्ट एडिटर में खोलें और केमल के उत्तर में वर्णित NuGet संकुल के अनुरूप नोड्स निकालें। इसमें Importनोड्स, Targetनोड्स (EnsureNugetPackageBuildImports) और Referenceनोड्स शामिल हो सकते हैं । <system.codedom>अपने web.config के नोड को भी हटा दें ।
ब्रायन

16

मेरी भी यही समस्या थी। यहां से चरणों का पालन किया । मूल रूप से:

  1. पैकेज की स्थापना रद्द करें

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. आपकी प्रकाशित प्रोफ़ाइल सेटिंग में, "पहले से तैयार साइट को अद्यतन करने की अनुमति दें" को अनचेक करें। आप इसे सेटिंग्स> प्री-कंपाइल के दौरान प्रकाशन> कॉन्फ़िगर के तहत पा सकते हैं


7
इस तरह आप दृश्यों में C # 6 सुविधाओं का उपयोग नहीं कर सकते।
रॉक्स

2

उसी जारी किए गए चेहरे की खोज करने के बाद, मैं यहां आया। मैंने उपरोक्त उत्तर पढ़ा जो सही है।

मैं इसका उत्तर देता हूं, क्योंकि यहां समझाने के लिए अच्छा लेख है:

  1. क्यों प्रकाशित कोड में इस exe के साथ-साथ विकास का माहौल है?
  2. लाभ क्या है और कैसे निकालना है?

यह भी बहुत अच्छा लेख है, इस exe के इतिहास के बारे में


2

अनगिनत प्रयासों के बाद .... और इस वेबसाइट के अनुसार । मुझे लगता है कि आप /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=falseWeb.config को बदलने के लिए MSBuild में उपयोग कर सकते हैं , इसमें बिल्ड में रोसलिन कंपाइलर भी शामिल है। आउटपुट वही है जो आपको विजुअल स्टूडियो में फाइल सिस्टम में प्रकाशित करके मिलता है


वेबसाइट लिंक पर लेख को समझ नहीं सकते हैं, लेकिन MSBuild कार्यों में उस बिल्ड पैरामीटर को जोड़ने की आपकी सलाह का पालन करते हुए .. जैसा आपने कहा, आउटपुट तब ही होता है जब हम फाइल सिस्टम में प्रकाशित करते हैं। धन्यवाद
ब्रूस

2

इस मुद्दे के बारे में रोजलिन रिपॉजिटरी पर एक खुला बग है

मेरे मामले में सभी मैं dll डाउनग्रेड करने के लिए था करना था Microsoft.CodeDom.Providers.DotNetCompilerPlatformसंस्करण से 1.0.6करने के लिए 1.0.5


0

जब मैंने एक मौजूदा ASP.NET प्रोग्राम को संभाला है, तो Sept2016 में भी यही मुद्दा रहा है। मैंने पाया कि समाधान के विभिन्न परियोजनाओं में स्थापित केमल द्वारा वर्णित दो कंपाइलर पैकेज के कई संस्करण थे।

इसलिए सबसे पहले मैंने उन्हें वही पाने के लिए अपडेट किया। वी.एस. आपको यह नहीं बताता कि इस परिदृश्य में अपडेट उपलब्ध हैं (या शायद मैंने उन्हें याद किया है?)

मैं तो ठीक से साफ करने के लिए संकुल के लिए VS2015 को पुनरारंभ करना पड़ा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.