小编Nei*_*eil的帖子

Wix:是否可以从自定义操作中手动运行RemoveFolderEx元素?

我想知道是否可以从自定义操作手动运行RemoveFolderEx元素.我猜可能不是,但有人可能知道一种我不知道的方式.

我的问题是我想运行RemoveFolderEx元素,但只在真正的UNINSTALL上,但是我的程序在升级时执行它,因为我在重新安装之前将其设置为uninstall.

我尝试通过这个方法 Wix:条件属性不工作, 但它不起作用,仍然运行时重新安装.

我唯一能想到的是能够从自定义操作中手动设置RemoveFolderEx,我知道我在正确的点运行并且仅在真正的卸载时运行.也许我的自定义操作可以使用c ++ dll,然后手动将命令添加到MSI接口,但如果我走得那么远,那么自己也可以完全编写删除逻辑.

谢谢.尼尔


编辑:我终于得到了这个工作,这是一个示例wix来显示我做了什么.

<Property Id='P.REMOVEDATAFOLDER' Secure='yes' />

<DirectoryRef Id="DATADIR">        
    <Component Id="C.RemoveDataFolder" Guid="myguid" KeyPath="yes">
        <util:RemoveFolderEx On="uninstall" Property="P.REMOVEDATAFOLDER" />
    </Component>
</DirectoryRef>

<CustomAction Id="CA.SetDataFolder" Property="P.REMOVEDATAFOLDER" Value='[DATADIR]' />

<InstallExecuteSequence>           
    <Custom Action="CA.SetDataFolder" Before="ValidateProductID" >(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
</InstallExecuteSequence>    
Run Code Online (Sandbox Code Playgroud)

在从注册表中读取DATADIR但在CostInitialize操作之前,属性P.REMOVEDATAFOLDER 在真正的卸载时设置.

windows-installer wix

5
推荐指数
1
解决办法
2121
查看次数

在预构建事件中使用protogen从.proto文件生成c#文件

我们一直在使用protobuf工作一段时间,我决定为客户端编写一个小控制台应用程序,这将允许他们在现场进行一些测试.

我启动了一个新的c#控制台应用程序,并从nuget下载了google.protocolbuffers和protobuf-net.

我想要实现的是将我的"messages.proto"文件转换为"messages.cs"

我试图让protobuf在prebuild事件上构建消息文件但是没有成功,看起来命令参数自我们第一次实现以来已经改变了.我按照这里的例子

http://code.google.com/p/protobuf-csharp-port/wiki/ProtoGen
Run Code Online (Sandbox Code Playgroud)

并添加了以下预构建事件

"$(projectdir)packages\Google.ProtocolBuffers.2.4.1.473\tools\protogen.exe" --proto_path=./protos protos/messages.proto --include_imports -output_directory=./
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误

Input file protos/messages.proto doesn't exist.
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的组合,但似乎没有任何效果.我接近这一切都错了还是有问题?任何帮助非常感谢!

protocol-buffers protobuf-net

5
推荐指数
1
解决办法
3467
查看次数

NLog没有找到或加载配置文件

我正在编写一个应用程序并使用Ninject创建一个Logging工厂的实例,该实例可用于创建Nlog Logger.我有自己的Logger类,它包装了Nlog Logger类

我有一个处理注入的IOC项目和一个Logging项目,它承载LoggerFactory和Logger类.

我想要的原因是让所有其他项目共享一个日志记录配置,而不是必须分别在每个项目中包含Nlog dll和config.

它的构建和运行都很好但是当LoggerFactory创建一个记录器时

public ILogger GetLogger<T>()
{
    NLog.Logger nLogLogger = NLog.LogManager.GetLogger(typeof(T).ToString());

    return new Logging.Logger(nLogLogger);
}
Run Code Online (Sandbox Code Playgroud)

配置为null表示NLog.dll没有找到NLog.config文件.

NLog.LogManager.Configuration 
Run Code Online (Sandbox Code Playgroud)

我按照说明说并将NLog.config命名为NLog.dll.nlog,将其复制到bin目录,我可以在NLog.dll旁边看到它

从Nlog文档来看,这应该足够http://nlog-project.org/wiki/Configuration_file但它没有被发现."NLog.dll所在目录中的NLog.dll.nlog"

我将NLog.dll.nlog文件标记为内容,将copyToLocal标记为true.

谢谢你的帮助尼尔

c# config ninject nlog

5
推荐指数
1
解决办法
9202
查看次数

使用淘汰赛显示条件html

我有一系列淘汰赛可观察到的活动,其中包含审计和评论。我从服务器获取了数据,并根据对象的时间戳对活动数组进行了排序。

我希望能够根据类型有条件地显示html,因此审核和注释看起来会有所不同。

<!-- ko foreach: activities -->
<div class="audit" data-bind="visible: {activity is typeof Audit}"> 
    @*Do some audit html*@
</div>
<div class="comment" data-bind="visible: {activity is typeof Comment}"> 
    @*Do some comment html*@
</div>
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)

