我有一个使用{{1}}属性的原生.dll的.NET项目。我们的项目指南禁止我们将任何DLL作为源代码的一部分。我使用nuspec文件创建了相同的NuGet包。现在问题是如何使用包而不将其引用到项目。我想将DLL复制到输出目录而不是在项目中引用。
我已经尝试添加包配置文件,并尝试使用prebuild命令恢复包并进一步复制,但没有解决。
任何人都有任何建议如何打包本机DLL并在项目中使用它以某种方式引用它?
答案 0 :(得分:1)
不能确定您的要求,即您希望dll位于构建目录中,但不会在项目中引用它。
我猜你可以用目标做到这一点。
IE: Nuget Nuspec文件:(有更多必填字段,但只列出相关字段)
<?xml version="1.0"?>
<package >
<metadata>
<id>NugetName.Core</id>
</metadata>
<files>
<file src="bin\Debug\YourDll.dll" exclude="lib\net452\YourDll.dll" />
<file src="YourDll.dll" target="build\YourDll.dll" />
<file src="NugetName.Core.targets" target="build\" />
</files>
</package>
制作NugetName.Core.targets文件
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)YourDll.dll">
<Link>YourDll.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>