You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过MSBUILD排除类库中无依赖的B.cs文件?

能否排除无依赖的B.cs类以生成DLL?

当然可以排除这类没有依赖关系的类,而且你的配置已经走在正确的方向上了!

因为A和B之间不存在任何依赖关系,排除B.cs完全不会影响IA、A的编译和功能——编译后生成的Dabba.dll只会包含IA接口和A类的代码,完全不会涉及IB和B的内容。

看你当前的TestClasslib.csproj配置:
你在<ItemGroup>里通过<CSFile Include="*.cs;" Exclude="B.cs" />明确指定了编译时排除B.cs,并且自定义了Compile Target调用Csc任务编译指定的源文件,这个配置本身是完全有效的,执行编译后就能得到不含B相关代码的DLL。

另外给你一个小建议:对于.NET Core项目来说,其实不需要自定义Compile Target,利用默认的编译逻辑可以更简洁地实现排除操作,只需要添加以下配置即可:

<ItemGroup>
  <Compile Remove="B.cs" />
</ItemGroup>

这样既保留了项目默认的编译流程,也能达到排除B.cs的效果,后续如果需要恢复B的编译,只需要移除这一行配置就行,非常灵活。

内容的提问来源于stack exchange,提问作者Shrikey

火山引擎 最新活动