我有以下html,但是我不知道条件如何,我只是在上面写了一个占位符,以便您了解我要实现的目标。

我可能正在处理所有错误,非常感谢任何帮助!

html javascript html5 coffeescript knockout.js

5
推荐指数
1
解决办法
4427
查看次数

Visual Studio 2012中的Ruby语法高亮显示

我使用rake脚本来运行构建,并希望能够在visual studio中获得语法高亮.

是否有可能将ruby语法高亮显示Visual Studio 2012

我一直在寻找一段时间但尚未提出解决方案.我只是在寻找免费的解决方案,所以Ruby In Steel已经出局了.


投票在这里进行的IronRuby的Visual Studio 2012的支持

ruby syntax-highlighting visual-studio-2012

5
推荐指数
1
解决办法
3320
查看次数

将开源CMS框架集成到现有的MVC3/MVC4站点中

我的任务是找到一个可以慢慢集成到一组现有网站中的开源CMS.这样,页面可以逐个传递到CMS,并且在转换期间网站保持活动状态.


有没有人对CMS解决方案适合解决我上面概述的问题有任何想法,经验或建议?


我在过去几天一直在尝试各种产品,并找到了以下选项.但是,由于很少有使用CMS的经验,从更有经验的开发者那里得到关于这个问题的其他观点真的很有帮助.

N2 CMS - 一个成熟的选择,我有这个工作,但文档真的缺乏.我还发现很难找到数据库的最低规范要求以及浏览器兼容性.但我确实喜欢用于创建模板页面的代码结构.

Phun CMS - 这是一个新的开源项目,我非常喜欢程序员处理问题和分离问题的方式.现在看起来可能太新了.

Composite C1 - 一个成熟的CMS选项,很棒的文档.但是说它只支持IE9 +.

Umbraco - 尚未尝试,但看起来重量级

食人鱼 - 没有尝试过,但网站和文档很好,并且说它很轻巧.

open-source content-management-system asp.net-mvc-3 asp.net-mvc-4

5
推荐指数
1
解决办法
3853
查看次数

将EF Add-Migration编写到自动构建任务中

我将所有的ef代码首次迁移到一个名为的单独程序集中 Migrations

从包管理器控制台中我输入Add-Migration xyz了一个支持迁移

是否有可能从视觉工作室外面做到这一点?我正在使用rake脚本为我的构建做很多自动化,但这是我还没有完成的一部分.这里的目标是做到以下几点

rake db:add_migration "xyz"

这将运行一些命令并将迁移添加到指定的项目.这是我唯一无法弄清楚如何实现自动化的方法!我可能会构建其他任务,例如删除和创建数据库以及迁移到脚本,以便它可以在我的roundhouse迁移下运行.

相关材料

Add-Migration [-Name] <String> [-Force]
[-ProjectName <String>] [-StartUpProjectName <String>]
[-ConfigurationTypeName <String>] [-ConnectionStringName <String>]
[-IgnoreChanges] [<CommonParameters>]
Run Code Online (Sandbox Code Playgroud)

命令参考

我可以看到EF从nuget安装到packages文件夹

packages\EntityFramework.5.0.0\tools
Run Code Online (Sandbox Code Playgroud)

我可以在文件中看到 EntityFramework.psm1

