【发布时间】:2017-01-27 02:15:27
【问题描述】:
我有一个使用非托管库libtidy.dll 的应用程序。在我们的代码中使用了一个包装器TidyManaged 来使用它。
我们想从我们的团队服务私有包提要中提取libtidy,以便将其放置在bin 目录中
为此,我正在创建一个 NuGet 包,如下所示:
- 创建目录
libtidy-managed - 将
libtidy.dll和TidyManaged.dll都放到新目录中 - 从此目录运行
nuget spec,包含以下文件
Package.nuspec:
<?xml version="1.0"?>
<package >
<metadata>
<id>libtidy-tidymanaged</id>
<version>1.0.0</version>
<authors>Name</authors>
<owners>Name</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Libtidy TidyManaged</description>
<releaseNotes>Libtidy TidyManaged</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Libtidy TidyManaged</tags>
</metadata>
<files>
<file src="libtidy.dll" target="content" />
<file src="TidyManaged.dll" target="lib" />
<file src="Install.ps1" target="tools" />
</files>
</package>
Install.ps1
param($installPath, $toolsPath, $package, $project)
$file = $project.ProjectItems.Item("libtidy.dll");
If ($file -eq $null)
{
$project.ProjectItems.AddFromFile("libtidy.dll");
$file = $project.ProjectItems.Item("libtidy.dll");
}
$file.Properties.Item("CopyToOutputDirectory").Value = [int]1;
然后我使用 nuget pack 创建包并在本地 nuget 提要中引用新包。
当我构建解决方案时,
libtidy.dll放在 root 目录中,而不是 bin 目录
- 编译后查看
libtidy(在根目录下)的属性时,Copy to output directory设置为Copy always - 当我查看项目属性时,在
build选项卡下,Output path设置为bin\
谁能看出我做错了什么?
注意:这个问题是这个Stack Overflow question 的后续问题 - 接受答案的用户说一切都应该工作,但我仍然遇到这个问题。
据我所知,我是按照他的指示,信中...
【问题讨论】:
标签: c# asp.net-mvc visual-studio nuget nuget-package