我正在使用 TFS2010 和 MSBuild 将 Windows azure 云解决方案集成到 CI。
为了创建部署所需的 2 个文件,我在“MSBuild Arguments”中添加了 /t:Publish
这是我在 TFS 中用于构建包的配置:
问题是:如果我删除所有参数,则测试构建正确,但没有构建 azure 包,如构建结果所示:
如果我把参数放在那里,但测试没有运行:
有没有办法两者兼得?
我正在使用 TFS2010 和 MSBuild 将 Windows azure 云解决方案集成到 CI。
为了创建部署所需的 2 个文件,我在“MSBuild Arguments”中添加了 /t:Publish
这是我在 TFS 中用于构建包的配置:
问题是:如果我删除所有参数,则测试构建正确,但没有构建 azure 包,如构建结果所示:
如果我把参数放在那里,但测试没有运行:
有没有办法两者兼得?
我已经设法在我的 tfs 构建(TFS 2013)中解决了这个问题。我将我的 MSBuild 参数目标设置为/t:Publish;Build
基本上,在发布目标期间,未构建单元测试项目。“构建”目标构建单元测试项目并执行我的测试。我还注意到“发布”和“构建”的顺序很重要。在“发布”之前设置“构建”目标为我的构建引发了一些错误。
我与 TFS 团队讨论了您的问题,我被告知到目前为止,TFS2010 尚未完全支持此功能,但此类功能已在他们的雷达范围内,并且可能成为未来 TFS 版本的一部分。
因为您使用的是 TFS 2010,所以这里有一些可以提供帮助的提示:
这个问题在 TFS 2013 中仍然存在。我通过在解决方案中创建一个 Makefile 项目来解决它,并添加一个新的“Makefile”文件,其内容为
all:
msbuild $(SolutionDir)AzureProject\AzureProject.ccproj /p:TargetProfile=Cloud /t:Publish /p:Configuration=$(Configuration) /p:PublishDir=$(OutDir)
并在项目属性页设置构建命令行
nmake /E SolutionDir=$(SolutionDir) /E Configuration=$(Configuration) /E OutDir=$(OutDir)