小编Tim*_*Tim的帖子

如何通过CI平台(Hudson)自动增加C#程序集版本?

我自己和我的团队在增加程序集版本号时非常可怕,我们经常发送1.0.0.0版本的程序集.显然,这会引起很多麻烦.

我们通过CI平台实现了更好的实践,我真的想将其设置为自动增加assemblyinfo.cs文件中的值,以便使用该程序集中的代码更改自动更新程序集的版本.

我之前已经设置(在我们找到Hudson之前)通过任一msbuild或者命令行(不记得)增加值的方法,但是使用Hudson,这将更新SVN存储库并触发另一个构建.由于Hudson每小时轮询SVN,这将导致缓慢的无限循环.

让Hudson增加版本号是一个坏主意吗?什么是另一种方法呢?

理想情况下,我的解决方案标准是:

  • 在构建assemblyinfo.cs之前增加内部版本号
  • 仅增加已更改的程序集中的内部版本号.这可能是不可能的,因为Hudson每次执行构建时都会清除项目文件夹
  • 将更改的assemblyinfo.cs提交到代码存储库(当前为VisualSVN)
  • 在下次扫描更改时,不会导致Hudson触发新构建

在我脑海中解决这个问题,我可以通过批处理文件/命令轻松地提出大部分解决方案,但是我的所有想法都会导致Hudson在下次扫描时触发新的构建.我不是在找人为我做任何事情,只是指出我正确的方向,也许是让Hudson忽略某些SVN提交的技巧等.

到目前为止我发现的所有内容都只是一篇文章,解释了如何自动增加版本号,没有考虑到可以旋转到无限循环的CI平台.

.net versioning msbuild continuous-integration hudson

110
推荐指数
7
解决办法
11万
查看次数

在C++ Win32中创建透明窗口

我正在创建一个非常简单的Win32 C++应用程序,它的唯一目的就是只显示一个半透明的PNG.窗口不应该有任何镶边,并且所有不透明度都应该在PNG本身中控制.

我的问题是当窗口下的内容发生变化时,窗口不会重新绘制,因此PNG的透明区域与应用程序最初启动时窗口下的内容"卡住".

这是我设置新窗口的行:

hWnd = CreateWindowEx(WS_EX_TOPMOST, szWindowClass, szTitle, WS_POPUP, 0, height/2 - 20, 40, 102, NULL, NULL, hInstance, 0);
Run Code Online (Sandbox Code Playgroud)

对于RegisterClassEx的调用,我有这个背景集:

wcex.hbrBackground = (HBRUSH)0;
Run Code Online (Sandbox Code Playgroud)

这是WM_PAINT消息的处理程序:

 case WM_PAINT:
 {
   hdc = BeginPaint(hWnd, &ps);
   Gdiplus::Graphics graphics(hdc);
   graphics.DrawImage(*m_pBitmap, 0, 0);
   EndPaint(hWnd, &ps);
   break;
 }
Run Code Online (Sandbox Code Playgroud)

需要注意的一点是,应用程序始终停靠在屏幕左侧,不会移动.但是,当用户打开,关闭或移动其下的窗口时,应用程序下面的内容可能会发生变化.

当应用程序首次启动时,它看起来很完美.PNG的透明(和类似透明)部分完美展现.但是,当应用程序下面的背景发生变化时,后台不会更新,它会在应用程序首次启动时保持不变.实际上,WM_PAINT(或WM_ERASEBKGND在后台更改时不会被调用).

我已经玩了很长一段时间了,已经接近100%正确,但不是那里.例如,我尝试将背景设置为(HBRUSH)NULL_BRUSH,我尝试处理WM_ERASEBKGND.

当窗口下的内容发生变化时,可以做些什么来重新绘制窗口?

c++ winapi transparency gdi+ alphablending

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

帮助java中的包 - 导入不起作用

我是一名C++开发人员 - 不是java开发人员,但必须让这段代码正常工作......

我有2个公共类,将被另一个产品使用.我在每个java文件中使用了package指令.

package com.company.thing;

class MyClass ...
Run Code Online (Sandbox Code Playgroud)

当我尝试编译使用我添加的测试应用程序时

import com.company.thing.*;
Run Code Online (Sandbox Code Playgroud)

javac编译器失败,com.company不存在.(即使我将它编译在与我刚刚制作包的类文件相同的目录中)

我确信我正在做一些愚蠢和愚蠢的事情.

我已经阅读了http://java.sun.com/docs/books/tutorial/java/package/usepkgs.html页面并尝试设置目录结构,如/ com/company/thing等,但要么我有完全搞砸了或者错过了别的东西.

编辑感谢您的建议 - 我之前尝试过类路径.它没有帮助.

我试过编译

javac -classpath <parent> client.java 
Run Code Online (Sandbox Code Playgroud)

结果是:

package com.company does not exist
Run Code Online (Sandbox Code Playgroud)

我在\ com\company\product中有我要导入的代码(两个java文件).我编译好了.(它们包含MyClass)我甚至为它们制作了一个jar文件.我将jar文件复制到父目录.

然后我做了(在客户端java文件的父目录中)

javac -cp <jarfile> *.java
Run Code Online (Sandbox Code Playgroud)

结果是:

cannot access MyClass
bad class file: MyClass.class(:MyClass.class)
class file contains wrong class: com.company.product.MyClass
Please remove or make sure it appears in the correct subdirectory of the classpath.
Run Code Online (Sandbox Code Playgroud)

编辑

如果我使用MyClass的完全限定名称并在父目录中编译它,我获得了编译和运行的客户端代码.我现在完全糊涂了.

