Question

Folks,

En un mot, je veux reproduire cette boîte de dialogue: text alt

Il est un projet Visual Studio 2010 ASP.Net MVC. Si j'exécuter cette commande, je reçois tous les fichiers que je veux, y compris les web.configs transformées dans le « C: \ toDeploy ». Répertoire

Je veux reproduire cela sur la ligne de commande pour que je puisse l'utiliser pour un environnement d'assurance qualité construction.

Je l'ai vu plusieurs articles sur la façon de le faire sur la ligne de commande pour Déploie à distance, mais je veux juste le faire pour Déploie du système de fichiers.

Je sais que je pourrais reproduire cette fonctionnalité à l'aide des tâches ou des scripts NANT râteau, mais je veux le faire en utilisant ce mécanisme, donc je ne suis pas me répéter.

Je l'ai étudié ce un peu plus, et je l'ai trouvé ces liens, mais aucun d'entre eux résous proprement:

Merci à l'avance!

Était-ce utile?

La solution

Ok, enfin compris cela.

La ligne de commande dont vous avez besoin est:

msbuild path/to/your/webdirectory/YourWeb.csproj /p:Configuration=Debug;DeployOnBuild=True;PackageAsSingleFile=False

Vous pouvez modifier où les résultats du projet par l'ajout d'une propriété de outdir=c:\wherever\ dans le répertoire / p. Section

Cela va créer la sortie à:

path/to/your/webdirectory/obj/Debug/Package/PackageTmp/

Vous pouvez ensuite copier ces fichiers dans le répertoire ci-dessus en utilisant la méthode que vous souhaitez.

J'ai tout cela travailler comme une tâche de râteau rubis en utilisant Albacore . Je suis en train de tout faire pour que je puisse réellement mettre comme contribution au projet. Mais si quelqu'un veut le code avant cela, laissez-moi savoir.

Une autre ride que j'ai trouvé qu'il mettait dans les paramètres Tokenizé dans le web.config. Si vous n'avez pas besoin de cette fonctionnalité, assurez-vous d'ajouter:

/p:AutoParameterizationWebConfigConnectionStrings=false

Autres conseils

Je pensais que je posterai une autre solution que j'ai trouvé, je l'ai mis à jour cette solution afin d'inclure un fichier journal.

Ceci est similaire à publier une application Web à partir de la ligne de commande , mais juste nettoyé et ajouté fichier journal. également vérifier la source originale http://www.digitallycreated.net/Blog/59/locally-publishing-a-vs2010-asp.net-web-application-using-msbuild

Créer un MSBuild_publish_site.bat (nommez-tout) à la racine de votre projet d'application Web

set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
set destPath=C:\Publish\MyWebBasedApp\

:: clear existing publish folder
RD /S /Q "%destPath%"

call %msBuildDir%\msbuild.exe  MyWebBasedApp.csproj "/p:Configuration=Debug;PublishDestination=%destPath%;AutoParameterizationWebConfigConnectionStrings=False" /t:PublishToFileSystem /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_Publish_LOG.log

set msBuildDir=
set destPath=

Mise à jour de votre dossier de projet d'application Web MyWebBasedApp.csproj par adjonction xml sous la balise <Import Project=

<Target Name="PublishToFileSystem" DependsOnTargets="PipelinePreDeployCopyAllFilesToOneFolder">
<Error Condition="'$(PublishDestination)'==''" Text="The PublishDestination property must be set to the intended publishing destination." />
    <MakeDir Condition="!Exists($(PublishDestination))" Directories="$(PublishDestination)" />

    <ItemGroup>
        <PublishFiles Include="$(_PackageTempDir)\**\*.*" />
    </ItemGroup>

    <Copy SourceFiles="@(PublishFiles)" DestinationFiles="@(PublishFiles->'$(PublishDestination)\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="True" />
</Target>

cela fonctionne mieux pour moi que d'autres solutions.

Consultez ci-après pour plus d'informations:

1) http://www.digitallycreated.net/Blog/59/locally-publishing-a-vs2010-asp.net-web-application-using-msbuild

2) publier une application Web à partir de la ligne de commande

3) projet construction Visual Studio via la commande ligne

Ma solution pour CCNET transformation Web.config :

<tasks>
    <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <workingDirectory>E:\VersionesCC\Trunk_4\SBatz\Gertakariak_Orokorrak\GertakariakMS\Web</workingDirectory>
        <projectFile>GertakariakMSWeb2.vbproj</projectFile>
        <targets>Build</targets>
        <timeout>600</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
        <buildArgs>
            /noconsolelogger /p:Configuration=Release /v:diag
            /p:DeployOnBuild=true
            /p:AutoParameterizationWebConfigConnectionStrings=false
            /p:DeployTarget=Package
            /p:_PackageTempDir=E:\Aplicaciones\GertakariakMS2\Web
        </buildArgs>
        </msbuild>
</tasks>

VS2012 et au-dessus, vous pouvez vous référer aux éléments existants publier des profils sur votre projet avec msbuild 12,0, cela équivaudrait à un clic droit et publier ... la sélection d'un profil de publication ( « MyProfile » sur cet exemple):

msbuild C:\myproject\myproject.csproj "/P:DeployOnBuild=True;PublishProfile=MyProfile"

J'ai une solution pour Visual Studio 2012: https://stackoverflow.com/a/15387814/2164198

Cependant, il fonctionne sans Visual Studio installé du tout! (Voir UPDATE ). Je ne l'ai pas vérifié encore si l'on peut obtenir toutes les choses nécessaires à partir de Visual Studio Express 2012 pour l'installation Web.

Un fichier msbuild complet avec l'inspiration de CubanX

    <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Publish">
        <RemoveDir Directories="..\build\Release\Web\"
                     ContinueOnError="true" />        
       <MSBuild Projects="TheWebSite.csproj"
                Targets="ResolveReferences;_CopyWebApplication"
                Properties="Configuration=Release;WebProjectOutputDir=..\build\Release\Web;OutDir=..\build\Release\Web\bin\"
        />  
    </Target>
    <Target
        Name="Build"
        DependsOnTargets="Publish;">
    </Target>   
</Project>

Cela place le site publié dans le Web .. \ build \ dossier de presse

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top