我正在写一MSBuild任务,增加了一些代码生成一个标准的C#项目(.csproj的)。 任务需要访问类型由项目引用的程序集。
这是简单的组装引用(获得<参考>所有项目),但它对于其他项目的引用变得更难(<ProjectReference>)
确实的MSBuild提供一种方法来从一个<ProjectReference>检索编译集引用?
如果没有,是否有通过读取.csproj的文件,以解决该名称的简单方法?
所述的.csproj文件并不直接提供编译的程序集路径,它必须从其他属性重建。 此外,某些属性是有条件的(根据调试/发布配置),因此,使用一个简单的XPath阅读器将不能正常工作:
DLL文件名可以从<的AssemblyName>获得,但其中的DLL文件被写入的路径是在
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>;bin\Release</OutputPath>
<PropertyGroup>
有没有一种方法以编程方式读取.csproj的文件,并评估所有条件解决OutputPath正确的值?
我需要一个解决方案,其中引用的.csproj文件保持平原旧的项目文件(没有修改到的csproj文件,将在一个更方便的方式添加必要的信息)