我有一个ASP.net MVC 3项目。我们正在使用TeamCity,到目前为止一切都已经检查完好了。今天突然间,我做了签到,TeamCity构建失败了。它说我错过了使用指令或程序集引用并抛出了编译错误。
我本地计算机上的项目已成功构建。我重建了几次以确保。我检查了参考,它就在那里。我检查了.csproj文件,它也有引用。我检查了bin;在那。我甚至RDP到我们站点部署的服务器并检查了那里的bin,dll文件也在那里。
我不明白为什么它不起作用,我没有改变它在几周内错过汇编引用的特定文件中的任何内容,我昨天在TeamCity上成功登记,dll文件存在于它应该的任何地方,我的项目建立。我甚至对我上次成功签入的最后一次提交进行了硬重置,添加了我的更改(这与引用问题无关,我的所有更改都在.js文件中),并检查了,但是我得到了相同的编译错误。
有没有人知道出了什么问题,或者至少我可能会尝试解决这个问题?
编辑:这里没有使用路径文件,有问题的文件是.dll文件,我通过单击项目中的“添加引用”添加了该文件。我检查了Github存储库,并且.dll文件位于bin文件夹中
答案 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包的(本地)文件夹,所以我必须转到文件夹并检查它们。