我自己和我的团队在增加程序集版本号时非常可怕,我们经常发送1.0.0.0版本的程序集.显然,这会引起很多麻烦.
我们通过CI平台实现了更好的实践,我真的想将其设置为自动增加assemblyinfo.cs
文件中的值,以便使用该程序集中的代码更改自动更新程序集的版本.
我之前已经设置(在我们找到Hudson之前)通过任一msbuild
或者命令行(不记得)增加值的方法,但是使用Hudson,这将更新SVN存储库并触发另一个构建.由于Hudson每小时轮询SVN,这将导致缓慢的无限循环.
让Hudson增加版本号是一个坏主意吗?什么是另一种方法呢?
理想情况下,我的解决方案标准是:
assemblyinfo.cs
之前增加内部版本号在我脑海中解决这个问题,我可以通过批处理文件/命令轻松地提出大部分解决方案,但是我的所有想法都会导致Hudson在下次扫描时触发新的构建.我不是在找人为我做任何事情,只是指出我正确的方向,也许是让Hudson忽略某些SVN提交的技巧等.
到目前为止我发现的所有内容都只是一篇文章,解释了如何自动增加版本号,没有考虑到可以旋转到无限循环的CI平台.
我正在创建一个非常简单的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++开发人员 - 不是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)
在父目录中 - 它工作正常.
我可以得到一个测试应用程序来编译,但是当我必须将它集成到生产代码中时,这不会削减它.仍在寻求帮助.
编辑:
最后 …
我已经了解了CMake和bakefile,但这不是我想要的.
是否有一个工具可以在给定VC项目的情况下生成makefile?(或至少第一次尝试一次)所以我不必手工完成所有工作?
或者,是否有一个制作CMake文件的工具?
点击下面的链接告诉我:
这是一个很大的帮助.我还没有尝试过.
我参与了一项将从Win32迁移到Linux的一些通信,解析,数据处理功能的企业,并且都支持这两种功能.问题域对吞吐量和性能非常敏感.
我对boost和ACE的性能特征经验很少.具体来说,我们想要了解哪个库为线程提供了最佳性能.
任何人都可以提供一些数据 - 记录在案或口口相传或者某些链接 - 关于两者之间的相对表现吗?
编辑
谢谢大家.确认了我们最初的想法 - 我们最有可能选择提升系统级跨平台的东西.
我有一个控制IR发射器的应用程序,并希望能够访问IR代码的范围.这是免费提供的,还是订阅?
(像和谐和罗技这样的公司有它们 - 只是不确定我是如何获得它的)
(谷歌到目前为止没有给我任何有用的东西)
注意 - 要清楚 - 我想要一个电视,DVD播放器等设备列表 - 比如用通用遥控器打印的设备或下载的设备.但是,我想要实际的规格,所以我可以控制IR二极管.
我刚刚从THAWTE购买了代码签名证书(MS authenticode),并且显然已经在我的构建机器上安装了它.我以用户身份登录,当我打开cmd提示符时,我可以使用带有signtool.exe的证书对EXE进行签名.
不幸的是,这个相同的命令行在机器上运行的hudson进程中不起作用.
我得到的错误信息是:
SignTool错误:未找到符合所有给定条件的证书.
我认为这是因为hudson服务运行的帐户不同于我从用于从thawte获取证书的帐户运行signtool.exe的帐户.
所以,我的问题是:我该如何解决这个问题?我以为我要从thawte下载一个文件,但它只是以某种方式使用IE来神奇地在用户的缓存中安装证书.我可能想要导出(或任何正确的术语)到我可以存储/保存或在任何其他机器上使用的文件.
我该怎么做?如何使用系统/服务帐户中其他用户的文件或证书正确调用signtool?
我正在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#代码中接受传入的蓝牙串行连接?
将变更集与工作项关联时,TFS默认为解析工作项.我想默认关联它.
我知道在TFS 2008中你必须使用像http://www.woodwardweb.com/vsts/000230.html这样的东西删除解决登记操作,但我认为我在某处读到有更好的方法来执行此操作TFS 2010.有谁知道是否是这种情况?
比尔,比尔
我看了几个关于SO的问题 - 并不确定他们回答了这个问题.
我们正在为Win32和Linux构建C++应用程序.现在我们有一些脚本(win32的bat文件)按计划运行进行构建.
我们希望为我们的项目提供CI,但我希望只有一个CI服务器来处理这两个平台上的构建.与SVN集成非常重要.
是否可以有一个配置/一个CI产品/服务器执行此操作?
有人做过这个吗?竹子看起来可能会解决我们的需求,但是如果我们能够避免成本的话,我讨厌像这样开支作为一个自助创业公司.
c++ ×5
hudson ×2
.net ×1
ace-tao ×1
authenticode ×1
bluetooth ×1
boost ×1
c# ×1
checkin ×1
code-signing ×1
connection ×1
gdi+ ×1
import ×1
infrared ×1
java ×1
makefile ×1
msbuild ×1
packages ×1
performance ×1
tfs2010 ×1
transparency ×1
versioning ×1
visual-c++ ×1
winapi ×1
windows ×1
workitem ×1