Visual Studio-为临时文件更改NuGet的输出目录

问题描述 投票:0回答:1

当前,似乎VS项目的默认行为是NuGet管理的依赖项具有在编译过程中由NuGet生成的中间文件。这些文件是这些,位于obj文件夹中:

enter image description here

我希望能够控制这些输出目录的名称(如BinaryObject所示),并且我想设置项目以使obj文件夹不被NuGet存储这些文件。有没有办法在项目级别或解决方案级别进行指定?也许是MSBuild XML代码段?会很好。

任何信息将不胜感激。

c# .net xml visual-studio msbuild
1个回答
1
投票

是否可以在项目级别或解决方案级别进行指定?也许是MSBuild XML代码段?会很好。

如果要在另一个文件夹中更改这些nuget恢复文件,则可以尝试使用Directly.Build.props文件来控制它。

解决方案>>

[1)

在您的项目中创建一个名为Directly.Build.props的文件。

enter image description here

然后将它们添加到此文件中:

<Project>
  <PropertyGroup>
    <MSBuildProjectExtensionsPath>$(ProjectDir)Binary\</MSBuildProjectExtensionsPath>
  </PropertyGroup>
</Project>

Note

:MSBuild属性只能被另一个属性覆盖。这意味着您可以将obj文件夹覆盖为二进制文件夹。如果要生成两个文件夹BinaryObject,则可以尝试以下操作:

[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>

希望它可以帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.