$(OutDir) = \bin\Release (in local with VS2012)
$(OutDir) = C:\\...\BuildDefinition\Binaries (on TFS2010 Team Build)
如何在Pre-build事件中编写一个在两种情况下有效的XCOPY?
在我的project2中,我引用了project1。所以我需要这样做:
在当地:
XCOPY /Y $(SolutionDir)Project1\$(OutDir)Project1.dll"
"$(SolutionDir)MyProject2\Objects\Assemblies"
团队建设
XCOPY /Y "$(OutDir)Project1.dll" "$(SolutionDir)Project2\Objects\Assemblies"
谢谢。
答案 0 :(得分:6)
这是一个有用的构建事件检查:
if "$(BuildingInsideVisualStudio)" == ""
这将允许您在Visual Studio中定义构建事件,而不是在TeamBuild(msbuild)上运行时
答案 1 :(得分:2)
作为最佳实践,您不应在预构建目标中从TFS构建或Visual Studio调用XCOPY以获取所需的DLL引用。
在项目2中创建项目引用到项目1.这将确保正确编译和引用最新代码。
TFS会自动为您移动dll。 Visual Studio将自动知道如何找到它,如果您将引用设置为本地复制,则会将两个dll移动到输出文件夹。
如果你有第三方dll,你没有编译,那么最佳做法是创建一个名为lib \或dependencies \的文件夹,并从该位置引用dll。
希望这有帮助。