如何解决使用该 nuget 包将 nuget 包内容文件.exe 类型复制到项目的输出目录
我有一些项目,其中有一些 exe 作为“依赖项”,我将该项目构建为 .csproj
文件中的 nuget 包
文件看起来像这样:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<Version>1.1.2</Version>
<PackageId>MyLib</PackageId>
<Authors>me</Authors>
<Company>me</Company>
</PropertyGroup>
<ItemGroup>
<None Remove="CliInterface\32BitInterface.exe" />
</ItemGroup>
<ItemGroup>
<Content Include="CliInterface\32BitInterface.exe">
<copyToOutputDirectory>Always</copyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<packagereference Include="Microsoft.CodeAnalysis.FxcopAnalyzers" Version="3.3.0">
<PrivateAssets>analyzers;build</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</packagereference>
</ItemGroup>
</Project>
当我在其他解决方案中使用该 nuget 包时,我可以看到文件在那里
但是它不会复制到输出文件夹。
事实上,正确的是当我从 Build
运行 Visual Studio
项目时,但我在 dotnet build
环境中使用 CI/CD
命令并且当我运行该命令。
编辑: 我还注意到该 exe 的位置在 %USERPROFILE%.nuget 文件夹内 以及我的 csproj 文件(来自其他解决方案,引用该 nuget 包)具有硬编码路径,其中包含我的用户名。我不知道为什么会这样,但不喜欢那样
解决方法
相反,尝试使用这个
<PackageCopyToOutput>true</PackageCopyToOutput>
在 csproj
文件中添加这些:
<ItemGroup>
<Content Include="CliInterface\32BitInterface.exe">
<PackageCopyToOutput>true</PackageCopyToOutput>
</Content>
</ItemGroup>
然后然后重新打包您的 lib 项目。当您尝试安装此新发布版本时,请不要忘记 clean nuget caches first 或删除 C:\Users\xxx(current user)\.nuget\packages
下的缓存文件。
此外,这也是a similar issue about this。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。