我正在使用visual studio 2010中的新网络打包功能进行测试,并遇到了一种情况,我使用预构建事件将所需的.dll复制到我的应用程序依赖于API调用的bin文件夹中.它们不能作为参考包含在内,因为它们不是可与interop一起使用的COM dll.
在我构建部署包时,当我选择仅包含运行应用程序所需文件的选项时,将排除这些文件.有没有办法配置部署设置以包含这些文件?我没有找到任何关于此的好文档.
我想要做的是向winform客户端添加一个"Email To ..."按钮,该客户端打开一个新的Outlook邮件窗口并附加一个文件,以便用户可以转发它.如果outlook还没有运行,我可以让outlook集成工作得很好.这是一个C#.NET 4.0 winforms应用程序,使用Outlook 14.0互操作库,在Windows 7 64位计算机上运行Outlook 2010 32位.由于其他原因,我已将应用程序编译为x86,因此我怀疑它是32/64位问题.这是我的代码:
// Connect to outlook and create a new mail item
var app = new Outlook.Application();
var ns = app.GetNamespace("MAPI");
var mailItem = (Outlook.MailItem)ns.Application.CreateItem(Outlook.OlItemType.olMailItem);
// create the mail item and attach the file
mailItem.To = "";
mailItem.Subject = "Emailing: " + Path.GetFileName(_currentFilePath);
mailItem.Attachments.Add(_currentFilePath, Outlook.OlAttachmentType.olEmbeddeditem);
// show the email dialog window
mailItem.Display(true);
Run Code Online (Sandbox Code Playgroud)
如果outlook没有运行,它可以完美运行.一旦打开,我在第一行尝试创建Outlook.Application对象时收到以下错误:
由于以下错误,检索具有CLSID {0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂失败:80080005服务器执行失败(HRESULT异常:0x80080005(CO_E_SERVER_EXEC_FAILURE)).
任何想法会导致什么?这是某种版本的冲突吗?
email-integration ms-office office-interop outlook-object-model winforms-interop
我一直在尝试找到一种方法来更改Windows 7中特定文件扩展名的默认文件关联.我有一个应用程序,用于查看.tif文件,如果它不是默认查看器,我想提示用户文件类型.如果他们选择将其设为默认值,我想覆盖当前的默认查看器.如果系统上没有安装其他查看器,则此方法可以正常工作.当用户选择了另一个查看器时,我无法更改控制此处的注册表项:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice
我已经在网上搜索试图找到这样做的人,但似乎没有人有任何答案.当我尝试更新此密钥中的"Progid"值时,我得到"无法写入注册表项"或"不允许请求注册表访问"错误.代码很简单:
var path = @"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice";
var key = Registry.CurrentUser.OpenSubKey(path, true);
key.SetValue("Progid", "myprogid...");
Run Code Online (Sandbox Code Playgroud)
是否对此密钥有一些特殊保护,以防止以编程方式编辑它?
我有一个场景,我使用visual studio 2010数据库项目将更改部署到多个数据库安装,但在某些情况下,我想从该副本中排除一组视图.有没有办法使用构建配置来排除这些视图的部署?
我有一个我正在构建的项目,我必须更改一个方法,使行为略有不同.我已经针对该方法构建了几个单元测试,但是我需要添加更多来完成我要添加的新行为.在进行代码更改之前,首先更改/添加这些测试是一种好的形式,还是更改代码,修复损坏的测试并添加新测试以涵盖新行为?
我一直在使用RC版VS2010.我想知道是否有人总结了RC版本和RTM之间的变化?
我刚刚加载了RTM并发现了一些不同的小东西.我四处搜索但却找不到任何关于它的信息.
如果没有任何内容列出这些差异,我们可以在找到它们时在这里开始列出它们吗?
如果我有一个博客实体,其BlogEntries集合可能有数百个条目,是否有办法首先使用EF代码添加任何服务器端分页功能?例如,如果我像在DbSet上那样做一个典型的.Skip(x).Take(y),它是否会延迟加载整个集合并将其分页到内存中?
我正在构建一个DDD系统,我们已经为已经设置的系统提供了纸上的所有要求.关于我们如何构建我需要意见的域模型存在分歧.
我倾向于采用这些要求并勾画出一个基本的域模型,其中包含类,它们的属性和行为以及白板或visio上的关系的大纲.然后,我开始构建单元测试,用于逐个构建和测试我的模型.
我的同事似乎认为这不是很好的TDD + DDD练习.他们认为你不应该勾勒出任何东西并开始构建测试,并在你完成测试的"感觉"时设计你的模型.
在构建DDD模型时,哪一种被认为是"正确的"TDD技术?
哪种方法更好,首先创建子实体,然后传递给聚合根添加它们,或者让聚合根创建它们?例如:
Order.AddOrderLine(new OrderLine(product, quantity, ...));
Run Code Online (Sandbox Code Playgroud)
要么
Order.AddOrderLine(product, quanity, ...);
Run Code Online (Sandbox Code Playgroud)
哪种方法更好?我确信这纯粹是主观的,但我想看看哪个有更多的优点与缺点.
在进行测试驱动开发时,我一直习惯于先为新功能编写第一个单元测试,然后编写该功能的代码.如果我有其他测试要编写以涵盖所有场景,我通常在编写代码后编写它们.这被认为是不好的形式吗?在编写代码之前,我是否应该首先尝试为一项功能编写所有可能的测试?
我刚刚开始使用c#,并且想知道是否有更简单的方法来为控件创建事件处理程序.例如,如果我在webform上有一个按钮,我想要一个单击处理程序,我只需打开设计器并双击它就可以创建并连接到我.如果我没有选择使用设计师,除了手工之外还有什么方法可以创建它?例如,在VB中,所有控件都显示在代码窗口下拉列表中,因此您可以选择它们,选择一个事件并将其删除.在c#中有类似的东西,还是我坚持不懈地努力?