是否有一个属性可以用来检测我何时使用MSBuildWorkspace进行构建

时间:2019-07-19 15:35:06

标签: msbuild roslyn csproj

在我的.csproj文件中,是否有一个属性可以用来检测MSBuildWorkspace正在构建的项目文件(与直接msbuild相对)?

基本上,我有一个执行exe文件的csproj文件。

exe将项目文件作为输入,使用MSBuildWorkspace进行构建,然后根据编译生成一些其他文件。

但是,每次构建它时,都会导致csproj文件执行exe-因此,我将自己设为fork bomb

我想阻止这种情况...

1 个答案:

答案 0 :(得分:1)

答案实际上很简单!

您可以为MSBuildWorkspace.Create提供传递给csproj文件的属性,例如:

var properties = new Dictionary<string, string>
{   
    ["Tools_BuildingInsideGenerator"] = "true"
};

using (workspace = MSBuildWorkspace.Create(properties))
{
}