標準のC#プロジェクト(.csproj)にコード生成を追加するMSBuildタスクを作成しています。タスクは、そのプロジェクトが参照するアセンブリ内の型にアクセスする必要があります。MSBuildからProjectReferenceアセンブリリファレンスを取得
これは、アセンブリ参照のために簡単です(<参考>内のすべてのアイテムを取得)、それは他のプロジェクト(<ProjectReference>)への参照のために困難になる
のMSBuildからコンパイル済みのアセンブリ参照を取得する方法を提供していますa <ProjectReference>?
もしそうでなければ、.csprojファイルを読むことでその名前を解決する簡単な方法はありますか?
.csprojファイルは、コンパイルされたアセンブリパスを直接提供するものではなく、他のプロパティから再構築する必要があります。また、いくつかのプロパティは条件付きです(Debug/Releaseの設定によって異なります)ので、単純なXPathリーダーを使用しても動作しません。
<AssemblyName>からDllファイル名を取得できますが、Dllファイル
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>;bin\Release</OutputPath>
<PropertyGroup>
プログラムで.csprojファイルを読み込み、すべての条件を評価することにより、OutputPathの正しい値を解決する方法はあり
で書かれているのでしょうか?私はあなたが好きなものを入れることができ.csproj参照されるファイルは、(よりアクセス可能な方法で必要な情報を追加するcsprojファイルへの変更)、昔ながらのプロジェクトファイル残っていないソリューション