2

$(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"

谢谢你。

4

2 回答 2

6

这是一个有用的构建事件检查:

if "$(BuildingInsideVisualStudio)" == "" 

这将允许您在 Visual Studio 中定义构建事件,而不是在 TeamBuild(msbuild) 上运行时

于 2013-03-28T11:46:03.720 回答
2

作为最佳实践,您不应从 TFS 构建或 Visual Studio 在预构建目标中调用 XCOPY 以获得所需的 DLL 引用。

在项目 2 中创建对项目 1 的项目引用。这将确保正确编译和引用最新的代码。

TFS 会自动为您移动 dll。如果您将引用设置为复制本地,Visual Studio 也会自动知道如何找到它,并将两个 dll 移动到您的输出文件夹中。

如果您有一个未编译的第 3 方 dll,那么最佳做法是创建一个名为 lib\ 或 dependencies\ 的文件夹并从该位置引用该 dll。

希望这可以帮助。

于 2013-03-28T13:25:05.773 回答