2016-11-09 8 views
0

私は、.NETコンパイラプラットフォームでソリューション内のすべてのクラスを変更するツールを開発しています。そのためには、すべてのプロジェクトにアセンブリ参照を追加する必要があります。"well-formatted"アセンブリリファレンスをRoslynに追加

var addedRef= MetadataReference.CreateFromFile(@"d:\Stuff\MyAssembly.dll") 
         .WithProperties(new MetadataReferenceProperties(MetadataImageKind.Assembly)); 

var sol = newSolution.AddMetadataReference(projectId, addedRef); 

しかし残念ながら、それは.csprojファイルに次のエントリを生成:

現在、私はこのコード行を使用する代わりにその

<Reference Include="..\Stuff\MyAssembly.dll" /> 

を、私はしたいのですが厄介な回避策があるもちろん

<Reference Include="MyAssembly.dll" /> 

:私.csprojでこれを見XMLとして.csprojファイルを解析し、手動で挿入...しかし、私は本当にこの1つを避けるために、.NETコンパイラプラットフォームがあるので。

事前にお世話になりました!

答えて

1

MSBuildの表現については、Roslynのことはかなり心配されていません - それを行うシステムではありません。 XMLやMSBuild APIなどを使うのが一番良い方法です。とにかく、あなたの答えに感謝を https://github.com/dotnet/roslyn/issues/5959 :

+0

は、私はちょうどロスリンのGitHubのページでこの問題を発見しました。私はXML形式の回避策を実行します。 これは将来修正される予定です。 – MDoobie

関連する問題