Tag: c ++

MSI不在C#内运行

我试图使用Proces.Start方法从C#运行MSI文件。 MSI文件很好,因为我可以正常运行,但是当我尝试在某些C#代码中运行MSI文件时,我收到以下错误。 “无法打开此安装包。validation包是否存在,以及您是否可以访问它,或联系应用程序供应商以validation这是否是有效的Windows安装程序包” 下面是我用来运行MSI文件的代码…… Process p = Process.StartApplication.StartupPath “/Packages/Name.msi”); p.WaitForExit(); 我该如何解决这个问题? 好的,我现在明白了。 我刚刚更改它以运行使用MSI文件生成的setup.exe文件,而不是运行MSI文件…

用C#指示生成int数组?

以下C ++程序按预期编译和运行: #include int main(int argc, char* argv[]) { int* test = new int[10]; for (int i = 0; i < 10; i++) test[i] = i * 10; printf("%d \n", test[5]); // 50 printf("%d \n", 5[test]); // 50 return getchar(); } 我能为这个问题做出的最接近的C#简单示例是: using System; class Program { unsafe static int Main(string[] args) { // error […]

如何在Sql commandText中传递int参数

如何传递像SQL命令参数这样的整数值? 我这样想: cmd.CommandText = (“insert_questions ‘” + cmd.Parameters.AddWithValue(store_result,store_result) + “‘,'” + cmd.Parameters.AddWithValue(store_title, store_title) + “‘, ‘” + cmd.Parameters.AddWithValue(store_des, store_des) + “‘”); store_result是int,其他2个参数是字符串类型。 store_result正在给出如下错误消息。 参数1:无法从’int’转换为’string’ 在SP中,有另一个int类型变量,它将获得store_result的值。 传递int参数的正确语法是什么? 谢谢。

Windows Phone 8(仅限C ++) – 可以访问设备制造商吗?

目前正在使用纯C ++ / Direct3D开发Windows Phone 8应用程序。 我们现在需要访问设备制造商名称,但它似乎只能在C#下使用,根据我的研究,这种类型的应用程序无法访问它。 此页面列出了我想要使用的一些调用: http : //msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.info.devicestatus(v = vs.105).aspx 。 // If only I could call this line from C++ DeviceStatus.DeviceManufacturer; 无论如何都可以获得这些信息,而无需将应用程序重构为允许基本应用程序为C#的XAML / C ++混合应用程序。

对多个驱动程序运行WebDriver NUnit测试

我们最近开始使用WebDriver(支持Selenium 1)使用NUnit框架执行浏览器测试。 由于我们希望在各种浏览器中运行测试,因此我们为每个浏览器定义驱动程序,并在夹具设置期间将它们放入列表中: [TestFixtureSetUp] public void SetupTest() { // Load drivers Drivers = new List { new ChromeDriver(), … }; 在每个单独的测试中,我们遍历列表,如下所示: [Test] public void SomeTest() { foreach (var driver in Drivers) { driver.Navigate().GoToUrl(“…”); … 在所有测试方法中都这样做是错误的。 测试方法不应该关注他们应该使用什么驱动程序。 理想情况下,我们会有这样的事情: public void SomeTest(IWebDriver driver) { driver.Navigate().GoToUrl(“…”); … 我们可以解决这个问题的一种方法是使用TestCases: [TestCase(new ChromeDriver())] [TestCase(new FireFoxDriver())] … 但这有很多重复,并将驱动程序正确初始化的问题转移到每个测试的属性中。 不是真正的收获。 是否有任何方法可以告诉NUnit框架执行整套测试并在每次运行中为各个测试注入不同的参数? 或者还有其他任何好的解决方案吗?

AutoMapper – 为何使用Map over DynamicMap?

假设您使用AutoMapper进行映射的对象不需要自定义映射,那么执行此操作是否有意义: Mapper.CreateMap(); // …. Mapper.Map(SrcObject, DestObj); 如果不需要自定义映射,上述方法是否只需使用DynamicMap就可以获得任何优势而无需任何先前的配置? Mapper.DynamicMap(SrcObject, DestObj); 我确实理解在映射匿名类型时需要 DynamicMap ,但我问的是DyanmicMap是否不适用于不需要自定义映射的静态类型。

IE VS Chrome和Firefox中的网络安全(bug)

为什么Web Security在不同的浏览器上的工作方式不同: 细节: 我有两个申请 一个是简单的HTML应用程序,另一个是ASP.NET MVC4 WebApi应用程序,项目在同一个解决方案中,我已经设置了多个启动项目来同时运行应用程序。 工作版本: 我在Web API项目中使用了Web Security。 我完全实现了网络安全…… 登录操作代码 // GET api/company [System.Web.Http.AcceptVerbs(“Post”)] [System.Web.Http.HttpPost] public HttpResponseMessage Login(LoginRequest loginRequest) { try { if (WebSecurity.Login(loginRequest.EmailAddress, loginRequest.Password, true)) { var userDetails = new string[2]; userDetails[0] = loginRequest.EmailAddress; var currentUSerRole = Roles.GetRolesForUser(loginRequest.EmailAddress); userDetails[1] = currentUSerRole[0].ToString(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Accepted, userDetails); return response; } else { […]

NUnit TestCaseSource

我正在使用TestCaseSource属性。 一个问题:当sourceName字符串无效时,测试只会被忽略而不是失败。 如果重命名源方法,sourceName字符串没有更新,那么这将非常糟糕,然后您将失去测试提供的覆盖范围。 有没有办法改变NUnit的行为,如果sourceName无效,测试失败?

ListView ManipulationCompleted事件在手机上不起作用

我在Windows 10 UWP应用程序中有此代码: MyListView.ManipulationMode = ManipulationModes.TranslateX; MyListView.ManipulationStarted += (s, e) => x1 = (int)e.Position.X; MyListView.ManipulationCompleted += (s, e) => { x2 = (int)e.Position.X; if (x1 > x2) { DataController.PaneOpen(false); }; if (x1 < x2) { DataController.PaneOpen(true); }; }; ManipulationCompleted事件在ListView中无法在手机上运行。 处理程序中的代码永远不会被调用。 它在PC上工作正常,但在手机上不起作用。 我不明白为什么。

为什么在Windows服务停止时调用base.OnStop()?

我正在创建一个C#.Net Windows服务,我想知道你是否总是要调用base.OnStop(); 在服务的OnStop()方法中为什么? protected override void OnStop() { threadRunning = false; this.ExitCode = 0; base.OnStop(); }