Ich habe ein Webprojekt, das ich von der Befehlszeile aus veröffentliche, die ein paar zusätzliche Aufgaben ausführt (schließt einige Dateien und Ordner aus, grunt, veröffentlicht einen anderen) Projekt der Reihe nach).MSBuild veröffentlichen Webprojekt von der Befehlszeile tut Paket anstelle von FileSystem
Ein zwei Maschinen (A und B), funktioniert es mit der rechten Maustaste> Veröffentlichen ... in Visual Studio, und wählen Sie das richtige Veröffentlichungsprofil.
Historisch gesehen, auf beiden Maschinen, es hat auch mit der folgenden Befehlszeile gearbeitet:
msbuild MyProject.csproj /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=myProfile /v:n
aber jetzt, Maschine B nicht korrekt veröffentlicht.
Das Veröffentlichungsprofil ist mit <WebPublishMethod>FileSystem</WebPublishMethod
an der Spitze konfiguriert, aber aus den Protokollen versucht es Package
veröffentlichen stattdessen, ohne ersichtlichen Grund.
Hier ist das vollständige Profil veröffentlichen:
<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>
Wie zu erwarten ist, weil es nur ein Package
tun, keine Dateien immer im publishUrl
Verzeichnis erscheinen. Auch hier funktioniert das Veröffentlichungsprofil von VS2013 mit Rechtsklick-Veröffentlichung.
Im Protokoll auf Maschine A bekomme ich diesen Auszug:
**ValidatePublishProfileSettings**:
Validating PublishProfile(myProfile) settings.
Aber in Maschine B scheint es nicht.
später im Protokoll auf Maschine A enthält:
**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.
aber später im Protokoll auf Maschine B, anstelle der oben, es enthält:
**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
Der einzige Unterschied, den ich Ich kann mir zwischen den beiden Rechnern vorstellen, dass ich ein Update auf dem Rechner B (dem Problem Rechner) für 'Windows Azure SDK für .NET (VS2013) - 2.3' installiert habe. Irgendwelche Ideen wie und warum das könnte es gebrochen haben?
Ich habe versucht, /p:PublishProfileRootFolder="Properties\PublishProfiles"
wie erwähnt here hinzuzufügen, aber das hat nicht funktioniert.