2012-12-20 53 views
32

我想用msbuild構建一個csproj項目,但有抱怨沒有找到nuget.targets的各種奇怪的問題。找到nuget.targets文件的MSBuild錯誤

我運行簡單的命令行的構建與MSBuild的:

Msbuild Project.csproj 

在我的正常的開發文件夾的作品,但在另一個文件夾的位置時,出現這些錯誤:

error MSB4019: The imported project "C:\BuildAgent\work\CableSense\.nuget\nuget.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

該路徑(C:\BuildAgent\work\CableSense\.nuget\nuget.targets)實際上是錯誤的,並且在工作之後缺少一個文件夾(work \ somefolder \ cablesense),但我爲此感到茫然。更奇怪的是,如果我構建了另一個屬於解決方案一部分的項目,那麼就可以工作,這只是這個項目。

的的csproj指定nuget.targets文件的位置是這樣的:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

而且SolutionDir定義,像這樣:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> 

這是一樣的,做其他項目工作。有任何想法嗎?

回答

54

唉!發佈後,我發現這個問題..基本上,該項目依賴於其他項目。對於那些涉及項目的csproj文件稍微錯誤的 - 有這樣的SolutionDir:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\CableSense\</SolutionDir> 

然後導致問題!希望這可以幫助別人,我現在回答我自己的問題感到很難受。

+10

好吧,馬特,你說這是造成這個問題的原因,但你沒有說你是如何修復它的。我有同樣的問題,並看着你的答案,我仍然不知道如何解決這個問題。 – Stack0verflow

+5

基本上,檢查那些相關的項目,看看如果SolutionDir不存在的路徑是正確的(在這篇文章中它的../../CableSense是錯誤的) –

+0

哦,不,我有同樣的問題。有沒有辦法自動修復解決方案目錄?如果沒有,我有很多csproj文件可供編輯:-( –

3

好的,所以最近我得到了同樣的錯誤,但解決方案對我來說是不同的。

在構建定義的源設置下,我將源代碼管理文件夾設置爲實際項目的目錄,而不是解決方案的根文件夾。

我知道這是一個古老的回答線程,但這可能會幫助那些犯過同樣錯誤的人。

0

對我來說我只是改變了解決方案的位置,以獲得一個短的位置。

相關問題