2

我想在“copy local = false”模式下在我的包中引用 dll。换句话说,我不希望我的软件包附带的 dll 在构建后被复制到输出目录中。

在“packages.config”场景中可以通过在 tools/install.ps1 文件中添加以下脚本来完成此操作。

param($installPath, $toolsPath, $package, $project)
$asms = $package.AssemblyReferences | %{$_.Name} 
foreach ($reference in $project.Object.References) 
{
    if ($asms -contains $reference.Name + ".dll") 
    {
        $reference.CopyLocal = $false;
    }
}

我知道具有 PackageReference 功能的最新 Nuget 版本仅使用 init.ps1 脚本。但是我不知道我应该在那个脚本中写什么。

我也知道包用户可以添加...

<ExcludeAssets>Runtime</ExcludeAssets>

实现这一目标。但作为包作者,我真的很想强制执行这种行为。那么是否可以在脚本中添加它?

4

0 回答 0