小编Tim*_*ong的帖子

我应该将编译的二进制文件添加到我的Subversion存储库吗?

我正在开发一些分布式团队的类库.我们使用Subversion进行源代码控制.其中一个开发人员想要将他的binobj目录提交到存储库,这对我来说从来就不是标准做法.什么是最佳做法?优缺点都有什么?

svn

10
推荐指数
2
解决办法
2898
查看次数

如何指定帮助链接,支持链接和更新信息?

我已经编写了一些Wix安装程序,但我注意到我的产品在安装和查看控制面板,添加/删除程序时,与其他一些安装相比,对元数据有点了解.许多已安装的产品包含以下项目:

  • 帮助链接(URL)
  • 支持链接(URL)
  • 更新信息(URL).

选择安装的产品后,这些项目将显示在控制面板的底部.我的产品与Wix一起安装,没有这些项目,只有版本号.我无法看到Wix中我可以添加这些项目的任何地方,搜索Wix帮助文件不会产生任何这些项目的匹配.

有谁知道这在Wix中是否可行?我相信一定是......

metadata wix hyperlink addremoveprograms

10
推荐指数
1
解决办法
1967
查看次数

如何阻止Visual Studio的Web发布从目标网站中删除写入权限?

我有一个我正在定制的Web应用程序(实际上是Orchard CMS),我想使用Web Publishing aka MSDeploy将directl从我的构建服务器推送到我的托管服务提供商.

问题是,当我发布站点(从Visual Studio,尚未从构建服务器尝试它)时,它删除了目标网站的写入权限,这使得Orchard立即失效,因为它无法再访问其数据库(等等).

我们可以辩论这个的智慧,但最重要的是,Orchard需要写访问权限,而网络发布则坚持要删除访问权限,这会破坏网站.不好.我必须登录服务提供商的控制面板并在每次发布时重置权限,这使得流程不是自动的.

那么,我如何让Web Publishing单独保留ACL?我无法在任何地方找到解决方案的任何设置.

谢谢, - 蒂姆

acl msdeploy web-publishing orchardcms

10
推荐指数
1
解决办法
2817
查看次数

如何在.net 3.5中获得等效的Task <T>?

我有一些使用的代码Task<T>推迟从串行读取操作返回结果很短的时间,如下所示:

void ReturnResponseAfterAShortDelay()
{
    if (delayedResponseCancellationTokenSource != null)
        delayedResponseCancellationTokenSource.Cancel(); // Cancel any pending operations and start a new one.

   delayedResponseCancellationTokenSource = new CancellationTokenSource();

   log.InfoFormat("Deferring response for {0} ms", Settings.Default.TimeoutMs);

   Task.Delay(Properties.Settings.Default.TimeoutMs, delayedResponseCancellationTokenSource.Token)
       .ContinueWith((continuation) => ReturnWhateverHasArrived(), TaskContinuationOptions.NotOnCanceled)
       .Start();
}
Run Code Online (Sandbox Code Playgroud)

此代码背后的想法是在没有新字符到达指定间隔时返回结果.

但是,由于我无法控制的因素,我必须使用.NET 3.5,这会阻止我使用Task<T>,因此我必须以某种方式重构此代码.

如何在不使用的情况下实现相同的结果Task<T>

澄清

虽然我展示的具体代码恰好是一个定时延迟,但我的用法并不仅限于延迟.可能还有其他情况我想立即开始一些"长时间运行"的轮询任务.典型的情况是I/O绑定操作,例如,定期查询连接到串行端口的设备,然后在满足某些条件时引发事件.

c# asynchronous task .net-3.5 task-parallel-library

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

运算符和继承

我的大脑变成了果冻,或者我有一种不经意的经历,或者某种东西.我正在修改一个看起来有点像这样的类层次结构:
在此输入图像描述

我的Money班级看起来像这样:

public abstract class Money
{
    public int Amount { get; set; }

    public static bool operator ==(Money leftSide, Money rightSide)
    {
        // Money can only be equal if it is in the same currency.
        if (leftSide.GetType() != rightSide.GetType()) return false;
        return leftSide.Amount == rightSide.Amount;
    }

