Visual studio 2013 生成后事件不适用于msbuild

Visual studio 2013 生成后事件不适用于msbuild,visual-studio-2013,msbuild,Visual Studio 2013,Msbuild,我有一个引用多个项目的解决方案。在其中一个引用的项目中,我添加了以下Post事件(将其.exe文件复制到解决方案输出) 当从Visual Studio编译时,这非常有效,但从msbuild运行时失败(退出,代码为4) 似乎在使用msbuild时,OutDir(以及其他宏)的值是不同的 例如:$(OutDir) 不知道他们为什么如此不同,有什么想法吗?我们使用buildAgent和buildController TFS设置构建如果您不使用msbuild构建解决方案,而是直接进行项目,Solutio

我有一个引用多个项目的解决方案。在其中一个引用的项目中,我添加了以下Post事件(将其.exe文件复制到解决方案输出)

当从Visual Studio编译时,这非常有效,但从msbuild运行时失败(退出,代码为4

似乎在使用msbuild时,OutDir(以及其他宏)的值是不同的

例如:$(OutDir)


不知道他们为什么如此不同,有什么想法吗?我们使用buildAgent和buildController TFS设置构建

如果您不使用msbuild构建解决方案,而是直接进行项目,SolutionDir可能为空?您还说OutDir是D:\B\1\Src\u PMC\。。。但是xcopy的目标是$(SolutionDir)UIBackendSSRSReports\$(OutDir),因此这永远都不是有效的路径?当直接从VS构建时,这是可行的,问题是为什么通过msbuild构建时它不可行?如果我更改OuDir以匹配msbuild提供的内容,那么VS中的构建将失败。它似乎是一个或另一个,但不是两个。@Eliel Tawil您将哪些参数传递给
msbuild
?最重要的是:你是用它来构建解决方案还是仅仅是项目?如果执行
msbuild.csproj
操作,将得到与生成定义中的
msbuild.sln
@MartinUllrich不同的结果,我不提供任何参数,而是生成.sln文件。我添加的Post事件是针对该解决方案中的一个项目的。
xcopy /y "$(TargetName).*" "$(SolutionDir)UIBackendSSRSReports\$(OutDir)"
In VS = D:\Workspace-ET\source_SSRSBackEnd\Common\BackEnd Automation\BackEndSSRSReports\UIBackendSSRSReports\bin\Debug
In msbuild =  " D:\B\1\Src_PMC-QA-Automation\BackEndSSRSReports_ssrsBranch\bin\