小编Dav*_*Caz的帖子

使用ComVisible(false)时指定Guid有什么意义吗?

在Visual Studio中创建新的C#项目时,生成的AssemblyInfo.cs文件包含指定程序集GUID的属性.属性上方的注释表明它"如果此项目暴露给COM".

我的程序集都没有包含需要对COM可见的类型,因此我已经标记了我的程序集[assembly: ComVisible(false)].那么指定GUID有什么意义吗?

我的感觉是答案是"不" - 那么为什么默认的AssemblyInfo.cs文件包含[assembly: ComVisible(false)][assembly: Guid("...")]


编辑:

总结一下回答:

在它们之间,答案解释了当且仅当正在使用COM互操作时才需要指定GUID.所以,在我的情况下,没有必要使用GUID.

sharptooth进一步解释说,[assembly: ComVisible(false)]并不意味着不使用COM互操作,因为可以覆盖ComVisible各个类型.因此,默认的AssembyInfo.cs包含两者[assembly: ComVisible(false)]和GUID.

.net c# com guid comvisible

38
推荐指数
2
解决办法
2万
查看次数

有没有办法在VB6/Visual Studio 6.0 IDE中显示行号?

在VB6/Visual Studio 6.0 IDE中,是否有一种在代码编辑器中显示行号的方法,就像在最新版本的Visual Studio .NET中一样?

例如,我想向某人询问有关其代码的问题,并且能够说"在MyClass.bas文件的第10行到第13行中,我注意到这发生了."

ide vb6

37
推荐指数
1
解决办法
4万
查看次数

hg搁置相当于git stash drop

我安装了hg shelve(not attic)扩展,我想删除一个补丁.在git中它会是git stash drop.我如何使用搁架扩展来做到这一点?

mercurial shelving

37
推荐指数
3
解决办法
1万
查看次数

如何在Windows 7上注册遗留类型库(.tlb)?

我有一台运行Windows 7和Visual Studio 2010的新PC,需要注册一个传统的类型库(.tlb)来与现有的遗留应用程序进行交互.但是,regtlib.exe似乎不是Windows 7的一部分(我不认为它也是Vista的一部分),并且作为Visual Studio 2005的一部分提供的regtlibv12.exe似乎已经在Visual Studio 2008中消失了(当然还有Visual Studio 2010).

Microsoft论坛和知识库文章引用RegAsm.exe.我已经尝试过RegAsm.exe,但这只会从现有的dll或程序集(我没有)创建并注册一个类型库.我无法相信在Windows 7上无法注册现有的类型库.任何帮助都将非常受欢迎.

typelib windows-7 regtlib

36
推荐指数
2
解决办法
9万
查看次数

在Windows 7/8/10上安装VB6

可能重复:
在Windows 7上有没有人在Visual Studio 6上取得成功?
VB6 IDE是否在Windows 7 64位上运行?

我在Windows 7上安装VB6时遇到了问题.我发现它是一个传统的IDE,我在网上的研究并没有那么大的帮助.每次我尝试在Windows 7上安装VB6时,除了通知我兼容性问题的警报外,安装程序会在接近结束时运行并失败,安装过程最终会失败.当进行另一次尝试时,某些dll文件可能无法访问.

这些只是我访问过的一些链接,希望获得解决方案,甚至只看到一些面包屑:
- 如何在Windows 7上安装VB6
- 在Windows 7 64位上安装VB6

在有人说,"为什么在Microsoft Windows Visual Studio的新版本出现时,你为什么要在Windows 7上安装VB6",VB6仍然需要维护和更新现有的遗留系统.

那么问题是,有没有办法在Windows 7上安装VB6而没有兼容性问题?是否更好的安装虚拟盒并在XP中运行VB6 IDE?还是有其他一些我没有遇到的方法可能适用于这种困境?

谢谢和亲切的问候,

克雷格

vb6 legacy installation legacy-code windows-7

34
推荐指数
2
解决办法
21万
查看次数

Mercurial:如何撤消上次未执行的提交?

我不小心提交了我的本地存储库.更具体地说,当我打算一次提交一个文件时,我同时对大量文件进行了更改.

如何撤消此提交并将我的工作副本恢复到提交之前的状态,这样我就可以做我应该做的事情了?

提交后我没有推或拉或其他任何东西.


