如何让VSCode中csproj的文件复制操作仅在Windows目标环境下生效?
实现csproj中Content节点仅在Windows平台执行的方法
完全可以实现,直接通过给csproj里的Content节点添加条件属性即可,具体操作如下:
- 在目标
Content节点中添加Condition属性,限定仅Windows环境下生效:<Content Include="你的第三方exe文件路径" Condition="'$(OS)' == 'Windows_NT'"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - 原理说明:MSBuild的
$(OS)变量在Windows环境下会被赋值为Windows_NT,Linux环境下则对应Unix类标识,这个条件会让该Content节点仅在Windows构建时被解析执行,Linux构建时会自动忽略该节点的复制操作。
如果需要更精准地针对目标操作系统(适用于.NET Core 3.0+),也可以使用$(TargetOS)变量:
<Content Include="你的第三方exe文件路径" Condition="'$(TargetOS)' == 'windows'"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content>
编辑完成后保存csproj文件,重新执行构建命令即可生效,Linux环境下不会再执行该exe的复制操作。
内容的提问来源于stack exchange,提问作者jc508
相关产品推荐
相关产品推荐

