我正在尝试打包引用C ++ DLL的.NET DLL。 nuspec文件如下所示:
<?xml version="1.0"?>
<package >
<metadata>
<id>MyPackage</id>
<version>1.0.0</version>
<authors>some author</authors>
<owners>some owner</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>.NET Wrapper for rebuilt 64-bit version of MyPackage</description>
<copyright>Copyright 2014</copyright>
</metadata>
<files>
<file src="x64\MyPackage64.dll" target="content" />
<file src="MyPackageNET.dll" target="lib" />
</files>
</package>
当我检查生成的nupkg文件时,内部文件结构显示正确。 C ++ DLL位于content
中,.NET DLL位于lib
中。
当我将nupkg安装到项目中时,内容DLL将添加到项目根目录中,并且lib DLL将添加到解决方案packages
目录中。
但是,项目中添加了无引用。我被迫手动添加引用。我尝试将以下节点添加到元数据中,但无济于事:
<references>
<reference file="MyPackageNET.dll" />
</references>
我做错了吗?我已经生成了其他的nuspec&amp; varoius .csproj文件中的nupkg文件,可以正确地添加对已安装项目的引用。有什么关于我错过的个别DLL的包装是否保留了参考项目的添加?
在相关的说明中,如果我无法自动添加引用,任何人都可以指引我使用任何可以解释$ project.Object.Reference.Add方法的语法的资源,或者哪些资源可以帮助我以编程方式添加引用DLL到我的项目?
答案 0 :(得分:2)
我遇到了同样的问题,还有无法卸载软件包的其他症状。我按照Can't uninstall/reinstall NuGet package的指导和将packages.config文件添加到项目。我不得不从我的解决方案文件夹中复制该文件,因为我的项目还没有该文件。这样做可以纠正这两种症状。