我有一个使用BouncyCastle的c#程序。如果我插入一个对iTextSharp的引用,编译器会生成两个引用中已经存在的类的许多错误。我已经指定了所有的名称空间,但它不会更改任何内容。示例:
Org.BouncyCastle.X509.X509Certificate certCopy = DotNetUtilities.FromX509Certificate(oCertificato);如何同时使用BouncyCastle和iTextSharp?
发布于 2021-06-11 21:21:48
就像“franco-de-giorgi”说的那样。将别名添加到库中。
我只是写了一个完整的答案,因为我必须学习什么是Alias以及如何添加和Alias
转到您的引用并转到BouncyCastle上的属性,然后将全局更改为您的个人别名:

然后在你的类中使用一个外部别名来引用,就像这样(而不是使用)
//using Org.BouncyCastle.Crypto.Parameters;
extern alias Merged;在类中添加别名
new Merged::Org.BouncyCastle.OpenSsl.PemReader发布于 2021-10-28 15:34:49
TL;DR:在*.csproj中使用PackageReference的Aliases属性,并将别名添加到受影响的*.cs文件中:
<PackageReference Include="PackageAffectedByConflict" Aliases="AltGlobalNamespace" />extern alias AltGlobalNamespace;
using AltGlobalNamespace.ConflictedName;根据NuGet documentation from Microsoft的说法
在极少数情况下,不同的包将包含相同名称空间中的类。从NuGet 5.7和Visual Studio2019更新7开始,相当于ProjectReference,PackageReference支持别名。默认不提供别名。如果指定了别名,则需要使用别名引用来自带注释的包的所有程序集。
该文档还链接了一个显示如何使用Aliases属性的example on GitHub:
PackageReferenceAliasesExample.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NuGet.Versioning" Version="5.8.0" Aliases="ExampleAlias" />
</ItemGroup>
</Project>Program.cs
extern alias ExampleAlias;
using System;
namespace PackageReferenceAliasesExample
{
class Program
{
static void Main(string[] args)
{
var version = ExampleAlias.NuGet.Versioning.NuGetVersion.Parse("5.0.0");
Console.WriteLine($"Version : {version}");
}
}
}https://stackoverflow.com/questions/54044384
复制相似问题