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
Vous devez vous connecter pour publier un commentaire.
Ajoutant:
/p:VisualStudioVersion=12.0
de la commande a fonctionné.
La Machine B avait installé Visual Studio 2008 sur elle ainsi, alors que la Machine n'a pas. Réglage de la version 12.0, ou même 11.0 œuvres. Le paramètre 10.0 ignore le profil de publication et fasse un package à installer.
Étonnamment, il semble par défaut à 10,0.
Cette question n'est pas apparue avant la mise à jour de Azure SDK 2.3, qui A eu quelques modifications sur le site Web de Publier, de sorte que peut bien avoir conduit à cette question.
OriginalL'auteur Adam Marshall