function Add-Migration
{
    [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')]
    param (
        [parameter(Position = 0,
....
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何从命令行执行它.我试过了

..\packages\EntityFramework.5.0.0\tools>powershell EntityFramework.psm1 Add-Migration
Run Code Online (Sandbox Code Playgroud)

但这会导致错误

The term 'EntityFramework.psm1' is not recognized as the name of a cmdlet, 
function, script file, or operable program. Check the spelling of the name, 
or if a path was included, verify …
Run Code Online (Sandbox Code Playgroud)

build-automation entity-framework ef-migrations entity-framework-5

5
推荐指数
1
解决办法
3316
查看次数

Chutzpah和Jasmine 2.0和RequrieJs

我有点麻烦让Chutzpah使用requireJs/jasmine 2.0.这种方法适用于1.3版本,但现在对于jasmine版本2.0,chutzpah已停止接受测试.我将chutzpah升级到3.1.1以获得jasmine 2.0支持.我确实需要进行一些小的更改来从requireJs加载jasmine以使其工作但我认为这不应该影响chutzpah,因为它只是加载html.

这是我为chutzpah运行的命令.

chutzpah.console.exe path/to/SpecRunner.html
Run Code Online (Sandbox Code Playgroud)

控制台现在无法接受测试

=== 0 total, 0 failed, took 0.25 seconds ===
Run Code Online (Sandbox Code Playgroud)

但是当我运行实际的html文件时,它会找到测试

茉莉花的例子

任何帮助将不胜感激


而不是HTML路线,我一直在尝试chutzpah内置配置

{
    "Framework": "jasmine",
    "TestHarnessReferenceMode": "AMD",
    "TestHarnessLocationMode": "SettingsFileAdjacent",
    "Tests": [
        {"Path" : "Specs/example.spec.js"}, 
    ],
    "References" : [
        {"Path" : "../../../Scripts/lib/require/require.js" }, 
        {"Path" : "../../../Scripts/app/app.js" }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这运行然而我收到一个错误

Error: Error: Script error for: specs/example.spec

Error: Timeout occured when executing test file
While Running:C:\path\to\specs\example.spec.js

System.AggregateException: One or more errors occurred. 
---> System.NullReferenceException: Object reference not set to an instance of an object.

at …
Run Code Online (Sandbox Code Playgroud)

javascript requirejs jasmine chutzpah

5
推荐指数
1
解决办法
2839
查看次数

Redis在Windows中进行了哨兵本地群集设置

我正在尝试在本地设置redis-sentinel集群.我Redis-64.2.8.4在窗户上跑.我想建立一个拥有2个奴隶的主人,因为这将反映我的生活环境.

我在跑

redis-server.exe sentinel.conf --sentinel
Run Code Online (Sandbox Code Playgroud)

有了这个配置

----
maxheap 64MB

sentinel monitor mymaster 127.0.0.1 7000 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
----
Run Code Online (Sandbox Code Playgroud)

但后来我只是重复记录了这一点

wait3() returned a pid (-1) we can't find in our scripts execution queue!
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档,但说实话,我在这里应该做的事情并不是很明智.我是否指定配置中的所有服务器?

redis redis-sentinel

5
推荐指数
1
解决办法
5112
查看次数

我可以使以下IQueryable linq语句通用

有没有办法让以下数据库查询构建器通用?

private IQueryable<Foo> ByName(IQueryable<Foo> dbQuery, Query query)
{
    string[] searchTerms = query.Data.Replace(" ","").ToLower().Split(',');

    if (query.Exclude)
    {
        return dbQuery.Where(x => searchTerms.All(
            y => y != x.Name.Replace(" ", "").ToLower()));
    }

    return dbQuery.Where(x => searchTerms.Any(
        y => y == x.Name.Replace(" ", "").ToLower()));
}
Run Code Online (Sandbox Code Playgroud)

我对Foo的许多不同属性都有相同的功能.ByCounty,ByTown,ByStreet等

我已经编写了一些返回linq的函数,如下所示

public Expression<Func<Foo, bool>> FoosAreWithinDistanceFromGeocode(
    double distance, Geocode geocode)
{
    double distanceSquare = distance * distance;
    return foo => ( SqlFunctions.Square((double)(
        foo.Address.Geocode.Easting - geocode.Easting)) +
        SqlFunctions.Square((double)(fooAddress.Geocode.Northing - 
        geocode.Northing)) ) <= distanceSquare;
}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到Linq-to-SQL的东西是否不能使用泛型,或者是否可以将属性作为泛型和类似的东西传递.


编辑:我一般都在为一个搜索词工作.

Where [query.Data == "Foo1"]

return …
Run Code Online (Sandbox Code Playgroud)

c# generics entity-framework linq-to-sql

3
推荐指数
1
解决办法
1260
查看次数