我有一个解决方案 foo.sln 。其中的所有库都是SDK项目。但是,其中只有一个应打包
默认
dotnet pack
尝试打包所有项目。没有排除过滤器或包含过滤器。推荐的流程是什么?
答案 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