2017-11-04 14 views
1

私は複数のターゲットを持つライブラリプロジェクトを持っています。 CSPROJにファイルはあります複数のターゲットを持つCSPROJのXMLドキュメントを生成する方法

<TargetFrameworks>net40;net46;net461;net462;net47</TargetFrameworks> 

私は、ビルド設定マネージャを使用してUIで順番に各1を選択する必要があり、その後、設定されているすべてのこれらのターゲットフレームワークの組み合わせとDebugRelease構成のためのXMLドキュメントをしたい場合その組み合わせのXMLドキュメントを作成し、それぞれの組み合わせはCSPROJのPropertyGroupとして別個にリストされ、XMLドキュメントの出力ファイルとなります。

良い方法がありますか?

投稿質問と、私はこの問題を解決するには、この文書のどこオンライン

答えて

2

簡単な方法は、真のGenerateDocumentationFileプロパティを設定することです。 VS UIがパスを設定したい場合、MSBuildターゲットは、パスが設定されている場合はこのプロパティをtrueに設定し、GenerateDocumentationFileプロパティがtrueの場合はデフォルトパスを設定します。つまり、あなたのcsprojファイルにこれを追加することができます。

<PropertyGroup> 
    <GenerateDocumentationFile>true</GenerateDocumentationFile> 
</PropertyGroup> 

次の内容のソリューションのディレクトリにDirectory.Build.propsという名前のファイルを作成し、すべてのプロジェクトがそれを共有するため、これをtrueに設定したい場合は、それは次のようになります以下のディレクトリ階層のプロジェクトに自動インポートされます。

<Project> 
    <PropertyGroup> 
    <GenerateDocumentationFile>true</GenerateDocumentationFile> 
    </PropertyGroup> 
</Project> 
1

一つの方法は、各CSPROJファイルに以下を含めることで見つけることができませんでしたので、答える:

<!-- Build XML documentation for all combinations of target framework x configuration --> 
<PropertyGroup> 
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml 
</DocumentationFile> 
</PropertyGroup> 

アンさらに良いです

<!-- This must come after any other configuration so that it overwrites it --> 
<Import Project="$(MSBuildThisFileDirectory)..\Shared.msbuild" /> 

...そして、上記の行をその中に置きますあなたもProductCompanyCopyright、同様に他のすべてのソリューション全体のCSPROJ設定を設定することができますhared設定ファイル...

関連する問題