私が直面する問題は私のターゲット 'CopyBuildFiles'がコピーしないので、ビルドフォルダを見つけることができません。ビルドフォルダはプロパティ$(BuildFolder)で定義されています。このフォルダ名はdate.timeに基づいて作成され、 'CopyBuildFiles'より前に実行されていた以前のターゲットの1つで作成されます。MSBuildコピータスクの問題
$(BuildFolder)からこれを派生させるのではなく、@(SrcFiles)のパスをハードコードすると動作します。
ここで何が起こっているのですか?どのように解決できますか?
多くのありがとうございます。
<PropertyGroup>
<year>$([System.DateTime]::Now.ToString("yy"))</year>
<month>$([System.DateTime]::Now.ToString("MM"))</month>
<day>$([System.DateTime]::Now.ToString("dd"))</day>
<time>$([System.DateTime]::Now.ToString("HHmm"))</time>
<AssemblyFileVersionAttribute>[$(year).$(month).$(day).$(time))] </AssemblyFileVersionAttribute>
<BuildFolder>c:\website.builds\$(AssemblyFileVersionAttribute)\</BuildFolder>
<IISFolder>c:\website.publish\</IISFolder>
<LogDirectory>C:\website.builds.logs</LogDirectory>
<LogFile>C:\website.builds.logs\Buildlog_$(AssemblyFileVersionAttribute).txt</LogFile>
</PropertyGroup>
<Target Name="PreBuild">
<MakeDir Directories="$(LogDirectory)" />
<RemoveDir Directories="$(IISFolder)"></RemoveDir>
<MakeDir Directories="$(BuildFolder)" />
<MakeDir Directories="$(IISFolder)" />
</Target>
<Target Name="Compile">
<MSBuild Projects="$(MSBuildStartupDirectory)\websitev2.sln" Properties="OutDir=$(BuildFolder)\" />
</Target>
<ItemGroup>
<SrcFiles Include="$(BuildFolder)_PublishedWebsites\**\*.*"/>
</ItemGroup>
<Target Name="CopyBuildFiles"
Inputs="@(SrcFiles)"
Outputs=
"@(SrcFiles->'$(IISFolder)%(RecursiveDir)%(Filename)%(Extension)')">
<Copy SourceFiles="@(SrcFiles)"
DestinationFiles="@(SrcFiles->'$(IISFolder)%(RecursiveDir)%(Filename)%(Extension)')"
/>
</Target>
<Target Name="Deploy">
<CallTarget Targets="PreBuild" />
<CallTarget Targets="Compile" />
<CallTarget Targets="CopyBuildFiles" />
</Target>
あなたが持つコマンドラインからMSBuildを実行する場合は '/冗長:DIAG' フラグを、出力が何と言っていますか? – SuperJumbo