2009-02-23 43 views
6

是否有人有过使用ASP.NET MVC的Web部署项目?当我打开“部署”项目时,MVC需要很多文件,并且很难发布到项目中所有缺少文件的服务器。在ASP.NET MVC中使用VS 2008 Web部署项目

或...有没有比Web部署项目更好的方式来修改MVC应用程序的Web.Config?我在上传和Web部署项目似乎是正确的方法之前需要更新的差异(SMTP和连接字符串)。

一如既往的感谢!

更新:我至少缺少global.asax,global.asax.cs和default.aspx.cs。

更新2:一旦我发布,我收到此错误。 Could not load type 'AppNamespace._Default'.

+0

什么文件丢失?我只是跑了一个测试,没有看到任何问题 – 2009-02-23 20:24:35

+0

我的C#文件像global.asax.cs。也许它失败了? – 2009-02-23 21:01:13

回答

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部署项目(即编译站点的单个二进制文件)冗余的部分。

至于令牌替换,您可以保留您的部署项目或可能将相关的MSBuild步骤从您的.wdproj文件复制到您的.csproj文件中。这不是我所做的,但我很快就会尝试自己。

0

我已经使用Web部署项目成功部署到IIS6。 我有问题首先部署到Server 2003,但在我的情况下,它真的是舞台环境的问题。 我首先部署到本地IIS以检查它是否是构建或环境问题。 我没有使用配置 - 替换。

这是我的构建脚本:

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> 
相关问题