TeamCity:找不到类型或命名空间,但引用存在且我的项目在本地编译

时间:2014-08-15 19:28:59

标签: build reference compilation teamcity checkin

我有一个ASP.net MVC 3项目。我们正在使用TeamCity,到目前为止一切都已经检查完好了。今天突然间,我做了签到,TeamCity构建失败了。它说我错过了使用指令或程序集引用并抛出了编译错误。

我本地计算机上的项目已成功构建。我重建了几次以确保。我检查了参考,它就在那里。我检查了.csproj文件,它也有引用。我检查了bin;在那。我甚至RDP到我们站点部署的服务器并检查了那里的bin,dll文件也在那里。

我不明白为什么它不起作用,我没有改变它在几周内错过汇编引用的特定文件中的任何内容,我昨天在TeamCity上成功登记,dll文件存在于它应该的任何地方,我的项目建立。我甚至对我上次成功签入的最后一次提交进行了硬重置,添加了我的更改(这与引用问题无关,我的所有更改都在.js文件中),并检查了,但是我得到了相同的编译错误。

有没有人知道出了什么问题,或者至少我可能会尝试解决这个问题?

编辑:这里没有使用路径文件,有问题的文件是.dll文件,我通过单击项目中的“添加引用”添加了该文件。我检查了Github存储库,并且.dll文件位于bin文件夹中

4 个答案:

答案 0 :(得分:6)

iamkrillin让我想到这可能是一个路径问题,所以我打开了csproj文件并注意到"缺少"的引用格式。文件与周围的所有文件不同:

<Reference Include="Ektron.Newtonsoft.json">
  <HintPath>..\..\Custom\bin\Ektron.Newtonsoft.json.dll</HintPath>
</Reference>

// THE "MISSING" FILE
<Reference Include="Smdg.Utils, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\NEHGS\bin\Smdg.Utils.dll</HintPath>
</Reference>

我检查了Custom \ bin文件夹,确定.dll文件确实在那里(尽管它也存在于NEHGS \ bin中),所以我摆脱了SpecificVersion标签并将路径更改为Custom文件夹。 TeamCity能够检查它。

为什么它在过去2个月里突然爆发,我不知道。

答案 1 :(得分:2)

我之所以这样,只是因为没有将NUGET包存储在VCS(GIT)中。

因此,需要在构建步骤之前恢复NUGET包。

https://blog.jetbrains.com/teamcity/2013/08/nuget-package-restore-with-teamcity/

答案 2 :(得分:1)

我有同样的问题,我的TC版本突然无法找到一个程序集。我通过检查路径解决了这个问题。我的装配没有标签。一旦我添加了带有dll路径的tage,TC就能够成功构建

答案 3 :(得分:0)

我希望这可以帮助那里的人,在我的情况下,我必须检查具有引用dll / nuget包的文件夹。请注意,我已经提交了项目但由于某种原因'SVN'没有签入/提交具有dll / nuget包的(本地)文件夹,所以我必须转到文件夹并检查它们。