我有两个程序集,不幸的是在同一名称空间中定义了相同的类型.我正在尝试使用a extern alias来解决问题.在Visual Studio IDE中,我已将引用的"别名"属性设置为我的别名.这应该是将C#编译器命令行更改为:
/reference:MyAlias=MyAssembly.dll
Run Code Online (Sandbox Code Playgroud)
但它实际上并没有这样做.Visual Studio IDE似乎只是忽略引用上的别名属性设置.因此,当我extern alias MyAlias;在C#代码文件的顶部添加行时,我得到错误,即在编译器的/ reference选项中未指定别名.我无法弄清楚我做错了什么.有任何想法吗?
orc*_*cun 22
我有同样的问题,我能够重现这个问题.
原来参考别名上含有具有了xmlns定义像的xmlns输出组件XAML文件项目忽略:本地="CLR-名称空间:TestProject".
如果您认为这也是您的情况,请在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>
Run Code Online (Sandbox Code Playgroud)
soo*_*ise 10
Brian,我和你有同样的问题,我想出了如何修复它.
我会做同样的事情:
我仍然会得到错误.在搞砸了一下后,我发现修复它的方法是将引用的dll设置为你正在使用的解决方案之外的dll.一旦我这样做,我们看到的错误消息就消失了,我能够继续我的项目.
我希望有所帮助,快乐编码!
使用以下步骤在 VS2008 中为我工作:
extern alias MyAlias. 这必须出现在任何using声明之前。using MyAlias::MyNamespace.