2012-12-20 12 views
32

msbuildを使用してcsprojプロジェクトを構築しようとしていますが、nuget.targetsを見つけられなかったという厄介な問題があります。MSbuildエラーでnuget.targetsファイルが見つかりません

Msbuild Project.csproj 

そして、それは私の通常のdevのフォルダに動作しますが、別のフォルダの場所に、それはこれらのエラーで失敗します:

は、私は、コマンドラインの最も単純なMSBuildのでビルドを実行

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)、私は迷っています。より奇妙なことに、私がソリューションの一部である別のプロジェクトをビルドすれば、それはうまくいきます。ただのプロジェクトです。

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

そしてSolutionDirはそうのように定義されています:csprojはnuget.targetsの場所を指定

は、このようなファイル

ない他のプロジェクトと同じである
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> 

作業。何か案は?

答えて

54

Argh!これを投稿した後、私は問題を発見した。基本的に、プロジェクトは他のプロジェクトに依存していた。これらの関連プロジェクトのcsprojファイルは少し間違っていましたが、これをSolutionDirとして持っていました。

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

これが原因でした。これが他の誰かを助けてくれることを願っています。今私自身の質問に答えるのが悪いと感じます。

+10

まあ、マット、あなたはそれが問題を引き起こしたと言いましたが、あなたはそれをどのように修正したかは言いませんでした。私は同じ問題を抱えており、あなたの答えを見て、私はまだこの問題を解決するために何をすべきか分からない。 – Stack0verflow

+5

基本的に、それらの関連プロジェクトをチェックして、SolutionDirが存在しない場合に使用されるパスが正しいかどうかを確認してください(それは../../CableSenseが間違っていた) –

+0

ああ、私は同じ問題を抱えています。ソリューションディレクトリを自動的に修正する方法はありますか?私は多くのcsprojファイルを持っています。 –

3

私は最近、今でも同じエラーが発生していますが、解決策は私のために違っていました。

ビルド定義の[ソース設定]で、ソリューションのルートフォルダではなく、ソース管理フォルダを実際のプロジェクトのディレクトリに設定しました。

これは古い回答のスレッドであることは分かっていますが、これは私がやったのと同じミスをした人を助けるかもしれません。

0

私はちょうどソリューションの場所を変更して、短い場所を持っていました。

関連する問題