我在Visual Studio 2017中创建了一个带有Code Fix(.NET Standard)的Analyzer类型的.NET项目。由此项目类型创建的分析器可以部署为NuGet包或VSIX扩展。我在项目属性中使用了Generate NuGet Package on Build
设置,它工作非常顺利,没有任何问题。
问题是,现在我想为创建的NuGet包添加一些依赖项。我知道这可以通过.nuspec文件用于其他情况。但是在这个项目类型中,VS在bin文件夹中创建了NuGet包,并且没有任何.nuspec文件。
那么如何在上面的场景中为创建的NuGet包添加依赖项呢?
答案 0 :(得分: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
).nupkg
文件或者,由于.nupkg
文件只是具有不同扩展名的.zip
文件,因此您可以更改其内容:
.nuspec
文件的内容,并根据需要添加其他依赖项.zip
文件,并为其指定扩展名.nupkg