小编Ste*_*ngs的帖子

WiX可以引用名称中带有句点的项目吗?

WiX文件可以使用$(var.ProjectName.TargetPath)语法引用其他项目.但是,我有一个名称为(My.Project)的项目.我怎么能参考这个?我试过了:

  • $(var.My.Project.TargetPath)
  • $(var.My.Project.TargetPath)
  • $(var.My\.Project.TargetPath)
  • $(var.{My.Project}.TargetPath)
  • $(var.(My.Project).TargetPath)
  • $(var.[My.Project].TargetPath)
  • $(var.MyProject.TargetPath)
  • $(var.My%2EProject.TargetPath)

我得到的构建错误是:

未定义的预处理器变量'$(var.My.Project.TargetPath)'

xml wix visual-studio

11
推荐指数
2
解决办法
4414
查看次数

设置overflow-y会导致overflow-x也发生变化

当我设置overflow-y一个街区时,它似乎正在影响overflow-x房产.我用一个这个问题的例子做了一个JSFiddle.它似乎正在所有浏览器中发生,所以我想我错过了一些显而易见的东西.

我有两个非重叠块(蓝色和绿色)以及第三个块(红色),具有以下要求:

  • 蓝色和红色块相邻
  • 红色块包含在蓝色块中,但它与绿色块重叠
  • 蓝色块必须允许垂直滚动,但不允许水平滚动

但是,如果我设置overflow-x: visible为红色块重叠在右边,而是表现得好像我设置它scroll.但是,如果我删除overflow-y属性或将其设置为visible,则红色块的行为与我期望的一样.

我确实需要垂直滚动,所以我不知道该做什么.

使用下面的代码

HTML:

<div id="container">
    <div id="left">
        <div id="floater"></div>
    </div>
    <div id="right">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#container {
    height: 200px; width: 200px;
    position: relative;
    background-color: #ccc; border: solid 5px black;
}
#left {
    position: absolute;
    top: 0; left: 0; bottom: 0; width: 100px;
    overflow-x: visible;
    overflow-y: auto;    /** REMOVING THIS CHANGES THE RESULT **/
    background-color: blue;
    z-index: 2; …
Run Code Online (Sandbox Code Playgroud)

html css stylesheet

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

如何让Ajax.ActionLink更新元素而不是导航整个页面?

我想<div>在用户点击时更新我的视图Ajax.ActionLink.但是,它始终导航整个页面,而不是将服务器的响应插入到我指定的元素中.

我觉得我在这个例子中正在做所有事情,但即使在创建最简单的测试用例之后,我仍然无法创建我想要的行为.

在接下来的测试用例中,我加载/Company/test并点击"Go!"后,我希望将<div>其替换为"All done",而是将整个页面导航到/Company/test_ajax.

我确定我在这里遗漏了一些东西.提前致谢.

CompanyController

public ActionResult test()
{
    return View();
}

public ActionResult test_ajax()
{
    return Content("All done");
}
Run Code Online (Sandbox Code Playgroud)

Test.aspx文件

<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
</head>
<body>

<h2>test</h2>
<%= Ajax.ActionLink("Go!", "test_ajax",
    new AjaxOptions {
        UpdateTargetId="viewport"
        }) %>
<div id="viewport">Replace me!</div>

</body></html>
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc

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

由于WSDL中具有相同名称的多个类型,WCF生成的代理会抛出InvalidOperationException

我正在使用Visual Studio 2013从此WSDL文件生成WCF服务代理.但是,只要我尝试调用该setSalesItemsV3方法,WCF就会InvalidOperationException从中深入抛出System.Xml.dll.

此示例项目演示了此问题:https://github.com/jennings/WsdlDuplicateNameProblem

这是内在的例外:

消息:名称空间中的顶级XML元素"start"引用了不同类型WsdlDuplicateName.SalesItemService.hsSimpleDate和System.DateTime.使用XML属性为元素指定另一个XML名称或命名空间.

我不是读WSDL的专家,但是我已经看了它,并且引用名称"start"的唯一部分是以下几个<wsdl:part>元素name="start":

<wsdl:message name="setSalesItems">
  <wsdl:part name="start" type="xsd:dateTime"></wsdl:part>
</wsdl:message>

<wsdl:message name="setSalesItemsV3">
  <wsdl:part name="start" type="tns:hsSimpleDate"></wsdl:part>
