Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 在项目可用的属性中获取TFS生成的输出目录_Visual Studio_Tfs_Msbuild_Tfsbuild - Fatal编程技术网

Visual studio 在项目可用的属性中获取TFS生成的输出目录

Visual studio 在项目可用的属性中获取TFS生成的输出目录,visual-studio,tfs,msbuild,tfsbuild,Visual Studio,Tfs,Msbuild,Tfsbuild,我在生成后事件中有以下命令: 如果$(ConfigurationName)=发布“$(SolutionDir)Tools\NuGet.exe”pack“$(ProjectDir)MyProject.Contracts.nuspec” 当我在VisualStudio中编译时,它工作得很好。但是当我的构建运行这个时,它失败了。这是因为某个地方有人认为,让TFS上的构建与开发人员机器上的构建运行不同是个好主意 在这种情况下,所有输出文件都被分组到一个公共“二进制文件”文件夹中 所以,我的问题是: 我是

我在生成后事件中有以下命令:

如果$(ConfigurationName)=发布“$(SolutionDir)Tools\NuGet.exe”pack“$(ProjectDir)MyProject.Contracts.nuspec”

当我在VisualStudio中编译时,它工作得很好。但是当我的构建运行这个时,它失败了。这是因为某个地方有人认为,让TFS上的构建与开发人员机器上的构建运行不同是个好主意

在这种情况下,所有输出文件都被分组到一个公共“二进制文件”文件夹中

所以,我的问题是:

我是否可以使用一个属性(而不是ProjectDir)来引用生成的输出位置?

这意味着在运行TFS构建时,它将指向binaries文件夹,在执行基于Visual Studio的正常构建时,它将指向我的正常输出

我尝试了$(OutDir),但它等同于“bin\Release\”
更新:我尝试使用$(OutDir),但Visual Studio使用它提供的部分路径失败。是否有一些东西可以与$(OutDir)一起使用,为VisualStudio和TFS构建提供完整路径

如有必要:

  • TFS版本为TFS 2010(已安装最新版本)
  • 构建计算机和开发计算机都运行Windows 7和VS 2010 Ulitmate
$(OutDir)
应解析为本地版本的
bin\debug
bin\release
等,在生成服务器上,这将解析为
二进制文件
文件夹


所以是的,
$(OutDir)
应该是正确的使用方法。

但是我需要完整的路径。Visual Studio在生成后事件中使用部分路径使我的命令失败。嗯,因此
$(OutDir)
可以在TFS上工作,但不能在本地工作?我可能会检查
$(DevEnvDir)
或其他东西,如果它没有安装,应该为空,那么您可以使用
$(ProjectDir)
,否则使用
$(OutDir)
。有点黑,如果你在构建服务器上安装了VS,它可能也不会工作,因为它还会尝试解析
$(ProjectDir)
。我找到
if$(TeamBuildConstants)==\u TEAM\u build\u
来检查我是否在团队构建中。(顺便说一句,这让我发现问题实际上在我的nuspec文件中。)