Dll是已发布的站点,但在Build中缺失

时间:2012-03-08 16:35:09

标签: .net visual-studio-2008 msbuild build tfs2010

应该是一个被忽视的小问题,但是我几天来一直坚持这个问题,需要一些指示。

我们使用的是.NET 3.5,VS2008和TFS 2010

我有一个ASP.NET网站项目。该解决方案有多个类项目和一个网站项目。

问题是当TFS构建项目时,在_PublishedWebsite文件夹中永远不会生成2个dll。

奇怪的是,这些dll是在_PublsihedWebsite文件夹之外生成并存在的,而不是在已发布的网站内的bin中。

如果我们发布网站,那么一切都很完美,所有DLL都来了。

Rogue dll是: Microsoft.ReportViewer.Common.dll Microsoft.ReportViewer.WebForms.dll

我尝试在所有项目中设置这些dll的CopyLocal。

e.g。

<Reference Include="Microsoft.ReportViewer.WebForms, Version=9.0.30729.4402, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\Library\Microsoft.ReportViewer.WebForms.dll</HintPath>
  <Private>True</Private>
</Reference>

我已经检查过我的bin文件夹有一个刷新文件,其中我正确地提到了我的库文件夹中的路径,这个文件夹实际放置在这个文件夹中。

以下是我的解决方案结构的高级视图:

Project 1
 ----Refers to Report DLL (CopyLocal is true)

Project 2
 ----Refers to Report DLL (CopyLocal is true)

Website project
  -----Refers to Project 1
  -----Refers to Project 2
  ----Refers to Report DLL (via Library folder in the refresh file in Bin folder)

我还能检查什么?

1 个答案:

答案 0 :(得分:2)

请将构建定义的日志记录级别设置为Detailed,再次运行TFS构建并检查详细日志,包括TFS构建资源管理器和放置位置中的MSBuild日志文件。我怀疑这个问题会有关键。例如,我已经看到ASP.NET预编译器提供生成网站的错误,而这不会显示在清除的构建资源管理器日志中。