gpt4 book ai didi

msbuild - 如何将文件从 .NET Core csproj 中引用的 NuGet 包复制到输出目录?

转载 作者:行者123 更新时间:2023-12-04 04:24:26 26 4
gpt4 key购买 nike

我正在尝试使用 PhantomJS NuGet package在 .NET 核心 csproj 应用程序中。但我认为不可能使用新的 PackageReference NuGet 的语法。

当我像这样引用 PhantomJS 包时:

<PackageReference Include="PhantomJS" Version="2.1.1">
<IncludeAssets>all</IncludeAssets>
</PackageReference>

当我运行 dotnet build 时它没有做任何事情.

我希望它将 PhantomJS 包中的文件复制到输出目录(或项目中的任何位置),以便我可以使用 PhantomJS 包提供的二进制文件。

还有另一种方法可以使用 MSBuild 将 PhantomJS NuGet 包的内容复制到输出目录吗?

最佳答案

我想你想使用:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

在主 <PropertyGroup> ,这会导致将所有依赖项复制到输出文件夹。这意味着 每个依赖项 虽然会被复制,所以在某些情况下这可能会很困惑。

如果您想排除特定的程序集或包:
<ItemGroup>
<-- won't copy to output folder -->
<PackageReference Include="MahApps.Metro" version="1.6.5">
<IncludeAssets>compile</IncludeAssets>
</PackageReference>
<PackageReference Include="Dragablz" version="0.0.3.203">
<IncludeAssets>compile</IncludeAssets>
</PackageReference>
...

<-- normal will copy to output folder -->
<PackageReference Include="xmlrpcnet" version="3.0.0.266" />
<PackageReference Include="YamlDotNet" version="6.0.0" />
</ItemGroup>


<ItemGroup>
<!-- keep assembly reference from copying to output -->
<Reference Include="$(SolutionDir)MarkdownMonster\bin\$(Configuration)\$(TargetFramework)\MarkdownMonster.exe">
<Private>false</Private>
</Reference>
</ItemGroup>

compile在这种情况下意味着它们可用于编译,但不会复制到输出文件夹。

关于msbuild - 如何将文件从 .NET Core csproj 中引用的 NuGet 包复制到输出目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42862739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com