c# - 外部别名 'xxx' 未在/reference 选项中指定

标签 c# .net

不幸的是,我有两个程序集在同一个命名空间中定义了同一个类型。我正在尝试使用 extern alias来解决这个问题。在 Visual Studio IDE 中,我已将引用的“别名”属性设置为我的别名。这应该将 C# 编译器命令行更改为如下所示:

/reference:MyAlias=MyAssembly.dll

但它实际上并没有这样做。 Visual Studio IDE 似乎只是忽略了引用上的别名属性设置。因此,当我在我的 C# 代码文件的顶部添加行 extern alias MyAlias; 时,我收到错误消息,即编译器的/reference 选项中未指定别名。我不知道我做错了什么。有什么想法吗?

最佳答案

我有同样的问题,我能够重现该问题。

事实证明,在包含 xaml 文件的项目中,引用别名被忽略,这些文件对输出程序集具有 xmlns 定义,如 xmlns:local='clr-namespace:TestProject'。

如果你也认为这是你的情况,请投票给我 bug report在 Microsoft Connect。

编辑: 上面的链接中有一个建议的解决方法,需要手动编辑项目文件。为了让它起作用,我必须给出装配的完整路径。将以下说明添加到项目文件的末尾:

<Target Name="solveAliasProblem" >
<ItemGroup>
 <ReferencePath Remove="FullPath.dll"/>
 <ReferencePath Include="FullPath.dll">
    <Aliases>ourAlias</Aliases>
 </ReferencePath>
</ItemGroup>
</Target>
<PropertyGroup>
    <CoreCompileDependsOn>solveAliasProblem;$(PrepareResourcesDependsOn)</CoreCompileDependsOn>
</PropertyGroup>

关于c# - 外部别名 'xxx' 未在/reference 选项中指定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2502640/

相关文章:

c# - X 轴值两侧添加了空格 - Microsoft Charting

c# - 使用 C# 阻止 Windows 7 的 Internet 连接

.net - 代理模式和适配器模式的区别?

c# - 搜索列表列表

c# - 使用 Dapper 映射 DBNull 时可以抛出异常吗?

c# - 具有全局化的十进制数据类型的 MVC 模态验证错误消息

c# - 增加 .ashx 的超时

c# - 如何在 DataGridView 中更改单元格值时进行监视?

c# - 实现 IComparable 时,为什么相同的项目不始终按相同的顺序放置

c# - 在不使用 Windows 语音识别的情况下,C# 中的语音识别