我有两个程序集,不幸的是在同一名称空间中定义了相同的类型.我正在尝试使用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选项中未指定别名.我无法弄清楚我做错了什么.有任何想法吗?
当我使用强名称工具创建一个新的密钥来签署.NET程序集时,我得到一个Access is Denied错误消息.这在Windows XP机器上运行得很好,但它在我的Vista机器上不起作用.
PS C:\users\brian\Dev\Projects\BELib\BELib> sn -k keypair.snk
Microsoft (R) .NET Framework Strong Name Utility Version 3.5.21022.8
Copyright (c) Microsoft Corporation. All rights reserved.
Failed to generate a strong name key pair -- Access is denied.
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个问题,我该如何解决?
您是否以管理员身份运行PowerShell或命令提示符?在您习惯用户访问控制或关闭用户访问控制之前,我发现这是第一个查看的地方.
是的我尝试以管理员身份运行PS和常规命令提示符.出现相同的错误消息.
我正在开发一个C#应用程序,它使用一些XML文件和System.Xml中的一些类.同事坚持在我们的安装中添加MSXML6可再发行组件以及.NET框架,但我认为.NET框架无论如何都不会使用或需要MSXML.我很清楚,不支持使用.NET中的MSXML,但我认为理论上System.Xml本身可以将MSXML包装在较低级别.我没有找到任何确定的.NET有自己的实现,但我也找不到任何暗示需要MSXML的东西.
帮我解决辩论.System.Xml是否使用MSXML?
我尝试使用下面的代码创建自定义.NET属性,但不小心将子类留下了.这会在注释中生成一个容易修复的编译器错误.
// results in compiler error CS0641: Attribute 'AttributeUsage' is
// only valid on classes derived from System.Attribute
[AttributeUsage(AttributeTargets.Class)]
internal class ToolDeclarationAttribute
{
internal ToolDeclarationAttribute()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是编译器如何知道[AttributeUsage]
属性只能应用于子类System.Attribute
?使用.NET Reflector我没有看到AttributeUsageAttribute
类声明本身有什么特别之处.不幸的是,这可能只是编译器本身生成的一种特殊情况.
[Serializable, ComVisible(true), AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class AttributeUsageAttribute : Attribute
{
...
Run Code Online (Sandbox Code Playgroud)
我希望能够指定我的自定义属性只能放在特定类(或接口)的子类上.这可能吗?
我有一个引用C++/CLI混合模式项目的WPF C#项目.我在Expression Blend 3中使用WPF项目时遇到了麻烦.我是Blend的新手,所以这很明显,但在构建项目之前它不会正确显示xaml设计器.在我的情况下,它抱怨我的自定义命令不是"识别或可访问",解决方案是在Blend中构建项目.但我无法构建项目,因为它引用了Blend无法加载的C++/CLI混合模式项目.WPF项目是纯C#,恰好引用了C++/CLI混合模式项目,但我不是要求Blend对混合模式程序集做任何事情.我该如何解决这个问题?
编辑: 通过删除对C++/CLI混合模式项目的引用并将其替换为对实际程序集的引用,我能够构建它.但是这并不理想,因为在我过去的经验中,在发布和调试配置之间切换时,Visual Studio将无法始终解析引用.
我在Visual Studio的表单编辑器中被一些奇怪的行为所困扰.我在我的应用程序中看到了几种不同的形式.每次我在Visual Studio的布局编辑器中打开表单时,某些控件将位于与我离开时不同的位置.通常,一些按钮从右下角向上移动一点点.但它不仅仅是按钮,在一种情况下它是一个移动的容器面板.我必须重新定位它们然后保存并关闭表单.我已经确认Location
在打开表单时布局编辑器实际上正在更改属性,因为如果我保存并关闭具有正确位置的按钮的表单,它们将在运行时正确.
这是不符合的问题Anchor
或Dock
没有正确设置属性.编辑器实际上正在改变Location
我的控件的属性.我查看了.designer.cs文件,我没有看到任何异常.我已经尝试删除并重新创建这些控件,但问题仍然存在.
任何想法我能做什么?
它不是一个显示限制器我只需要非常小心每次在winforms布局编辑器中打开它时手动修复控件.
编辑:Visual Studio实际上会自动检出文件,以设置Location
它固执地认为它应该是什么.
我公司有许多相对较小的Access数据库(2-5MB),可以控制我们的用户辅助设计工具.当然,随着数据错误的发现和修复以及架构的变化以支持工具中的新功能,这些数据库会随着时间的推移而发展.任何人都可以推荐数据库差异工具来比较从一个版本的数据库到下一个版本的数据和架构吗?任何建议将不胜感激:免费,开源或商业.