Tag: visual studio 2010

使用C#注册免费COM互操作,可能吗?

是否可以使用注册免费COM与Dotnet互操作和C#? 如果是这样,如何在C#项目中添加对COM对象的引用? 我有一个免费的ATL COM服务器DLL,带有嵌入式清单和两个测试客户端,一个cpp,另一个c#。 cpp客户端使用import语句正确引用COM对象 #pragma comment(linker, “\”/manifestdependency:type=’win32′ name=’TestComSvr2′ version=’1.0.0.0’\””) 或者在Linker-> Manifest File选项下将’Additional Manifest Dependencies’设置为“type =’win32’name =’TestComSvr1’version =’1.0.0.0’”,之后cpp客户端只要COM组件正确运行在同一目录中。 c#客户端虽然拒绝播放。 尝试将文件引用添加到未注册的COM组件dll或未注册的tlb会导致错误: “无法添加对’blah blah’的引用。请确保该文件是可访问的,并且它是有效的程序集或COM组件”。 仅使用’regtlib TestComSvr’注册类型库,然后创建文件或COM引用,导致c#项目无法构建: “加载类型库/ DLL时出错。(HRESULTexception:0x80029C4A(TYPE_E_CANTLOADLIBRARY))”。 通常在c#项目中注册COM组件并创建引用,将引用设置为Isolated,构建c#项目然后取消注册组件并运行c#项目会导致此exception: 由于以下错误,检索具有CLSID {B1D0A80F-0050-4856-BACD-87D664E58CBE}的组件的COM类工厂失败:80040154未注册类(HRESULTexception:0x80040154(REGDB_E_CLASSNOTREG))。 注意:即使这有效也无论如何都不是一个有用的案例,因为最终它仍然需要注册组件,我只是测试它的彻底性。 到目前为止,我能够从C#引用COM对象的唯一方法是注册COM对象本身,这当然完全违背了这一点,从那以后它根本就没有注册。 有人有任何想法吗? (这是在带有VS2010 sp1的WinXP上)。

VS 2010,NUNit和“断点目前不会被击中。 没有为此文档加载任何符号“

使用Windows 7 32位,VS 2010,.NET 4 DLL,NUnit(2.5.5)对应用程序进行unit testing。 我目前收到以下错误; 看到很多post并尝试了以下内容: 重启机器 重启VS. 删除bin / obj并重新加载 清洁/重建 但是我跑步时无法让NUnit达到我的断点。 我将NUNit测试项目设置为指向nunit.exe,并加载测试.NET 4 DLL,但是当我运行它时没有找到断点,“没有加载符号”。 我尝试了debug> windows> modules,当我运行它时,它甚至没有显示我的unit testing项目。 我找到了这个,使用nunit代理: http ://groups.google.com/group/nunit-discuss/browse_thread/thread/5680d7def5b6982f 但是当我使用nunit代理时,我也会收到错误。 我使用的是nunit-agent-x86.exe,但是我收到了一个system.formatexception,它崩溃了…… 有人可以帮忙吗? 谢谢。

如何使用Linq基于另一个列表过滤列表?

我有这两个列表,一个是Venue对象列表,一个是BlockedVenues对象列表。 我需要过滤listOfAllVenues中的每个项目,以便它不包含任何被阻止的场所 IQueryable listOfAllVenues = MyDB.Venues; IQueryable listOfBlockedVenues = Mydb.BlockedVenue; //I need something to accomplish this please // var listOfAllVenues_WithoutBlocked_Venues = ( Select All venues from listOfAllVenues where listOfAllVenues.ID is NOT in listOfBlockedVenues.VenueID) 请注意,两个列表类型都不同,但listOfAllVenues有一个int ID字段,而listOfBlockedVenues有一个VenueID int字段,我需要使用这两个 非常感谢

了解VS2010 C#并行分析结果

我有一个程序有很多独立的计算,所以我决定并行化它。 我使用Parallel.For / Each。 双核机器的结果还可以 – 大多数时候CPU利用率约为80%-90%。 然而,使用双Xeon机器(即8个内核),我只获得了大约30%-40%的CPU利用率,尽管该程序在并行部分上花费了相当多的时间(有时超过10秒),我看到它使用了与串行部分相比,这些部分中大约有20-30个线程。 每个线程需要1秒以上才能完成,因此我认为没有理由不能并行工作 – 除非存在同步问题。 我使用了VS2010的内置分析器,结果很奇怪。 即使我只在一个地方使用锁,分析器报告大约85%的程序时间花在同步上(5-7%睡眠,5-7%执行,1%IO)。 锁定的代码只是一个缓存(字典)get / add: bool esn_found; lock (lock_load_esn) esn_found = cache.TryGetValue(st, out esn); if(!esn_found) { esn = pData.esa_inv_idx.esa[term_idx]; esn.populate(pData.esa_inv_idx.datafile); lock (lock_load_esn) { if (!cache.ContainsKey(st)) cache.Add(st, esn); } } lock_load_esn是Object类的静态成员。 esn.populate使用单独的StreamReader为每个线程从文件中读取。 但是,当我按下同步按钮以查看导致最大延迟的原因时,我看到探查器报告的是function入口线,并且不会报告锁定的部分本身。 它甚至没有报告包含上述代码的function(提醒 – 程序中唯一的锁定 )作为阻塞配置文件的一部分,噪声级别为2%。 当噪音水平为0%时,它会报告程序的所有function,我不明白为什么它们被视为阻塞同步。 所以我的问题是 – 这里发生了什么? 如何将85%的时间用于同步? 如何找出程序中并行部分的问题? 谢谢。 更新 […]

