2009-02-23 8 views
6

Est-ce que quelqu'un a un projet de déploiement Web pour travailler avec ASP.NET MVC? Lorsque j'ouvre le projet "déployé", MVC manque de nombreux fichiers et rend difficile la publication sur le serveur avec tous les fichiers manquants dans le projet. Ou ... Existe-t-il un meilleur moyen qu'un Web Deployment Project pour modifier Web.Config pour les applications MVC? J'ai des différences (SMTP et chaînes de connexion) qui doivent être mises à jour avant le téléchargement et les projets Web Deployment semblent être la bonne méthode.Utilisation de projets de déploiement Web VS 2008 avec ASP.NET MVC

Merci comme toujours!

Mise à jour: Il me manque au moins global.asax, global.asax.cs et default.aspx.cs.

Mise à jour 2: Une fois que je publie, j'obtiens cette erreur. Could not load type 'AppNamespace._Default'.

+0

Quels fichiers sont manquants? Je viens de faire un test et je n'ai vu aucun problème –

+0

Mes fichiers C# comme le global.asax.cs. Peut-être qu'il a échoué? –

+0

Je sais qu'il le compile, mais certains ne l'ont pas et le projet sorti a des fichiers avec l'exclaimation jaune. –

Répondre

5

Je n'ai pas encore configuré de projet de déploiement avec mon application mvc, mais j'ai utilisé cette technique décrite par Scott Hanselman et cela fonctionne très bien.

Managing Multiple Configuration File Environments

+0

Merci. Cela a fonctionné avec un peu de piratage. –

0

Je l'ai trouvé de travail pour moi.

Lorsque vous dites qu'il manque des fichiers, parlez-vous des fichiers System.Web.Mvc et autres? Vous devez vous assurer dans votre application Web que ces références sont configurées pour être copiées localement.

1

Les 3 fichiers spécifiques que vous avez répertoriés sont tous compilés dans le fichier binaire produit par votre projet Web ASP.NET MVC. Ouvrez votre .csproj et vous verrez:

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

Ouvrez votre binaire dans un outil tel que réflecteur et vous verrez les classes. Par conséquent, vous n'avez pas besoin de les déployer.

Ces étapes MSBuild dans MVC .csproj rendent la partie de ce que fait le projet de déploiement Web (c'est-à-dire la compilation d'un seul binaire pour le site) redondant. En ce qui concerne le remplacement de jeton, vous pouvez conserver votre projet de déploiement ou probablement copier les étapes MSBuilds correspondantes de votre fichier .wdproj dans votre fichier .csproj. Ce n'est pas quelque chose que j'ai fait, mais je vais bientôt essayer moi-même.

0

Je me suis déployé avec succès sur IIS6 en utilisant un projet de déploiement Web. J'ai eu des problèmes de déploiement sur Server 2003 en premier, mais dans mon cas c'était vraiment un problème d'environnement de scène. Je me suis d'abord déployé sur un IIS local pour vérifier s'il s'agissait d'un problème de construction ou d'environnement. Je n'ai pas utilisé config - remplacement.

Ceci est mon script de construction:

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

Voici mon 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> 
Questions connexes