项目构建时Build文件夹生成多余文件,如何设置仅保留autofib.dll?
解决方案
你可以通过以下几种方式实现仅保留autofib.dll在生成目录的需求:
方法1:修改依赖包的复制本地配置
多余文件是新增依赖包默认复制到输出目录导致的,你可以直接修改项目配置禁用对应依赖的复制行为:
- 右键你的项目文件(.csproj/.vbproj),选择「编辑项目文件」
- 找到你新增的两个依赖对应的
PackageReference节点,添加PrivateAssets="all"属性,示例如下:
<PackageReference Include="你新增的依赖包名" Version="x.x.x" PrivateAssets="all" />
- 保存后重新生成项目即可,该配置会阻止依赖包的dll被复制到输出目录。
方法2:添加生成后事件删除多余文件
如果你不确定是哪项配置导致的文件输出,可以直接通过生成后事件指定删除多余文件,操作更直接:
- 右键项目选择「属性」,找到「生成」-「生成事件」选项卡
- 在「后期生成事件命令行」中添加对应删除命令,示例如下(将示例文件名替换为你实际要删除的两个dll文件名):
del "$(TargetDir)多余文件名1.dll" del "$(TargetDir)多余文件名2.dll"
- 如果要动态删除除autofib.dll之外的所有dll,可以使用以下命令:
for %%f in ("$(TargetDir)*.dll") do if not "%%~nf"=="autofib" del "%%f"
方法3:SDK风格项目专属配置
如果你使用的是.NET Core/.NET 5+的SDK风格项目,可以直接在项目文件中添加输出排除规则:
<ItemGroup> <Content Remove="$(TargetDir)多余文件名1.dll;$(TargetDir)多余文件名2.dll" /> <None Remove="$(TargetDir)多余文件名1.dll;$(TargetDir)多余文件名2.dll" /> </ItemGroup>
内容的提问来源于stack exchange,提问作者SR-924
相关产品推荐
相关产品推荐