没有设置类路径编译 - 只是

javac *.java 
Run Code Online (Sandbox Code Playgroud)

在父目录中 - 它工作正常.

我可以得到一个测试应用程序来编译,但是当我必须将它集成到生产代码中时,这不会削减它.仍在寻求帮助.

编辑:

最后 …

java import packages

29
推荐指数
4
解决办法
15万
查看次数

在哪里可以找到将VS解决方案转换为gcc makefile的工具?

我已经了解了CMake和bakefile,但这不是我想要的.

是否有一个工具可以在给定VC项目的情况下生成makefile?(或至少第一次尝试一次)所以我不必手工完成所有工作?

或者,是否有一个制作CMake文件的工具?


编辑:

点击下面的链接告诉我:

http://www.winehq.org/docs/winemaker

这是一个很大的帮助.我还没有尝试过.

c++ cross-platform makefile visual-c++

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

boost vs ACE C++跨平台性能比较?

我参与了一项将从Win32迁移到Linux的一些通信,解析,数据处理功能的企业,并且都支持这两种功能.问题域对吞吐量和性能非常敏感.

我对boost和ACE的性能特征经验很少.具体来说,我们想要了解哪个库为线程提供了最佳性能.

任何人都可以提供一些数据 - 记录在案或口口相传或者某些链接 - 关于两者之间的相对表现吗?

编辑

谢谢大家.确认了我们最初的想法 - 我们最有可能选择提升系统级跨平台的东西.

c++ performance boost cross-platform ace-tao

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

红外代码列表?

我有一个控制IR发射器的应用程序,并希望能够访问IR代码的范围.这是免费提供的,还是订阅?

(像和谐和罗技这样的公司有它们 - 只是不确定我是如何获得它的)

(谷歌到目前为止没有给我任何有用的东西)

注意 - 要清楚 - 我想要一个电视,DVD播放器等设备列表 - 比如用通用遥控器打印的设备或下载的设备.但是,我想要实际的规格,所以我可以控制IR二极管.

infrared

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

如何在作为服务运行的hudson中正确使用signtool.exe?

我刚刚从THAWTE购买了代码签名证书(MS authenticode),并且显然已经在我的构建机器上安装了它.我以用户身份登录,当我打开cmd提示符时,我可以使用带有signtool.exe的证书对EXE进行签名.

不幸的是,这个相同的命令行在机器上运行的hudson进程中不起作用.

我得到的错误信息是:

SignTool错误:未找到符合所有给定条件的证书.

我认为这是因为hudson服务运行的帐户不同于我从用于从thawte获取证书的帐户运行signtool.exe的帐户.

所以,我的问题是:我该如何解决这个问题?我以为我要从thawte下载一个文件,但它只是以某种方式使用IE来神奇地在用户的缓存中安装证书.我可能想要导出(或任何正确的术语)到我可以存储/保存或在任何其他机器上使用的文件.

我该怎么做?如何使用系统/服务帐户中其他用户的文件或证书正确调用signtool?

hudson code-signing authenticode

17
推荐指数
2
解决办法
9941
查看次数

如何接受Windows 7桌面上的传入蓝牙连接(使用c ++或c#程序)

我正在Android上编写BT应用程序以连接到实验室设备/硬件.目前我租借了一台设备.然而,当我为它开发时,我不可能总是有一个(通勤,出城等)因此我正在为它创建一个模拟器,并将在我的Windows桌面上运行该模拟器,以便我的Android客户端代码可以与它建立联系.

android代码是用.NET/xamarin构建的,可以很好地连接到真实设备.

我对桌面上的C++或C#感到满意.

我发现这个代码http://www.codeproject.com/Articles/252882/Bluetooth-Server-Programming-on-Windows在线创建和接受BT连接.对于我想做的事情来说,它看起来是一个非常好的开始 - 它构建了一个模仿真实设备的状态机/模拟器. 但是我无法将我的Android设备连接到它.

注 - 连接是串行端口连接.(来自Android设备的UUI是"众所周知的"串口连接("00001101-0000-1000-8000-00805F9B34FB")

我不知道如何配置Windows 7桌面和蓝牙服务,以允许此服务器/模拟器程序接受连接.

我已将设备配对,但无法连接.

如何在Win7桌面上运行的C++或C#代码中接受传入的蓝牙串行连接?

c# c++ windows connection bluetooth

17
推荐指数
1
解决办法
4497
查看次数

我可以修改TFS 2010中的默认签到操作吗?

将变更集与工作项关联时,TFS默认为解析工作项.我想默认关联它.

我知道在TFS 2008中你必须使用像http://www.woodwardweb.com/vsts/000230.html这样的东西删除解​​决登记操作,但我认为我在某处读到有更好的方法来执行此操作TFS 2010.有谁知道是否是这种情况?

比尔,比尔

workitem checkin tfs2010

16
推荐指数
1
解决办法
2430
查看次数

是否有跨平台持续集成的工具(c ++ Win32和linux)

我看了几个关于SO的问题 - 并不确定他们回答了这个问题.

我们正在为Win32和Linux构建C++应用程序.现在我们有一些脚本(win32的bat文件)按计划运行进行构建.

我们希望为我们的项目提供CI,但我希望只有一个CI服务器来处理这两个平台上的构建.与SVN集成非常重要.

是否可以有一个配置/一个CI产品/服务器执行此操作?

有人做过这个吗?竹子看起来可能会解决我们的需求,但是如果我们能够避免成本的话,我讨厌像这样开支作为一个自助创业公司.

c++ continuous-integration cross-platform

15
推荐指数
2
解决办法
3552
查看次数