首页 文章

添加依赖于.NET Analyzer项目

提问于
浏览
0

我在Visual Studio 2017中创建了一个带有Code Fix(.NET Standard)的Analyzer类型的.NET项目 . 由此项目类型创建的分析器可以部署为NuGet包或VSIX扩展 . 我在项目属性中使用了 Generate NuGet Package on Build 设置,它工作非常顺利,没有任何问题 .

问题是,现在我想为创建的NuGet包添加一些依赖项 . 我知道这可以通过.nuspec文件用于其他情况 . 但是在这个项目类型中,VS在bin文件夹中创建了NuGet包,并且没有任何.nuspec文件 .

那么如何在上面的场景中为创建的NuGet包添加依赖项呢?

1 回答

  • 1

    在使用new .csproj format的Visual Studio 2017中,NuGet依赖项会根据 .csproj 文件的 PackageReference 自动复制到NuGet包中 .

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFrameworks>netstandard1.3;net45</TargetFrameworks>
        <DefineConstants Condition=" '$(TargetFramework)' == 'netstandard1.3' ">$(DefineConstants);LIBLOG_PORTABLE</DefineConstants>
      </PropertyGroup>
    
      <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
    
        <!-- /* Package references for .NET Standard 1.3 */ -->
        <PackageReference Include="Microsoft.CSharp" Version="4.4.0" />
        <PackageReference Include="System.IO.MemoryMappedFiles" Version="4.3.0" />
        <PackageReference Include="System.Resources.ResourceManager" Version="4.3.0" />
        <PackageReference Include="System.Reflection.TypeExtensions" Version="4.4.0" />
        <PackageReference Include="System.Runtime" Version="4.3.0" />
        <PackageReference Include="System.Threading.Thread" Version="4.3.0" />
      </ItemGroup>
    
    </Project>
    

    因此,您需要做的唯一额外事情就是将NuGet中的这些依赖项添加到您的项目中 . 这可以通过以下方式完成

    • 手动编辑项目文件(在解决方案资源管理器中右键单击项目并选择 Edit <projectName>.csproj

    • 通过NuGet软件包管理器安装NuGet软件包

    通过更新.nupkg文件更改依赖关系

    或者,由于 .nupkg 文件只是具有不同扩展名的 .zip 文件,因此您可以更改其内容:

    • 使用标准zip实用程序将其解压缩到临时目录

    • 在临时目录中,修改其 .nuspec 文件的内容,并根据需要添加其他依赖项

    • 再次压缩临时目录的内容

    • 重命名新的 .zip 文件,为其指定扩展名 .nupkg

相关问题