所以基本上我通过运行“pack”目标的.proj文件在TeamCity中构建nuget包:
<MSBuild
Projects="$(MSBuildProjectDirectory)\PROJNAME.csproj"
Targets="Rebuild;pack"
Properties="Configuration=$(Configuration);Version=$(BUILD_NUMBER)" />
使用以下工件输出:
PROJNAME\bin\Release\PROJNAME.%build.number%.nupkg
这很适合基本消耗nuget包,但是我无法使文档xml文件工作 .
我查看了输出nupkg,我看到文档xml实际上已捆绑并包含在包中,但问题是当我最终在我的消费项目中恢复nuget包时,dll会按预期复制,但是文档才不是 .
我想知道这是否是因为TC生成的.nuspec文件,如果我可能需要放弃teamcities nuspec并创建我自己的,但是我希望避免这个,因为它的工作方式很好,并处理版本控制等 .
有什么简单的方法可以在包恢复时包含文档xml吗?
1 回答
最后我发现它归结为3件事,是:
确保将项目配置设置为生成文档 .
通过手动添加代码,例如:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"><DocumentationFile>bin\$(Configuration)\netstandard2.0\Project.documentation.xml</DocumentationFile> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <DocumentationFile>bin\$(Configuration)\netstandard2.0\Project.documentation.xml</DocumentationFile> </PropertyGroup>
<PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <RootNamespace>project</RootNamespace> <Configurations>Debug;Release</Configurations> <EnableDocumentationFile>true</EnableDocumentationFile> </PropertyGroup>
<ItemGroup> <None Remove="bin\$(Configuration)\netstandard2.0\Project.documentation.xml" /> </ItemGroup> <ItemGroup> <Content Include="bin\$(Configuration)\netstandard2.0\Project.documentation.xml"> <Pack>true</Pack> <PackageCopyToOutput>true</PackageCopyToOutput> <PackageFlatten>true</PackageFlatten> </Content> </ItemGroup>