我正在尝试在编译好的web应用程序构建之后,将它放到临时目录中。
我有以下几点,但似乎行不通。它会删除并创建控制器,但是msbuild任务似乎没有将编译输出复制到我需要它的obj/目录中?
<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>有什么想法吗?谢谢
发布于 2016-01-15 21:49:31
看起来您需要引用输出路径,因为它们包含空格。否则,读取的值将在第一个空格处被截断。它还将终止传递给任何其他任务的参数集。
Properties="WebProjectOutputDir=$(SolutionDir) AsycLearn\obj\publish\;OutDir=$(SolutionDir) AsycLearn\obj\publish\bin\"
应该是
Properties="WebProjectOutputDir="$(SolutionDir) AsycLearn\obj\publish\";OutDir="$(SolutionDir) AsycLearn\obj\publish\bin\""
之所以需要转义序列",是因为我们希望解析值包含引号。
https://stackoverflow.com/questions/28753449
复制相似问题