Tag: visual studio 2010

Visual Studio 2010:如何引用具有第三方依赖性的C#.Net类库项目

这可能是一个非常基本的问题,但我没有找到有关项目引用如何在Visual Studio中工作的任何详细信息。 我有一个Visual Studio 2010 C#解决方案,其中包含一个MainApp项目和一个内部带有第三方程序集的C#类库项目。 当从MainApp项目引用类库项目时,我应该只添加项目引用还是需要在类库项目中添加对第三方程序集的引用? 在某些情况下,如果我在MainApp项目中只有类库项目引用,似乎第三方程序集未正确加载,尽管在构建完整解决方案时所有DLL文件(包括第三方DLL)都显示在输出文件夹中。 编辑:我发布了一个更具体的问题,因为一般的答案在我的案例中没有帮助: 如何使用IronPython引用自包含的C#类库项目(Visual Studio 2010)

Windows安装程序:动态注册表项/值

我的问题的概要: 是否可以在VS2010的Windows安装项目的注册表屏幕中使用您自己的自定义变量(您可以使用[TARGETDIR]的方式)? 具体来说,我需要将程序集的强名称和程序集版本存储在注册表中,以便在计算机上注册COM对象,而无需安装用户具有管理员权限。 我已经尝试过使用自定义操作了,如果可能的话,我宁愿不继续沿着这条路走下去。 以下是具体内容,以及我尝试过的内容: 最近,我的雇主开始盲目地从他们的机器中删除所有员工的管理权限。 我创建了一个COM暴露的C#类,我在我的一些工作站上使用它,不再能够注册,因为我不再拥有HKEY_CLASSES_ROOT下的相应权限。 通过谷歌搜索,我发现如何在HKCU *下注册所有适当的密钥,但现在我想在我的部署项目中实现这一点。 我了解如何在Windows安装程序中使用注册表屏幕,但是需要存储自定义键/值(安装文件夹,程序集强名称,版本)。 我可以使用自定义操作,但理想情况下,我希望Windows安装程序管理我的注册表设置,因为(a)它比我在卸载时自动删除所有正确的键/值更好,(b)在安装期间,注册表更改是事务性的并且在安装错误时回滚,并且(c)注册表项安装/删除/事务的逻辑已经由Microsoft编写,我不必自己重写它。 该项目在VS2008直到今天,但我刚刚升级到VS2010,所以可能在2008年到2010年之间发生了一些可能允许这种行为的变化。 因此,有没有更好的方法来实现这一目标,而不是使用自定义操作? 编辑:我找到了这个答案,这似乎表明您可以访问安装项目中的Windows安装“注册表”表。 不过,我不知道如何访问它。 在过去,我似乎记得您可以从特殊的外部工具(Orca)访问MSI数据库,但我不知道您是否可以在安装项目中访问这些表。 编辑2:啊,我可能会做某事; 也许是一个后期制作活动: 使用Orca从命令行编辑msi? , 使用SQL和脚本的数据库查询示例 , WiRunSQL.vbs *运行RegAsm两次 – 一次使用/ codebase,一次不使用; 两次使用/ regfile选项。 然后将两个文件合并在一起(删除重复项),并用HKCU \ Software \ Classes替换所有HKCR引用。

如何为两个Windows窗体应用程序共享一个IsolatedStorage?

我在一个解决方案中有两个Windows窗体应用程序和库。 库类可以在IsolatedStorage中创建新文件夹和文件,并列出IsolatedStorage中的所有文件和文件夹。 第一个应用程序使用库类创建新文件夹/文件我希望第二个应用程序列出第一个应用程序创建的文件夹。 如何让他们使用相同的隔离存储?

Visual Studiounit testing安全例外

