当前,似乎VS项目的默认行为是NuGet管理的依赖项具有在编译过程中由NuGet生成的中间文件。这些文件是这些,位于obj
文件夹中:
我希望能够控制这些输出目录的名称(如Binary
和Object
所示),并且我想设置项目以使obj
文件夹不被NuGet存储这些文件。有没有办法在项目级别或解决方案级别进行指定?也许是MSBuild XML代码段?会很好。
任何信息将不胜感激。
是否可以在项目级别或解决方案级别进行指定?也许是MSBuild XML代码段?会很好。
如果要在另一个文件夹中更改这些nuget恢复文件,则可以尝试使用Directly.Build.props文件来控制它。
解决方案>>
[1)
在您的项目中创建一个名为Directly.Build.props
的文件。然后将它们添加到此文件中:
:MSBuild属性只能被另一个属性覆盖。这意味着您可以将obj文件夹覆盖为二进制文件夹。如果要生成两个文件夹Binary和Object,则可以尝试以下操作:<Project> <PropertyGroup> <MSBuildProjectExtensionsPath>$(ProjectDir)Binary\</MSBuildProjectExtensionsPath> </PropertyGroup> </Project>
Note
[a)
尝试执行步骤1并生成项目时,可以将属性更改为$(ProjectDir)Object\
文件中的Directly.Build.props
,然后再次进行重建。之后,您将看到它们两者。[b)
执行复制任务,请把它们写在您的xxxx.csproj
文件中。<Target Name="CopyNugetfiles" AfterTargets="Build"> <ItemGroup> <MySourceFiles Include="$(ProjectDir)Binary\*.*"/> </ItemGroup> <Copy SourceFiles="@(MySourceFiles)" DestinationFolder="$(ProjectDir)Object\"/> </Target>
希望它可以帮助您。