2015-09-07 4 views
10

経由ビルダーファイル、私は迷惑な問題を得る:$(SolutionDir)$(ProjectDir)と同じ値を持ち、これは既に$(SolutionDir)を使用しているカスタムターゲットを追加しているため、プロジェクトのドキュメントソースが正しく構築されないことを意味します。

サンドキャッスルのヘルプファイルビルダー全体をVisual Studioからビルドすると、ビルドは成功します。

私は(プロジェクトが格納されているディレクトリから実行)、次のコマンドを使用しています:

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /p:Configuration=Development myproject.shfbproj 

は、このために任意の回避策はありますか?

+0

使用しているコマンドラインは何ですか? 'msbuild myproject.shfbproj'? – m0sa

+0

@ m0saはい、ビルド設定を定義するプロパティを提供する –

+0

@ m0sa完全なコマンドを与えるためにQを更新しました。 –

答えて

7

@ m0saは(非常に明白な事実を指摘しているが、私はサンドキャッスルヘルプファイルBuilderプロジェクトを構築していますから、実際のソリューションディレクトリはありません)、いわゆるドキュメンテーションプロジェクトのソリューションを構築する際に、TFSビルド中に問題が発生していました。私の解決策以来

<PropertyGroup> 
    <SolutionDir>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))\</SolutionDir> 
    </PropertyGroup> 

:ドキュメントプロジェクトの一部として構築する必要がある各C#プロジェクトでSolutionDirプロパティを追加:

は、今の私は厄介な回避策を使用して、問題を解決するために管理してきましたファイルは常にサンドキャッスルヘルプファイルビルダーのプロジェクトディレクトリの親ディレクトリにあります。私の場合、この回避策は動作します...

ドキュメントソースは、共通のMSBuildプロパティを定義するカスタムプロジェクトをインポートできますビジュアルStudioビルドまたは外部ビルド:

<Import Project="$(SolutionDir)MSBuild\Common.properties" /> 
14

解決策(.slnファイル)を作成する場合は、正しい$(SolutionDir)が表示されます。 .shfbprojはプロジェクトファイルなので、その親ソリューションへの参照はありません。あなたが明示的にコマンドラインで$(SolutionDir)を指定してみてくださいすることができます:参考

msbuild /p:Configuration=Development /p:SolutionDir=MySolutionDir myproject.shfbproj 

http://blogs.msdn.com/b/pfedev/archive/2008/09/26/solutiondir-and-msbuild.aspx

+0

私は運が無ければこれを試しました。私は適切な '$(SolutionDir)'値が必要となる前に、各csprojのソリューションディレクトリ全体を定義する問題を回避することができました。 –

+0

私は少しの時間で回避策を投稿し、議論することができます... –

+0

この解決策は私のためにうまく動作します。 – zellus

関連する問題