我正在开发一个监视打印队列的应用程序。 要做到这一点,它需要能够管理它们。 当我运行它进行调试时,应用程序运行正常,但是,当我尝试对类进行unit testing时,会抛出安全exception。 有没有办法让visual studiounit testing具有更高的安全级别? PrintQueue q = new PrintQueue(server, QueueName, PrintSystemDesiredAccess.AdministratePrinter); 抛出exception:尝试通过安全透明方法’MS.Internal.PrintWin32Thunk.PrinterDefaults.Dispose(Boolean)’来访问安全关键方法’MS.Internal.PrintWin32Thunk.PrinterDefaults.InternalDispose(Boolean)’失败。 同样,在unit testing之外使用时,不会抛出任何exception并且类按预期工作。 我曾尝试以管理员身份运行visual studio,但仍然收到exception。 更新:看起来我将无法测试这个类。 包含它的类库已经用.NET 3.5编写,这就是使用该类时不会发生exception的原因。 我做了一些进一步的实验,发现虽然这个类库以.NET 3.5为目标,但是抛出exception的类不能被面向.NET 4.0的应用程序使用。 Visual Studio测试项目需要以.NET 4.0为目标。

在c#中使用信号量

嗨,我想在我的应用程序中使用信号量。我已经这样声明了。 using System; using System.Threading; // This thread allows only two instances of itself // to run at any one time. class MyThread { public Thread Thrd; static Semaphore sem = new Semaphore(2, 2); public MyThread(string name) { Thrd = new Thread(this.Run); Thrd.Name = name; Thrd.Start(); } 但我无法编译它给我这个错误 The type or namespace name ‘Semaphore’ could […]

到达代码,不执行并退出而没有错误

我的所有代码都可以正常工作: using System.Diagnostics; namespace WebPortalLogging { public static class EventLogging { public static void LogEvent(string origin, string message, EventLogEntryType eventLogEntryType, int eventId) { const string source = “Software”; const string log = “Application”; if (!EventLog.SourceExists(source)) EventLog.CreateEventSource(source, log); EventLog.WriteEntry(source, message, eventLogEntryType, eventId); } } } 我甚至在另一个项目中使用这个类,它工作正常。 当它到达这一行时: if(!EventLog.SourceExists(source))EventLog.CreateEventSource(source,log); 它击中了这条线并退出。 这是我输出中的内容: The thread ‘vshost.NotifyLoad’ (0x28c) has exited […]

数据驱动unit testing问题

我有一些麻烦让我的unit testing设置为使用Excel .xlsx数据源。 我的App.config文件: 我已经validation它正在找到TestData.xlsx ,并且有一个名为GetAllCellNamesTest的工作表。 在我的unit testing类中,我有以下设置: [TestMethod()] [DeploymentItem(“TestProject\\TestData.xlsx”)] [DataSource(“GetAllCellNamesTest”)] public void GetAllCellNamesTest() { // … test code TestData.xlsx正被复制到测试结果目录中,并且所有不尝试引用数据源的unit testing都将被传递。 但是,这一个测试失败并显示以下消息: The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see “Troubleshooting Data-Driven Unit Tests” (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library. […]

c#Linq选择不同的日期时间天

我有以下方法,我计划返回一堆不同的日期时间对象。 通过不同我意味着独特的日子(不包括时间)。 问题是,DateTime对象具有不同的时间,因此即使它们是同一天,也会评估为唯一。 如何让查询忽略日期的时间部分,只是为了评估唯一性的日期? public List DistinctNoticeDates() { return (from notices in this.GetTable() orderby notices.Notice_DatePlanned descending select notices.Notice_DatePlanned).Distinct().ToList(); } 谢谢。

80040154 Outlook 2010中未注册ERROR的类添加

我正在使用Visual Studio 2010创建Outlook 2010添加。 我尝试创建一个新的Outlook AppointmentItem来考虑我最终可以将它添加到日历中。 Microsoft.Office.Interop.Outlook.AppointmentItem tempApp = new Microsoft.Office.Interop.Outlook.AppointmentItem(); 但是当AddIn运行并尝试创建AppointmentItem对象时,我在上面的行中收到此错误。 System.Runtime.InteropServices.COMException was unhandled by user code Message=Retrieving the COM class factory for component with CLSID {00061030-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). Source=mscorlib ErrorCode=-2147221164 我可以做些什么来“注册课程”? 我猜这与某些方面的Microsoft.Office.Interop.Outlook.dll有关。

添加Web引用时,Acces拒绝路径

我正在使用VS 2010,当我尝试添加任何Web引用时,我有一个winform应用程序,但它不会让我点击“添加引用”按钮。 wsdl文件在我的dektop上,所以没有理由让我无法访问它。 任何帮助,将不胜感激。 我读了很多类似的文章,但没有退出。