2009-02-23 30 views
6

के साथ वीएस 2008 वेब परिनियोजन परियोजनाओं का उपयोग करना क्या किसी को एएसपी.नेट एमवीसी के साथ काम करने के लिए वेब परिनियोजन परियोजना मिली है? जब मैं "तैनात" प्रोजेक्ट खोलता हूं, तो बहुत सी फाइलें गायब होती हैं कि एमवीसी की आवश्यकता होती है और परियोजना में सभी लापता फाइलों के साथ सर्वर को प्रकाशित करना मुश्किल हो जाता है।एएसपी.नेट एमवीसी

या ... क्या वेब संशोधित करने के लिए वेब परिनियोजन परियोजना से बेहतर तरीका है। एमवीसी ऐप्स के लिए कॉन्फिग? मेरे पास अंतर (एसएमटीपी और कनेक्शन स्ट्रिंग्स) हैं जिन्हें अपलोड करने से पहले अद्यतन करने की आवश्यकता है और वेब परिनियोजन परियोजनाएं सही विधि प्रतीत होती हैं।

हमेशा के रूप में धन्यवाद!

अद्यतन: मुझे कम से कम global.asax, global.asax.cs, और default.aspx.cs याद आ रही है।

अपडेट 2: एक बार जब मैं प्रकाशित करता हूं, तो मुझे यह त्रुटि मिलती है। Could not load type 'AppNamespace._Default'.

+0

क्या फ़ाइलें गुम हैं? मैंने अभी एक परीक्षण चलाया और किसी भी मुद्दे को नहीं देखा –

+0

मेरी सी # फाइलें global.asax.cs जैसी हैं। शायद यह असफल रहा? –

+0

मुझे पता है कि यह इसे संकलित करता है, लेकिन कुछ में यह नहीं है और प्रोजेक्ट आउटपुट में पीले विस्मयादिबोधक वाली फाइलें हैं। –

उत्तर

5

मैंने अभी तक अपने एमवीसी ऐप के साथ एक परिनियोजन प्रोजेक्ट सेट नहीं किया है, लेकिन मैं इस तकनीक का उपयोग स्कॉट हैंनसेलैन द्वारा उल्लिखित कर रहा हूं और यह बहुत अच्छा काम करता है।

Managing Multiple Configuration File Environments

+0

धन्यवाद। यह कुछ हैकिंग के साथ काम किया। –

0

मैं इसे मेरे लिए काम मिल गया है।

जब आप कहते हैं कि फाइलें गायब हैं, तो क्या आप System.Web.Mvc फ़ाइलों और ऐसे बारे में बात कर रहे हैं? आपको अपने वेब एप्लिकेशन में यह सुनिश्चित करना होगा कि ये संदर्भ स्थानीय रूप से प्रतिलिपि बनाने के लिए सेट हैं।

1

आपके द्वारा सूचीबद्ध 3 विशिष्ट फाइलें आपके एएसपी.नेट एमवीसी वेब प्रोजेक्ट द्वारा उत्पादित बाइनरी में संकलित हैं। अपने .csproj खोलें और आप देखेंगे:

<Compile Include="Global.asax.cs"> 
    <DependentUpon>Global.asax</DependentUpon> 
</Compile> 
<Compile Include="Default.aspx.cs"> 
    <DependentUpon>Default.aspx</DependentUpon> 
    <SubType>ASPXCodeBehind</SubType> 
</Compile> 

इस तरह के परावर्तक के रूप में एक उपकरण में अपने द्विआधारी खोलें और आप वर्गों देखेंगे। इसलिए आपको उन्हें तैनात करने की आवश्यकता नहीं है।

MVC में ये MSBuild चरणों .csproj क्या वेब तैनाती परियोजना करता है के हिस्सा प्रस्तुत करना (अर्थात साइट के लिए एक भी बाइनरी संकलन) अनावश्यक।

टोकन प्रतिस्थापन के लिए आप या तो अपनी परिनियोजन परियोजना को रख सकते हैं या संभवतः अपने .wproproj फ़ाइल से प्रासंगिक। MSproilds चरणों को अपने .csproj फ़ाइल में कॉपी कर सकते हैं। यह ऐसा कुछ नहीं है जो मैंने किया है, लेकिन जल्द ही कोशिश करने के लिए हूं।

0

मैंने वेब परिनियोजन प्रोजेक्ट का उपयोग करके आईआईएस 6 को सफलतापूर्वक तैनात किया है। मुझे पहले सर्वर 2003 में तैनात करने में समस्याएं थीं, लेकिन मेरे मामले में यह वास्तव में मंच-पर्यावरण की समस्या थी। मैं पहली बार स्थानीय आईआईएस को तैनात करता हूं कि यह जांचने के लिए कि क्या यह निर्माण या पर्यावरण की समस्या है। मैंने कॉन्फ़िगरेशन - प्रतिस्थापन का उपयोग नहीं किया था।

यह अपने निर्माण स्क्रिप्ट है:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "D:\Projekte\NiceProjectName\source\NiceProjectName_Build\NiceProjectName_Build.wdproj" /t:Build /p:Configuration=Release 

यहाँ है मेरे WDP:

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <ProductVersion>9.0.21022</ProductVersion> 
    <SchemaVersion>2.0</SchemaVersion> 
    <ProjectGuid>{E5E14CEB-0BCD-4203-9A5A-34ABA9C717EA}</ProjectGuid> 
    <SourceWebPhysicalPath>..\NiceProjectName</SourceWebPhysicalPath> 
    <SourceWebProject>{3E632DB6-6DB3-4BD0-8CCA-12DE67165B48}|NiceProjectName\NiceProjectName.csproj</SourceWebProject> 
    <SourceWebVirtualPath>/NiceProjectName.csproj</SourceWebVirtualPath> 
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <DebugSymbols>true</DebugSymbols> 
    <OutputPath>.\Debug</OutputPath> 
    <EnableUpdateable>true</EnableUpdateable> 
    <UseMerge>true</UseMerge> 
    <SingleAssemblyName>NiceProjectName_Build</SingleAssemblyName> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <DebugSymbols>false</DebugSymbols> 
    <OutputPath>..\..\deploy</OutputPath> 
    <EnableUpdateable>false</EnableUpdateable> 
    <UseMerge>true</UseMerge> 
    <SingleAssemblyName>NiceProjectName</SingleAssemblyName> 
    </PropertyGroup> 
    <ItemGroup> 
    </ItemGroup> 
    <Import Project="$(MSBuildExtensionsPath)\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets" /> 
</Project> 
संबंधित मुद्दे