我用几个独立的应用程序运行一个相当复杂的项目 然而,这些使用了几个共享组件.所以我有一个类似于下面的源代码树.
所有应用程序都有自己的MSBuild脚本,用于构建项目及其所需的所有共享资源.我还在CruiseControl控制的持续集成构建服务器上运行这些构建.
部署应用程序后,它们将部署在多个服务器上以分配负载.这意味着跟踪每个不同服务器上部署的构建/修订是非常重要的(我们需要在DLL版本中使用当前版本,例如"1.0.0.68").
同样重要的是能够重新创建一个修订/构建,如果某些东西没有达到预期的效果,那么这些修订/构建能够回滚(是的,发生了......).今天我们使用SourceSafe进行源代码控制,但是如果我们能够提供充分的理由(SS 到目前为止它确实对我们有效),那么可能会改变.
我们尝试遵循的另一个原则是它只是由我们进一步部署的集成服务器构建和测试的代码.
我们有几个想法来解决上述问题.第一个是持续集成服务器构建和本地部署项目并测试它(它现在就这样做).您可能知道CruiseControl中的成功构建会生成构建标签,我想我们可以使用它来设置可执行文件的DLL版本(因此构建标签35会创建像"1.0.0.35"这样的DLL)?这个想法也是使用这个构建标签来标记完整的源代码树.然后我们可能会通过该标签检出并稍后重新创建构建.
标记完整树的原因不仅包括实际应用程序代码(位于源树中的一个位置),还包括所有共享项(位于树中不同位置).因此,成功构建"应用程序A"将标记为整个树,例如标签为"ApplicationA35".
但是,在部署之前尝试重新创建此版本并设置DLL版本时可能会出现问题,因为我们无法再访问CruiseControl生成的构建标签.如果所有CrusieControl构建标签对于所有项目都是唯一的,那么我们只能使用标签号,但事实并非如此(应用程序A和B可以同时在构建35上),因此我们必须在标签.因此SourceSafe标签"Application35".在构建build 35之后,如何重新构建build 34并将1.0.0.34设置为DLL版本号?
有人告诉我,例如Subversion在每次检查时为整个源树创建一个修订号 - 这是这种情况吗?SourceSafe有类似的东西吗?如果这是正确的,那么在获取最新版本并在CruiseControl服务器上构建时,想法就是获取该版本号.然后可以使用修订号来设置DLL版本号(例如"1.0.0.5678").我想我们可以根据需要获得Subversion的这个特定修订版,然后包含该应用程序和所有共享项,以便能够重新创建过去的特定版本.那会有用吗?使用SourceSafe也可以实现吗?
所以两个主要要求是:
那你怎么解决这个问题呢?什么是你的首选方法,你将如何解决它(或者你有一个完全不同的想法?)?**很高兴给出详细的答案.**
奖金问题修订号和内部版本号之间的区别是什么?何时真的需要两者?
下面的fadeIn,fadeOut效果在Firefox 3.0中运行良好,但它在IE 7中不起作用...哇,那是什么诀窍?这个想法当然是为了获得"眨眼"效果并吸引用户注意到表格中的特定行.
function highLightErrorsAndWarnings() {
$(".status-error").fadeIn(100).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
$(".status-warning").fadeIn(100).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
}
Run Code Online (Sandbox Code Playgroud)
更新:发现愚蠢的问题......".status-error"指向tr元素.可以设置背景颜色并在Firefox中的tr上淡化它而不是在IE中.将"CSS指针"更改为".status-error td "使其指向tr下方的td,并且所有浏览器中都可以使用.
我有一个XML文件,描述了产品获得许可的公司名称,版本和一些额外信息.
看起来像这样
<Licence>
<Name>sdfsdf</Name>
<Version>1.2.1.1</Version>
<NumberOfServer>4</NumberOfServer>
</Licence>
Run Code Online (Sandbox Code Playgroud)
然后,我使用私钥签署此fiel并获取
<Licence>
<Name>sdfsdf</Name>
<Version>1.2.1.1</Version>
<NumberOfServer>4</NumberOfServer>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>M368eFB9ydifttSxX26sB6XiPV4=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>TTYP6d+zESn6/2PtL5ikN+7E9u8Njm32vYVyVANC5U0EGLBwS//3yPjUoBx3glJXHClzPQBQEUi0LJNauTFvo1IBYwLjAuaYGtleti4IXpjrQCVaIudETSv5Z7oB8+C/+nsqsC26fXf9vWxvaKXJJzcep88r0wIfVe31HSd18FU=</SignatureValue>
</Signature>
</Licence>
Run Code Online (Sandbox Code Playgroud)
然后我在应用程序中发送公钥并读取文件以确保它们具有正确的版本,并且"NumberOfServers"作为许可证密钥用于.
这种方法的缺点是什么?
谢谢
我有几个LINQ to SQL查询,我觉得需要花费很多时间.我可以使用哪些工具和技术来首先找到:
工具,技术和阅读资源都将受到赞赏(ergo up-voted;))
我需要在Sql Server中进行哪些更改才能在十进制字段中存储" 2,1 "之类的值?现在我必须有像" 2.1 " 这样的点.
我在数据库上有Finnish_Swedish_CI_AS排序规则但似乎不是这样......我也在服务器上摆弄区域设置,但没有成功.我知道我之前已经设法改变了这一点.
我有这个XML数据,并尝试使用下面的XSLT片段对它进行总结.
XML
<?xml version="1.0" encoding="utf-8"?>
<values>
<value>159.14</value>
<value>-2572.50</value>
<value>-2572.50</value>
<value>2572.50</value>
<value>2572.50</value>
<value>-159.14</value>
</values>
Run Code Online (Sandbox Code Playgroud)
XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="sum(values/value)"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
在我的世界中,该值应为0但最终为-0.0000000000005684341886080801
在Visual Studio中运行它并亲自查看.为什么?这是怎么回事?
我们通过WebSphere MQ队列传入消息.我们收到消息需要很长时间.
收到/接收邮件时是否有简单易用的跟踪方式?
我有一个抽象的基础C#类,有几个必须被覆盖的方法.我该如何强制执行此操作?现在我抛出异常作为基础实现
Run Code Online (Sandbox Code Playgroud)public virtual string Description { get { throw new NotImplementedException(); } } public virtual string ErrorMessage { get { throw new NotImplementedException(); } }
然而,这个解决方案感觉有点不对而且非常直观......有没有其他方法可以在C#中解决这个问题?
我有一个包含If-None-Match标头的请求,然后我将其与服务上的计算响应进行比较.如果它们匹配并且自上次以来没有修改响应,则返回空304响应.
所有这一切都很好,因为我的内容很少改变,但我喜欢经常检查更改.
但是,当通过Service Bus Relay公开服务资源时,这似乎成为一个问题.从服务发送304时,我在中继端点没有收到响应.
这是一个已知的问题吗?你看到它有没有办法绕过它?
是否可以阻止接收管道将消息发布到消息框.
我开发了一个管道组件来检查输入消息的有效性.如果验证失败,我想添加代码以阻止消息发布到messagebox.
简单地说,如果输入文件未通过验证,则不应调用任何业务流程或sendport.我还要发送一封邮件,从接收管道发布错误的详细信息.
谢谢.
.net ×2
sql-server ×2
azure ×1
biztalk ×1
biztalk-2009 ×1
c# ×1
cryptography ×1
http ×1
ibm-mq ×1
jquery ×1
licensing ×1
linq-to-sql ×1
localization ×1
msbuild ×1
performance ×1
servicebus ×1
sql ×1
xml ×1
xslt ×1