【问题标题】:TFS build doesn't generate DLL in Asp.Net MVC project /bin folderTFS 构建不会在 Asp.Net MVC 项目 /bin 文件夹中生成 DLL
【发布时间】:2014-11-26 09:53:30
【问题描述】:

我正在开发需要一些单元测试(用于控制器等)的网站项目。

解决方案:
门户网站
WebPortal.Tests

Team Foundation Server 用于解决方案的门控签入和构建。部署由 Octopus 管理。 在门控检查期间发生以下错误:

CSC:找不到元数据文件“D:\TFSBuilds...\Sources...\WebPortal\bin\WebPortal.dll”

在该目标中仅生成 WebPortal.pdb 文件,而 WebPortal.Tests 项目需要 DLL。但是,在 localhost 上生成的 DLL (int /bin) 中不会出现此错误。我发现,TFS 在 bin 文件夹中为类库类型项目生成 DLL。

如何解决这个问题,以便在使用门控签入时能够在 WebPortal 上运行单元测试?

【问题讨论】:

  • 它应该生成该 dll 作为构建的一部分,仔细检查您的构建顺序并确保测试项目的构建是最后一个要构建的项目,因为这可能是时间问题跨度>
  • 测试项目在构建顺序中位于 WebPortal 项目之下。中间还有更多项目,但所有订单似乎都还可以。但奇怪的是,即使不涉及测试项目,WebPortal 项目的 bin 目录中也不包含 DLL。可能是因为错误的构建定义或 Octopack 脚本配置错误?

标签: asp.net dll tfs bin octopus-deploy


【解决方案1】:

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

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

【讨论】:

  • 看来我已经有了Web Application项目,因为它使用了MVC并且被编译成BIN文件夹中localhost上的DLL。但是,当所有 DLL 都复制到 Binaries 文件夹时,TFS 上的 BIN 为空。我尝试创建新的 Web 应用程序,它在 TFS 上的 BIN 文件夹中包含 DLL,但是有问题的项目很大而且不是新的,因此它可能包含一些奇怪的配置。
  • 您应该在 Drop 文件夹中有一个名为“_PublishedWebsites[Sitename]\”的文件夹。里面的bin文件夹是空的吗?
  • 是的,我在 Binaries 文件夹中有这样一个文件夹。我发现了一些新东西。看起来,包含 Octopack 的项目是在 Binaries 目录中构建的,而其他项目是在项目的 bin 文件夹中的 Sources 目录中构建的。所以问题是测试项目也在 Sources 文件夹中构建,并且它的构建过程在 Sources 中搜索 WebProject 以及它在 Binaries 文件夹中。
猜你喜欢
  • 2019-08-24
  • 2015-03-14
  • 2020-05-26
  • 1970-01-01
  • 2015-07-28
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多