【发布时间】:2021-05-11 21:53:16
【问题描述】:
努力将已编译的 c++ dll(x86 和 x64)打包以便 C# 库可以使用它。
管理使用 nuspec 文件打包和推送 dll,但是当使用 VS2019 包管理器时,它成功安装了包,但是没有出现引用。 (任何 CPU)
.nuspec
<?xml version="1.0"?>
<package >
<metadata>
<id>component1</id>
<version>1.0.0</version>
<description>mycomponent</description>
<authors>Me</authors>
</metadata>
<files>
<file src="32\component1.dll" target="build\x86" />
<file src="64\component1.dll" target="build\x64" />
<file src="component1.targets" target="lib\net40" />
</files>
</package>
由于消费项目的目标是 .NET 4.0,我创建了一个指向同一框架的 component1.targets 文件
.目标
<ItemGroup Condition=" '$(Platform)' == 'x64' ">
<Reference Include="component1">
<HintPath>"$(MSBuildThisFileDirectory)..\..\build\x64\component1.dll"</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(Platform)' == 'x86' OR '$(Platform)' == 'AnyCPU' OR '$(Platform)' == 'Any CPU' ">
<Reference Include="component1">
<HintPath>$(MSBuildThisFileDirectory)..\..\build\x32\component1.dll</HintPath>
</Reference>
</ItemGroup>
【问题讨论】:
-
$(Platform)' == 'AnyCPU'声明了两次,你在包文件中有target="build\x86",但在ItemGroup中有\build\x32 -
您可能还需要在您的 csproj 文件中添加一个 itemgroup 来将本机 dll 复制到输出目录。
-
你好 gumby,如果我的回答能帮助你解决问题,请不要忘记accept it。
-
嗨 gumby,有关于这个问题的最新消息吗?
标签: c# c++ visual-studio nuget nuspec