我承认我是xaml
世界的新手但是看到使用内置Visual Studio模板的警告表明除了我的大脑之外可能还有另一个问题。
如果我使用VSIX Project
在Visual Studio中创建一个空的Add -> New Project
(它必须是一个VSIX项目),然后继续使用Add -> New Item -> User Control (WPF)
创建一个新的用户控件,在我编译代码后,编辑器向我显示警告Ambiguous invocation
就行了InitializeComponent()
,如下图所示:
Designer视图中也有警告,如下所示:
警告仅出现在编辑器中。构建项目没问题,如下所示:
请注意,如果您将User Control (WPF)
添加到Class Library (.NET Framework)
项目,则没有警告,如下所示:
如果我查看obj/Debug/
的SomeProject
文件夹,我会看到SomeControl
的两个文件。第一个是SomeControl.g.cs
,第二个是SomeControl.g.i.cs
。文件是相同的。
同样适用于obj/Debug/
的SomeOtherProject
文件夹,没有警告。
我已经克隆了各种官方微软回购(例如UnitTestBoilerplateGenerator),并且此处也出现了警告,例如:src/View/CreateUnitTestBoilerplateDialog.xaml.cs的InitializeComponent()
,如下所示:
这是怎么回事?? =(
这是使用Visual Studio 15.4和ReSharper 2017.2.2;我似乎没有使用旧版本的Visual Studio / ReSharper获得此警告。
这似乎是ReSharper特定的问题,因为在暂停ReSharper之后警告不再存在。我通过ReSharper -> Help -> Report a Bug or Submit Feedback...
提交了一个错误。
这是ReSharper 2017.2.x的a known issue
更新:它已在ReSharper 2017.3版本中修复。