NuGet:在不创建引用的情况下复制 .DLL 文件?
NuGet: Copying .DLL file without creating a reference?
我正在使用它开发我的第一个 open source project and now I want to create a NuGet,因此它很容易使用。
在我的项目中,我使用的是第三方 DLL (CoolProp.dll)。
当运行程序需要有dll时:
..\bin\Release\CoolProp.dll
在解决方案资源管理器 (VS) 中,我已将 CoolProp.dll 设置为:
Build Action: None
Copy to Output Directory: Copy always
只要 运行 代码,所有这些都可以正常工作。
我在.nuspec文件中添加了:(让它复制dll文件)
<file src="bin\Release\CoolProp.dll" target="lib\net461" />
安装 Nuget 时出现以下错误:
Failed to add reference to 'CoolProp'
Please make sure that the file is accessible, and that it is a valid assembly or COM component.
我猜它正在尝试添加对 dll 文件的引用,这是不应该做的。它应该只复制它而不是其他任何东西。
我做错了什么?还是我误解了什么?
我终于让它工作了!
我的错误是将 dll 放入了 "lib\net461" 文件夹。
据我了解,将其放入该文件夹会告诉系统对其进行引用。
相反,我这样做了:
<file src="..\CoolProp.dll" target="build\" />
<file src="..\SharpFluids.targets" target="build\" />
创建了一个文件名 "SharpFluids.targets" 并将其放入其中:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<NativeLibs Include="$(MSBuildThisFileDirectory)**\*.dll" />
<None Include="@(NativeLibs)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
所以现在它只是将 dll 文件复制到输出文件夹中,而不尝试创建对它的引用。
我正在使用它开发我的第一个 open source project and now I want to create a NuGet,因此它很容易使用。 在我的项目中,我使用的是第三方 DLL (CoolProp.dll)。
当运行程序需要有dll时:
..\bin\Release\CoolProp.dll
在解决方案资源管理器 (VS) 中,我已将 CoolProp.dll 设置为:
Build Action: None
Copy to Output Directory: Copy always
只要 运行 代码,所有这些都可以正常工作。
我在.nuspec文件中添加了:(让它复制dll文件)
<file src="bin\Release\CoolProp.dll" target="lib\net461" />
安装 Nuget 时出现以下错误:
Failed to add reference to 'CoolProp'
Please make sure that the file is accessible, and that it is a valid assembly or COM component.
我猜它正在尝试添加对 dll 文件的引用,这是不应该做的。它应该只复制它而不是其他任何东西。
我做错了什么?还是我误解了什么?
我终于让它工作了!
我的错误是将 dll 放入了 "lib\net461" 文件夹。 据我了解,将其放入该文件夹会告诉系统对其进行引用。
相反,我这样做了:
<file src="..\CoolProp.dll" target="build\" />
<file src="..\SharpFluids.targets" target="build\" />
创建了一个文件名 "SharpFluids.targets" 并将其放入其中:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<NativeLibs Include="$(MSBuildThisFileDirectory)**\*.dll" />
<None Include="@(NativeLibs)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
所以现在它只是将 dll 文件复制到输出文件夹中,而不尝试创建对它的引用。