Je dois construire au niveau de la solution en utilisant MSBuild car j'ai plusieurs configurations. J'ai une cible personnalisée dans mon projet Web qui publie la sortie. Je peux spécifier le projet web comme cible et ça se construit bien. Mais j'ai besoin de publier l'application web. Existe-t-il un moyen de créer la cible personnalisée d'un projet lors de la construction au niveau de la solution? J'ai trouvé ce link, mais je ne comprends pas la solution. Si quelqu'un pouvait le décomposer un peu, cela aiderait beaucoup.MSBuild: Créer une cible de projet personnalisée lorsque la solution est spécifiée
C'est ce que ma ligne de commande actuelle PowerShell ressemble:
& "$env:windir\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" `
"..\..\Solution.sln" `
"/t:WebApplication:PublishToFileSystem" `
"/p:Configuration=$configuration;PublishDestination=$publishPath"
Le :PublishToFileSystem
l'amène à l'échec, avec ce message:
error MSB4057: The target "PublishToFileSystem" does not exist in the project. [C:\Source\Solution.sln]
C'est ce que mon objectif personnalisé dans mon. fichier csproj ressemble à:
<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>