您可能怀疑这是重复的,因此我将解释为什么以下问题不同,或者不回答我的问题:

Mercurial撤消上次提交

对此问题的回答表明,您可以执行此操作hg commit --amend,但不解释如何执行此操作或举例说明.mercurail帮助也没有为我说明.

你如何"回滚"Mercurial的最后一次提交?

国家使用hg rollback.这个命令显然已被弃用了,我还是尝试使用它,但是我得到了混乱:没有可用的回滚信息.遗憾的是,这不起作用,因为这将是一种非常直观的方式来实现我想要的.

mercurial

34
推荐指数
2
解决办法
2万
查看次数

Visual Studio版本选择器无法打开

我并排安装了Visual Studio 2008和2010,但尝试打开2008或2010 sln文件却什么都没有.小时玻璃开启大约一秒钟然后它就消失了,没有任何东西被打开.

我读的地方,以SLN文件直接关系到VS,但我不能走这条路,因为我不希望2008年的解决方案与2010年开有谁知道这个问题可能是什么,以及如何解决它?

visual-studio-2010 visual-studio-2008 visual-studio

32
推荐指数
2
解决办法
2万
查看次数

插入带有Dapper错误的IEnumerable <T>集合,"Dapper不支持类".

是的,这里这里有关于如何使用dapper-dot-net插入记录的问题.然而,答案虽然提供了丰富的信息,但似乎并未将我指向正确的方向.情况如下:将数据从SqlServer移动到MySql.将记录读入一个IEnumerable<WTUser>很容易,但我只是没有在插入上得到一些东西.首先,'移动记录代码':

//  moving data
Dim session As New Session(DataProvider.MSSql, "server", _
                           "database")

Dim resources As List(Of WTUser) = session.QueryReader(Of WTUser)("select * from tbl_resource")


session = New Session(DataProvider.MySql, "server", "database", _
                      "user", "p@$$w0rd")

//    *edit* - corrected parameter notation with '@'
Dim strInsert = "INSERT INTO tbl_resource (ResourceName, ResourceRate, ResourceTypeID, ActiveYN) " & _
                "VALUES (@ResourceName, @ResourceRate, @ResourceType, @ActiveYN)"

Dim recordCount = session.WriteData(Of WTUser)(strInsert, resources)

//  session Methods
    Public Function QueryReader(Of TEntity As …
Run Code Online (Sandbox Code Playgroud)

c# vb.net insert dapper

32
推荐指数
1
解决办法
3万
查看次数

你可以在Mac上安装和运行基于.NET框架构建的应用程序吗?

我需要在Mac上使用/继续开发使用.NET开发的桌面应用程序.是否有适用于Mac的.NET framework 4.0?这是否允许在Mac上运行和开发基于.NET的应用程序?

我正在考虑的另一个选择是在Mac上使用Windows虚拟机.

.net macos

32
推荐指数
3
解决办法
9万
查看次数

WinForms ComboBox DropDown和Autocomplete窗口都会出现

我在ComboBox这个代码的winforms应用程序上有一个:

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;

DataTable t = new DataTable();
t.Columns.Add("ID", typeof(int));
t.Columns.Add("Display", typeof(string));

for (int i = 1; i < 2000; i++)
{
    t.Rows.Add(i, i.ToString("N0"));
}

comboBox1.DataSource = t;
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Display";
Run Code Online (Sandbox Code Playgroud)

然后,当窗口打开时,我按照以下步骤操作:

  1. 单击ComboBox下拉按钮 - 显示项目列表并选择文本ComboBox
  2. 输入'5','1'...即我想使用自动完成来搜索515,516等.
  3. 您将看到自动完成窗口现在显示在下拉列表的顶部.但是,如果我将鼠标移过,它就是自动完成窗口后面的模糊下拉窗口,它接收鼠标事件,包括点击.所以我想我点击一个自动完成的项目,但实际上点击了一些我看不到的完全随机的东西.

这是一个错误ComboBox吗?如果重要的话,我正在使用Windows 7.我是以ComboBox某种方式配置错误的?

另请注意,使用KEYBOARD会使用自动完成下拉菜单.所以上/下箭头键正在使用前窗,但鼠标正在使用后窗.

在此输入图像描述

c# combobox autocomplete winforms

30
推荐指数
2
解决办法
4万
查看次数