MSBuild publier le site web du projet à partir de la ligne de commande ne Paquet au lieu de système de fichiers

J'ai un projet sur le web que je suis de la publication à partir de la ligne de commande, à l'aide d'un profil de publication qui ne quelques tâches supplémentaires (à l'exclusion de certains fichiers et dossiers, grunt, la publication d'un autre projet de tour).

L'une des deux machines A et B), il fonctionne très bien à partir de la droite sur > Publier... dans Visual Studio, et en choisissant le bon profil de publication.

Historiquement, sur les deux machines, il a également travaillé avec la ligne de commande suivante:

msbuild MyProject.csproj /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=myProfile  /v:n

Toutefois, maintenant, la machine B n'est pas l'édition correctement.

La publication du profil est configuré avec <WebPublishMethod>FileSystem</WebPublishMethod au sommet, cependant, dans les journaux, c'est de tenter une Package publier type au lieu de cela, sans raison apparente.

Voici tout le profil de publication:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <WebPublishMethod>FileSystem</WebPublishMethod>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish />
        <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
        <ExcludeApp_Data>False</ExcludeApp_Data>
        <publishUrl>..\Production</publishUrl>
        <DeleteExistingFiles>False</DeleteExistingFiles>
        <ExcludeFoldersFromDeployment>Content;Scripts;Pages</ExcludeFoldersFromDeployment>
        <ExcludeFilesFromDeployment>index-dev.html;index.html;debug.html;JSLintNet.json;Gruntfile.js;package.json;packages.config;publishall.bat;publishapi.bat</ExcludeFilesFromDeployment>
        <BuildDependsOn>
            $(BuildDependsOn);
            RunGrunt;
            PublishApi;
        </BuildDependsOn>
    </PropertyGroup>
    <Target Name="RunGrunt">
        <Message Text="Running grunt production..." />
        <Exec Command="grunt production" />
    </Target>
    <Target Name="PublishApi">
        <Message Text="Publishing API..." />
        <Exec Command="publishapi" />
    </Target>
</Project>

Comme vous le souhaitez, car il est juste de faire un Package, aucun fichier n'apparaît jamais dans le publishUrl répertoire. Encore une fois, le profil de publication fonctionne très bien à partir de VS2013, en utilisant le bouton droit cliquez sur publier.

Dans le journal de la machine, Un-je obtenir cet extrait:

**ValidatePublishProfileSettings**:
  Validating PublishProfile(myProfile) settings.

Mais sur la machine B, il n'apparaît pas.

Plus tard dans le journal sur Une machine qu'il contient:

**WebFileSystemPublish**:
  Creating directory "..\Production".
  Copying obj\Release\Package\PackageTmp\cache.manifest to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\cache.manifest.
  Copying obj\Release\Package\PackageTmp\Global.asax to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\Global.asax.
  Copying obj\Release\Package\PackageTmp\Web.config to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\Web.config.
  Copying obj\Release\Package\PackageTmp\bin\MyProject.dll to C:\SVN\Trunk\src\Web Sites\MyProject\..\Production\Blithe.Web.Collect.dll.

mais plus tard, dans le journal sur la machine B, à la place de ce qui précède, il contient:

**Package**:   
  Invoking Web Deploy to generate the package with the following settings:   
  $(LocalIisVersion) is 7  
  $(DestinationIisVersion) is 7   
  $(UseIis) is True   
  $(IisUrl) is <<<some url>>>  
  $(IncludeIisSettings) is False  
  $(_DeploymentUseIis) is False   
  $(DestinationUseIis) is False

La seule différence, je pense, entre les deux machines, c'est que j'ai installé une mise à jour sur la machine B (le problème de la machine) pour le " SDK Windows Azure pour .NET (VS2013) - 2.3'. Des idées comment et pourquoi cela pourrait avoir cassé?

J'ai essayé d'ajouter /p:PublishProfileRootFolder="Properties\PublishProfiles" comme indiqué ici mais cela ne fonctionne pas.

OriginalL'auteur Adam Marshall | 2014-04-08