2009-02-23 12 views
6

誰かがASP.NET MVCで動作するWebデプロイメントプロジェクトを持っていますか? 「デプロイ済み」プロジェクトを開くと、MVCに必要なファイルが不足していて、プロジェクトに欠落しているファイルがすべてあるサーバーに公開するのが難しくなります。ASP.NET MVCでVS 2008 Webデプロイメントプロジェクトを使用する

または... MVCアプリケーションのWeb.Configを変更するWeb配置プロジェクトよりも良い方法はありますか?私は、アップロードする前に更新する必要がある違い(SMTPと接続文字列)とWeb配置プロジェクトが正しい方法であるように思えます。

いつものように!

アップデート:少なくともglobal.asax、global.asax.cs、default.aspx.csがありません。

更新2:一度公開すると、このエラーが発生します。 Could not load type 'AppNamespace._Default'.

+0

欠けている何のファイル?私はちょうどテストを実行し、何の問題も見ませんでした –

+0

私のC#ファイルはglobal.asax.csのようです。多分それは失敗しましたか? –

+0

私はそれがそれをコンパイルすることは知っていますが、いくつかは持っていないし、出力されたプロジェクトは黄色の叫び声でファイルを持っています。 –

答えて

5

私はmvcアプリケーションでDeploymentプロジェクトをまだセットアップしていませんが、Scott Hanselmanが概説したこのテクニックを使用しています。

Managing Multiple Configuration File Environments

+0

ありがとうございます。これはいくつかのハッキングで動作しました。 –

0

私はそれが私のために働いていました。

ファイルがないと言うと、System.Web.Mvcファイルなどについて話していますか? Webアプリケーションでこれらの参照がローカルにコピーされるように設定する必要があります。

1

リストした3つの特定のファイルはすべて、ASP.NET MVC Webプロジェクトによって生成されたバイナリにコンパイルされます。あなたの.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 .csproj内のこれらのMSBuildステップは、Webデプロイメントプロジェクトが行うこと(すなわち、サイトの単一のバイナリをコンパイルすること)が冗長であるものの部分をレンダリングします。

トークンの置換に関しては、Deploymentプロジェクトをそのままにするか、おそらく関連するMSBuildsのステップを.wdprojファイルから.csprojファイルにコピーすることができます。これは私がやったことではありませんが、すぐに自分自身を試してみることです。

0

Web配置プロジェクトを使用してIIS6に正常に展開できました。 最初にServer 2003にデプロイする際に問題がありましたが、私の場合は実際にはステージ環境の問題でした。 まず、ローカルIISに展開してビルドまたは環境の問題であるかどうかを確認します。 私はconfig - replacementを使用しませんでした。

これは私のビルドスクリプトである:ここで

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> 
関連する問題