我尝试将编译后的Web应用程序放置到临时目录中。
我有以下但它似乎没有效果。它会丢弃并创建控制器,但是msbuild任务似乎并没有将编译输出复制到我需要它的 obj / publish 目录中?
<Target Name="AfterBuild">
<CallTarget Targets="Publish" />
</Target>
<Target Name="Publish">
<RemoveDir Directories="$(SolutionDir)AsycLearn\obj\publish\" ContinueOnError="true" />
<MakeDir Directories="$(SolutionDir)AsycLearn\obj\publish\"/>
<MSBuild Projects="AsycLearn.csproj" Targets="ResolveReferences;_CopyWebApplication" Properties="WebProjectOutputDir=$(SolutionDir) AsycLearn\obj\publish\;OutDir=$(SolutionDir) AsycLearn\obj\publish\bin\" />
</Target>
任何想法?感谢
答案 0 :(得分:0)
看起来您需要引用输出路径,因为它们包含空格。否则,将在第一个空格处截断读取的值。这也将终止传递给任何其他任务的参数集。
Properties="WebProjectOutputDir=$(SolutionDir) AsycLearn\obj\publish\;OutDir=$(SolutionDir) AsycLearn\obj\publish\bin\"
应该是
Properties="WebProjectOutputDir="$(SolutionDir) AsycLearn\obj\publish\";OutDir="$(SolutionDir) AsycLearn\obj\publish\bin\""
需要转义序列"
,因为我们希望解析的值包含引号。