【发布时间】:2019-11-01 10:10:01
【问题描述】:
我有一个项目,其中包含对 snt.ScintillaNet.FindReplaceDialog 的 NuGet 包引用。
这个包又引用了未签名的包ScintillaNET。
我的应用程序必须经过签名,因此我引用了 ScintillaNET 包的签名版本。
这很好用,应用程序运行良好。
但是,在构建时,我收到以下警告:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2106,5):警告 MSB3243:无法解决“ScintillaNET”之间的冲突,版本=3.6.3.0,文化=中性,PublicKeyToken=d42c48f11a620156”和“ScintillaNET,版本=3.6.3.0,文化=中性,PublicKeyToken=null”。任意选择“ScintillaNET, Version=3.6.3.0, Culture=neutral, PublicKeyToken=d42c48f11a620156”。
这是有道理的,构建系统看到 2 个引用,一个已签名,一个未签名。
然后它会选择我想要的(签名),一切正常。
我想从构建中删除该警告。
我试图在项目中将MSB3243 作为警告异常,但由于它是 MSBuild 警告而不是编译器警告,因此不能忽略。
我想出了一个非常丑陋的技巧,我将把它记下来作为答案,以帮助遇到相同问题的其他人(以及当我忘记解决方案时的我自己)。
【问题讨论】: