我有一堆带有大量测试的C#项目的解决方案。其中一些测试需要很少的本机dll(由相关的nuget包提供)。为了解决这个问题,创建了.testsettings文件,它在运行测试之前将dll(nuget强制执行到$(OutDir))复制到测试目录。
所有这一切在本地机器上运行正常,但是当在TFS Build'部署'下执行时,.testsettings文件(或者整个文件)被忽略 - 这些dll从未在测试目录中实现(也没有任何条目在记录他们)。 .testsettings文件在TFS构建配置的相关部分中提到。
任何想法都可能出错? (MSVC 2015,TFS 2013)
答案 0 :(得分:0)
您是否尝试过查看它们是否已安装在TFS服务器上? 您是否注册了TFS服务器的GAC?
Bellow解释了我如何处理我的依赖关系,希望它有所帮助。
这是我关于这个主题的HMO。我必须避免将TFS的责任归还给单独的文件夹中的NuGet包。 我是怎么做到的?
1-我在项目级别创建一个单独的文件夹。 (普通)
如果您在底部看到有一个Nuget.config文件。贝娄是它的配置
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="$\..\Common\Packages" />
</config>
</configuration>
现在我的所有包都托管在Common文件夹中。现在,如果需要,将所有额外的dll放在一个单独的文件夹中。如果您依赖于GAC上托管的本机dll,那么您应该查看TFS服务器(如果那些安装在那里)。 话虽如此,我将所有项目引用指向我的Common文件夹,甚至我的Nuget Repository也从该位置获取文件。
优点:
答案 1 :(得分:0)
对于TFS 2013,它只有XAML版本。对于XAML构建,测试运行前,测试设置文件无法将程序集从Nuget包$(OutDir)复制到C:\Builds\...\builddefinition\...\TestSetting(tst)\...\Out
文件夹。
我建议您可以将TFS升级到TFS 2015或更高版本以使用VNext build。我已经在Vnext构建中测试了它,它可以工作。这是我的构建定义示例:只需添加3个步骤。