2014-10-01 77 views
0

我正在从事网站项目,需要一些单元测试(对于控制器等)。TFS生成不生成在Asp.Net MVC项目/ bin文件夹中的DLL

解决方案:
WebPortal
WebPortal.Tests

的Team Foundation Server用于门检查并构建的解决方案。部署由Octopus管理。 在下面的错误门控检查时:

CSC:元数据文件 'd:\ TFSBuilds ... \来源... \ WebPortal \ BIN \ WebPortal.dll' 无法找到

在该目的地中,只有WebPortal.pdb文件被生成,而WebPortal.Tests项目需要该DLL。然而,在本地主机上生成(int/bin)中的DLL,所以这个错误不会发生在那里。我已经想通了,TFS在bin库类型项目的bin文件夹中生成DLL。

我该如何解决该问题,以便能够在使用门控检查时在WebPortal上运行单元测试?

+0

它应该生成该dll作为构建的一部分,仔细检查您的构建顺序并确保构建测试项目是最后一个要构建的项目,因为它可能是一个时间问题 – 2014-10-01 14:39:11

+0

测试项目低于WebPortal项目在构建顺序中。之间有更多的项目,但所有的订单似乎都没问题。但是它有什么奇怪的,即使Test项目没有涉及,WebPortal项目在bin目录中也不包含DLL。它可能是因为错误的错误构建定义或不正确的Octopack脚本配置? – 2014-10-02 06:46:37

回答

1

您需要将您的网站转换为Web应用程序。

您可以单独创建一个新的Web应用程序项目并将该文件放入网站文件夹中。然后将这个新项目添加到您的解决方案并删除该网站。团队建立现在将输出所有需要的文件。

+0

看来我已经有了Web应用程序项目,因为它使用了MVC,并且它被编译到BIN文件夹中localhost的DLL中。但是,TFS上的BIN为空,而所有DLL都复制到Binaries文件夹。我试图创建新的Web应用程序,它在TFS的BIN文件夹中包含DLL,但是有问题的项目相当大而且不是新的,因此它可能包含一些堰配置。 – 2014-10-03 05:59:42

+0

您应该在Drop文件夹中有一个名为“_PublishedWebsites \ [Sitename] \”的文件夹。那里的bin文件夹是空的? – 2014-10-03 15:38:22

+0

是的,我在Binaries文件夹中有这样一个文件夹。我发现了一些新的东西。看来,包含Octopack的项目是在Binaries目录中构建的,而其他项目则是在项目的bin文件夹的Sources目录中构建的。所以问题在于测试项目也是在Sources文件夹中构建的,并且它的构建过程在源文件中搜索WebProject以及在Binaries文件夹中搜索。 – 2014-10-06 06:40:51