如何在Visual Studio 2010中添加DirectX引用

如何在Visual Studio 2010中向我的C#项目添加DirectX引用? 谢谢。

无法在global.asax / Application_Start中断

我在Application_Start()的第一行有一个断点,但Visual Studio不会破坏它。 Visual Studio已将自己附加到IIS工作进程: 自动连接到机器’SRD00510’上的'[2092] w3wp.exe’处理成功。 我在家庭控制器中的断点确实有效。 更新 我试过了: iisreset 重启视觉工作室 重新启动。 试图重新安装aspnet( aspnet_regiis -i )

如何从Web服务返回多个值?

我对Web服务世界很陌生,所以请耐心等待。 我正在使用.asmx文件在Visual Studio 2010中创建一个非常简单的Web服务。 这是我正在使用的代码: namespace MyWebService { [WebService(Namespace = “http://www.somedomain.com/webservices”)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] public class Service1 : System.Web.Services.WebService { [WebMethod] public string simpleMethod(String str) { return “Hello ” + str; } } } 当我调用它并为str参数输入值“John Smith”时,它返回: Hello John Smith 我的问题是,为Web服务方法返回超过1个值的最佳做法是什么? 如果值都是相同的数据类型,我应该使用数组吗? 如果值包含不同的数据类型,我需要创建自定义类吗?

在Visual Studio 2010中使用代码覆盖率运行NUnit测试

我们最近从Visual Studio 2008升级到Visual Studio 2010.作为我们代码库的一部分,我们有一大堆NUnit测试。 我们希望能够在Visual Studio中运行这些unit testing,但启用了代码覆盖 。 我们有ReSharper,因此可以在Visual Studio中运行测试,但它不允许代码覆盖工具执行其操作并生成coverage统计信息。 有没有办法让这项工作,或者我们是否必须将测试转换为MSTest? 编辑:我们已经尝试过建议的工具: TestDriven.Net 这在Visual Studio中运行NUnit测试很好,甚至可以使用代码覆盖,但它还包括测试作为覆盖程序集的一部分。 似乎没有办法排除测试,但包括正在测试的程序集(我们的测试与他们测试的代码在不同的程序集中)。 我们也不想花费额外的2000英镑,这将花费我们为整个团队获得TestDriven.net。 加利奥 这没用。 为了获得覆盖输出,测试需要在Visual Studio测试运行器中运行。 Gallio不为NUnit提供此支持。 还有什么想法? 我们确实找到了几个开源尝试来让这种类型的东西工作,但是它们已经陈旧并且长时间没有被触及(因此不支持VS2010)。

Debug .NET Framework的源代码仅显示Visual Studio 2010中的反汇编

我正在尝试使用Visual Studio 2010 Professional调试.NET Framework的源代码。 我按照Raj Kaimal的post中描述的步骤进行了操作,但是我必须做错了,因为我能看到的唯一代码是反汇编代码: 替代文字http://sofzh.miximages.com/c%23/vs2010DebugFramework.jpg 正如您在图像中看到的,禁用了“ 转到源代码”和“ 加载符号”选项。 然而,从Microsoft的服务器下载符号,因为我可以在本地缓存目录中看到它们。 我正在调试的代码如下: var wr = WebRequest.Create(“http://www.google.com”); Console.WriteLine(“Web request created”); var req = wr.GetRequestStream(); Console.Read(); 当我点击F11进入第一行代码时,会弹出一个窗口,查找“f:\ dd \ ndp \ fx \ src \ Net \ System \ Net \ WebRequest.cs”中的“WebRequst.cs”文件。在我的机器上不存在。 我错过了什么?

调用堆栈上的条件断点

是否可以在Visual Studio 2010中指定断点,只有在调用堆栈的调用方法满足某些特定条件时才会命中该断点? 例如,很可能是方法名称。 我理想地在Visual Studio中寻找一个解决方案,例如条件断点,但我会决定在代码中测试堆栈中的方法名称并使用编码断点。 我想要实现的是切断来自特定呼叫者的呼叫。