如何有选择地在解决方案

时间:2017-10-03 09:00:13

标签: .net

我有一个解决方案 foo.sln 。其中的所有库都是SDK项目。但是,其中只有一个应打包

默认

dotnet pack

尝试打包所有项目。没有排除过滤器或包含过滤器。推荐的流程是什么?

1 个答案:

答案 0 :(得分:1)

您可以通过在--- title: "Monthly Target Monitoring Report" author: "`r paste(TrustName,"Health and Social Care Trust")`" date: "Date generated: `r format(Sys.time(), "%d/%m/%Y")`" subtitle: "`r paste('To cover period ',format(as.Date(DateFrom,,"%Y-%m- %d"),"%d/%m/%Y"),' to ',format(as.Date(DateTo,,"%Y-%m-%d"),"%d/%m/%Y"))`" --- 文件中设置属性来选择要打包为nuget包的项目,如下所示:

csproj-创建程序包

<IsPackable>true</IsPackable>-不要创建程序包

如果不想在每个文件中指定它,则可以在目录中创建一个名为<IsPackable>false</IsPackable>的文本文件,其内容如下:

Directory.Build.props

它会自动包含在此文件夹和所有嵌套文件夹的SDK项目文件(csproj)开头的所有内容中,因此您可以为这组项目指定通用的默认值,并且如果需要,可以在各个csproj中覆盖它们文件。

如果您不希望它们被覆盖或需要使用csproj中定义的某些值,则应使用文件名<Project> <PropertyGroup> <IsPackable>false</IsPackable> </PropertyGroup> </Project> ,该文件名将自动包含在csproj的末尾。

在我们的项目中,我们使用以下结构:

Directory.Build.targets

通过这种方式,我们可以为测试项目和常规项目指定不同的通用属性。

关于此的一个注意事项是,默认情况下仅应用 \ \src <actual projects> Directory.Build.props \tests <unit tests> Directory.Build.props Directory.Build.props MySolution.sln 找到的第一个Directory.Build.props,要更改此行为,您需要在嵌套csproj的开头添加此行文件(在Directory.Build.props标记内):

Project

有关所有这些的更多信息,请参见:https://docs.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2017