</wsdl:message>
Run Code Online (Sandbox Code Playgroud)

但是,这些部分是完全不同的消息,所以我不明白为什么会有任何混淆.我通过几个在线WSDL验证器运行WSDL文件,它们似乎没问题.

下面是重现问题所需的项目中唯一的代码(除了生成的代理).

class Program
{
    static void Main(string[] args)
    {
        SalesServiceClient client = new SalesServiceClient();
        var date = ToSimpleDate(new DateTime());

        // throws InvalidOperationException
        // Message == "There was an error reflecting 'start'."
        client.setSalesItemsV3(1, 1, null, date, date);
    }

    static hsSimpleDate ToSimpleDate(DateTime time)
    {
        return new …
Run Code Online (Sandbox Code Playgroud)

wcf wsdl proxy-classes svcutil.exe

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

无法在Windows XP Embedded上启动用.NET 2.0编写的服务

我创建了一个小型可执行文件,可以通过调用MyApp.exe作为普通应用程序启动,也可以通过调用作为服务启动MyApp.exe -s.因为我试图保持尽可能简单,我通过手动运行"安装"此应用程序

sc create MyAppService binPath= "C:\MyApp\MyApp.exe -s"
Run Code Online (Sandbox Code Playgroud)

然后我像平常一样启动服务net start MyAppService.

在两台Windows XP计算机和两台Windows 2000计算机上,这很好用.但是,在两台不同的Windows XP Embedded机器上,当我尝试启动服务时,我收到消息:

发生系统错误1083.

配置此服务运行的可执行程序不实现该服务.

在一台机器上,我能够通过卸载并重新安装.NET 2.0来解决这个问题,但在第二台机器上,这不起作用.

我不确定如何调试这个,并且只搜索谷歌似乎只会出现这个消息失败的特定服务,如BITS和Exchange服务.

下面是类MyApp,它是启动类MyAppService,它是扩展ServiceBase的类.提前感谢任何方向.

MyApp.cs

static class MyApp
{
    [STAThread] static void Main( string[] args )
    {
        ....
        switch ( arg1 )
        {
            case "-s":
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[] { new MyAppService() };
                ServiceBase.Run( ServicesToRun );
                break;
             ....
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

MyAppService.cs:

class MyAppService : ServiceBase
{
    static MyAppService()
    { …
Run Code Online (Sandbox Code Playgroud)

.net c# windows-services .net-2.0

6
推荐指数
1
解决办法
1396
查看次数

与ServiceStack左连接.OrmLite返回一个空对象而不是null

我创建了一个存储库,其中包含我要执行的操作的完整示例

我有以下架构:

class Order
{
    public int OrderId { get; set; }
}

class LineItem
{
    public int LineItemId { get; set; }
    public int OrderId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用ServiceStack.OrmLite使用以下代码将Order与LineItem联接起来:

var query = db.From<Order>()
              .LeftJoin<LineItem>()
              .Where(o => o.OrderId == 1);

var results = db.SelectMulti<Order, LineItem>(query);
Run Code Online (Sandbox Code Playgroud)

SelectMulti()返回List<Tuple<Order, LineItem>>。当订单中没有订单项时,我将返回new LineItem()而不是null

我希望能null回来,所以我可以说出“此订单不存在任何订单项”和“此订单包含具有默认值的订单项”之间的区别。

可以检查订单项OrderId是否等于订单的OrderId,但理论上我可以将订单的订单号OrderId设为0,因此在这种情况下我将无法分辨。

是否有更好的方法与OrmLite保持连接?

c# servicestack ormlite-servicestack

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

从模块修改和还原PowerShell提示符

我正在编写一个PowerShell模块,用于与远程服务进行交互.当连接到远程服务时(通过模块中的功能),我想在提示符前面添加用户名.断开连接后,我想删除用户名.

我想我可以通过复制全局prompt函数来实现这一点,然后在断开连接时恢复它:

# Doesn't work
function Connect {
    Copy-Item function:prompt function:prompt_old
    function global:prompt { "[Username] $(prompt_old)" }
}
function Disconnect {
    Copy-Item function:prompt_old function:prompt -Force
}
Run Code Online (Sandbox Code Playgroud)

但是,Copy-Item不在全局范围内复制.因此,prompt抛出一个CommandNotFoundException和断开功能不能代替promptprompt_old.

有没有办法可以从模块函数修改,然后恢复PowerShell提示符?

powershell scope

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