    public static bool operator !=(Money leftSide, Money rightSide)
    {
        // If the currencies are different, the amounts are always considered unequal.
        if (leftSide.GetType() != rightSide.GetType()) return true;
        return leftSide.Amount …
Run Code Online (Sandbox Code Playgroud)

c# architecture oop operator-overloading

9
推荐指数
1
解决办法
292
查看次数

获取对象处理/销毁的通知

我需要一种方法来跟踪各种类的实例,而不需要那些知道它们被跟踪的类.基本上,我有一个类工厂,它创建实例并将它们交给另一个线程.一旦该线程完成并卸载实例,我需要得到通知,这样我就可以引用计数并在所有实例都消失后退出我的类工厂.

挑战在于我无法修改我将加载的任何类,因为我无法控制它们的源代码.

跟踪我创建的实例很简单,我可以在创建它们时将它们放在某种集合中.跟踪他们的破坏导致我的问题.如果我可以修改源代码,我会向每个类添加一个事件,当我创建一个实例时,我会挂钩事件并将其用作我的通知.但我不能这样做.

所以,问题是:是否有一种偷偷摸摸的方式来监视对象实例并检测它何时被销毁?

.net c# clr object-lifetime

8
推荐指数
2
解决办法
2772
查看次数

在TeamCity下构建Wix Custom Action时,目标似乎构建错误

我在让我的CI构建在TeamCity下工作时遇到了问题.我有类似的项目可以建立好,所以我不认为这本身就是TeamCity的问题,但我已经看了很多,我开始变得盲目,我担心我可能会错过明显的.我会欣赏另一种观点.

我正在开发的项目(ASCOM驱动程序)有一个Wix安装项目和一个托管自定义操作.自定义操作有一个使用MSpec的单元测试项目.这一切都在我的工作站上构建良好,测试运行并通过,一切都很好.在TeamCity上,解决方案甚至不会编译.我欢迎TeamCity可能突出了我的构建中的弱点,但我无法理解这里发生了什么.

什么似乎要发生的事情是在构建时构建的,这意味着在删除项目输出(在维克斯自定义操作)的一个后续项目引用它未能建立.以下是日志输出中的一些编辑精选:

安装项目开始构建......

715 [01:21:20]:                             [MSBuild] Product Setup\Product Setup.wixproj: Build target: Rebuild (11s)
716 [01:21:20]:                                 [Product Setup\Product Setup.wixproj] CoreClean
717 [01:21:20]:                                     [CoreClean] Delete
[...]

然后它解决了需要构建自定义操作项目的引用和注意事项...

729 [01:21:20]:                                 [Product Setup\Product Setup.wixproj] ResolveProjectReferences (2s)
730 [01:21:21]:                                     [ResolveProjectReferences] MSBuild (2s)
731 [01:21:21]:                                         [MSBuild] Wix.RegisterAscomDeviceProfiles\Wix.RegisterAscomDeviceProfiles.csproj: Build default targets (2s)
732 [01:21:21]:                                             [Wix.RegisterAscomDeviceProfiles\Wix.RegisterAscomDeviceProfiles.csproj] CheckPrerequisites
733 [01:21:21]:                                             [Wix.RegisterAscomDeviceProfiles\Wix.RegisterAscomDeviceProfiles.csproj] RestorePackages

然后构建自定义操作项目并打包CA程序集并将输出复制到输出目录...

739 [01:21:21]:                                                 [CoreCompile] Csc
740 [01:21:21]:                                                     [Csc] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:AnyCPU /errorreport:prompt /define:DEBUG;TRACE /highentropyva- /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.Astrometry.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.Attributes.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.Controls.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.DeviceInterfaces.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.DriverAccess.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.Exceptions.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.SettingsProvider.dll /reference:C:\BuildAgent\work\bf752c89b3da5535\packages\ASCOM.Platform.6.0.2.1\lib\net35\ASCOM.Utilities.dll …

teamcity custom-action wix build

8
推荐指数
1
解决办法
1095
查看次数

什么时候`foreach`停止了弦乐?

我有许多针对.NET Micro Framework 4.3.2的项目.我在Visual Studio 2013中开发了它们.我刚刚升级到Visual Studio 2015,现在我遇到了用于编译和运行的相同代码的奇怪问题.

具体来说,我已经开始收到此错误:

CS1579 foreach语句不能对'string'类型的变量进行操作,因为'string'不包含'GetEnumerator'的公共定义

而且公平地说,它似乎没有.但是当我开发代码时,这很有效.它被编译,推送到NuGet并在其他几个项目中工作,因此它必须有效.

那么,为什么这停止在Visual Studio 2015中工作?我有很多项目使用这个成语迭代字符串中的字符,我希望我不必更改它们... :(

c# .net-micro-framework c#-6.0 visual-studio-2015

8
推荐指数
1
解决办法
411
查看次数

为什么ArrayList与COM Interop一起使用,但IList <T>不兼容?

我注意到,如果我创建一个公开ArrayList的.NET组件,那么该ArrayList将通过COM Interop并以脚本语言(如VBScript)提供.

泛型,如IList<T>似乎没有工作.

为什么这样,是否有任何方法可以使通用类型成功地通过COM Interop流向脚本引擎?

generics scripting com-interop

7
推荐指数
1
解决办法
2653
查看次数

MSpec,我应该在我的[Subject()]属性中添加什么?

我一直在使用MSpec,我真的很喜欢它.我发现要让ReSharper识别我的规格,我需要使用SubjectAttribute.

我想知道,在[Subject()]属性中放入什么是最好的东西?

如果我正在做BDD,那么我不知道被测试的类型所以[Subject(typeof(thingy))]似乎为时过早.可以在以后添加,我想一旦编写代码.

所以留下文本版本,[Subject("some text")].但放在那里最好的是什么?

无论我做什么,它似乎都不会影响我在ReSharper中获得的输出.我想在某种程度上这取决于个人偏好,但我想知道这里是否有任何约定?

tdd bdd mspec

7
推荐指数
1
解决办法
927
查看次数