0

複数の構成があるため、MSBuild を使用してソリューション レベルでビルドする必要があります。出力をパブリッシュする Web プロジェクトにカスタム ターゲットがあります。Web プロジェクトをターゲットとして指定すると、正常にビルドされます。しかし、Web アプリケーションを公開する必要があります。ソリューション レベルでビルドするときに、プロジェクトのカスタム ターゲットをビルドする方法はありますか?

このリンクを見つけましたが、解決策がわかりません。誰かがそれを少し分解できれば、それは大いに役立つでしょう.

これは、現在の PowerShell コマンドラインがどのように見えるかです。

& "$env:windir\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" `
    "..\..\Solution.sln" `
    "/t:WebApplication:PublishToFileSystem" `
    "/p:Configuration=$configuration;PublishDestination=$publishPath"

これ:PublishToFileSystemにより、次のメッセージが表示されて失敗します。

error MSB4057: The target "PublishToFileSystem" does not exist in the project. [C:\Source\Solution.sln]

.csproj ファイルのカスタム ターゲットは次のようになります。

<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>
4

1 に答える 1