我正在尝试创建一个项目(csproj 文件),该项目引用 NuGet 包源中的多个包,但本身不包含任何源代码(或从空项目内容生成的任何 dll)。
我想创建项目文件,以便可以生成 csproj 文件中引用的包的 dll 捆绑包;我希望以这种方式完成,以便引用的包受到版本控制。
我已经尝试将我的 csproj OutputType 更改为不同的选项并将其设置为 Library 或 Module 似乎会产生与我想要的类似的行为。但是,它仍然会生成一个 pdb 以及一个 dll 或 netmodule 文件,如果可能的话,我想避免这些文件。
我的示例 csproj 文件引用了 Newtonsoft
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
</Project>
生成一个包含以下内容的文件夹:
我看过
我也尝试过查看 MSBuild 源代码,但没有成功。
您可以定义构建后事件并删除不需要的文件。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="del $(OutDir)\ClassLibrary.dll" />
<Exec Command="del $(OutDir)\SomeThingElse.dll" />
</Target>
</Project>