C# 将对程序集的引用动态添加到MSBuild
我们的C#项目C# 将对程序集的引用动态添加到MSBuild,c#,msbuild,C#,Msbuild,我们的C#项目Foo是使用MSBuild构建的,它在编译时依赖于Bar.dll程序集。问题是,我们不知道Bar.dll的位置,因为它可能在每个开发人员的计算机上都不同。要获取Bar.dll的位置,我们需要运行一个可执行文件locate Bar.dll,并使用它的输出将对程序集的引用添加到Foo。我只想通过修改.csproj文件来解决这个问题,如果可能的话,不需要定制构建链,也不需要修改环境变量 我知道我可以使用..节点在BeforeBuild目标中运行locate可执行文件,并将其值存储在pro
Foo
是使用MSBuild构建的,它在编译时依赖于Bar.dll
程序集。问题是,我们不知道Bar.dll
的位置,因为它可能在每个开发人员的计算机上都不同。要获取Bar.dll
的位置,我们需要运行一个可执行文件locate Bar.dll
,并使用它的输出将对程序集的引用添加到Foo
。我只想通过修改.csproj
文件来解决这个问题,如果可能的话,不需要定制构建链,也不需要修改环境变量
我知道我可以使用..
节点在BeforeBuild
目标中运行locate
可执行文件,并将其值存储在propertyBarLocation
中,但属性解析似乎发生在执行BeforeBuild
之前,因此,我无法在
节点中使用BarLocation
属性。我如何解决这个问题?如何向其位置来自执行目标的DLL添加引用?在构建前将引用的
放在目标中
<Target Name="BeforeBuild">
<!-- Code to set BarLocation goes here... -->
<ItemGroup>
<Reference Include="$(BarLocation)" />
</ItemGroup>
</Target>