Visual Studio - 更改 NuGet 的临时文件输出目录
Visual Studio - Change NuGet's output directory for temporary files
目前,似乎 VS 项目的默认行为是 NuGet 管理的依赖项具有由 NuGet 在编译期间生成的中间文件。这些文件是 obj
文件夹中的这些文件:
我喜欢能够控制这些输出目录的名称(正如您在 Binary
和 Object
中看到的那样),并且我想设置我的项目,使 obj
NuGet 不使用文件夹来存储这些文件。有没有办法在项目级别或解决方案级别指定它?也许是 MSBuild XML 代码片段?就好了。
如有任何信息,我们将不胜感激。
Is there a way to specify this at the project level or solution level?
Maybe an MSBuild XML code snippet? Would be nice.
如果你想在另一个文件夹中更改这些nuget restore文件,你可以尝试使用Directly.Build.props文件来控制它。
解决方案
1) 在您的项目中创建一个名为 Directly.Build.props
的文件。
然后将这些添加到此文件中:
<Project>
<PropertyGroup>
<MSBuildProjectExtensionsPath>$(ProjectDir)Binary\</MSBuildProjectExtensionsPath>
</PropertyGroup>
</Project>
注意:MSBuild 属性 只能被另一个 属性 覆盖。这意味着您可以将 obj 文件夹覆盖为二进制文件夹。如果你想生成两个文件夹 Binary 和 Object,你可以试试这些:
a) 当您尝试第 1 步然后构建您的项目时,您可以将 Directly.Build.props
文件中的 属性 更改为 $(ProjectDir)Object\
然后再次重建。在那之后,你会看到他们两个。
b) 做一个复制任务,请将这些写在你的 xxxx.csproj
文件中。
<Target Name="CopyNugetfiles" AfterTargets="Build">
<ItemGroup>
<MySourceFiles Include="$(ProjectDir)Binary\*.*"/>
</ItemGroup>
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="$(ProjectDir)Object\"/>
</Target>
希望对您有所帮助。
目前,似乎 VS 项目的默认行为是 NuGet 管理的依赖项具有由 NuGet 在编译期间生成的中间文件。这些文件是 obj
文件夹中的这些文件:
我喜欢能够控制这些输出目录的名称(正如您在 Binary
和 Object
中看到的那样),并且我想设置我的项目,使 obj
NuGet 不使用文件夹来存储这些文件。有没有办法在项目级别或解决方案级别指定它?也许是 MSBuild XML 代码片段?就好了。
如有任何信息,我们将不胜感激。
Is there a way to specify this at the project level or solution level? Maybe an MSBuild XML code snippet? Would be nice.
如果你想在另一个文件夹中更改这些nuget restore文件,你可以尝试使用Directly.Build.props文件来控制它。
解决方案
1) 在您的项目中创建一个名为 Directly.Build.props
的文件。
然后将这些添加到此文件中:
<Project>
<PropertyGroup>
<MSBuildProjectExtensionsPath>$(ProjectDir)Binary\</MSBuildProjectExtensionsPath>
</PropertyGroup>
</Project>
注意:MSBuild 属性 只能被另一个 属性 覆盖。这意味着您可以将 obj 文件夹覆盖为二进制文件夹。如果你想生成两个文件夹 Binary 和 Object,你可以试试这些:
a) 当您尝试第 1 步然后构建您的项目时,您可以将 Directly.Build.props
文件中的 属性 更改为 $(ProjectDir)Object\
然后再次重建。在那之后,你会看到他们两个。
b) 做一个复制任务,请将这些写在你的 xxxx.csproj
文件中。
<Target Name="CopyNugetfiles" AfterTargets="Build">
<ItemGroup>
<MySourceFiles Include="$(ProjectDir)Binary\*.*"/>
</ItemGroup>
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="$(ProjectDir)Object\"/>
</Target>
希望对您有所帮助。