Visual Studio 2013中的ASP.NET(Web窗体)项目模板包含多个包.我试图找出哪些是必要的(可能需要为此创建一个单独的问题).http://blogs.msdn.com/b/webdev/archive/2013/10/16/asp-net-features-in-new-project-templates-in-visual-studio-2013.aspx上的帖子解释了其中一些的目的,但我无法弄清楚Antlr需要什么.有人可以澄清吗?
我试图找到一篇文章或发布列出WiX(Windows Installer XML)/ WiX Toolset的功能限制但未成功.使用WiX几周后,我可以想到最近的RTM版本(v3.0)中至少有两个限制:
你能想到其他限制吗?在处理部署项目时遇到的问题?我认为这些信息对于学习WiX的人来说非常方便.
我正在使用WixUI_Advanced序列来允许用户选择每台机器或每用户安装并更改目标文件夹.我的WiX项目旨在生产x86和x64 MSI(我正在使用WiX提示和技巧建议).我还将应用程序安装文件夹保留在注册表中以进行主要升级(我使用APPLICATIONFOLDER属性和目录ID - 而不是INSTALLLOCATION - 根据WixUI_Advanced要求).
WixUI_Advanced序列中存在一个错误,导致目标文件夹对话框在64位计算机上运行时在C:\ Program Files(x86)下显示app文件夹而不是C:\ Program Files,即使代码正确设置了app文件夹到ProgramFiles64Folder属性.错误跟踪器注释建议使用SetDirectory元素来设置APPLICATIONFOLDER的值,但没有解释如何执行此操作的示例.当我尝试时,它确实有点不同(我还发现一些帖子建议使用自定义动作设置APPLICATIONFOLDER,但没有一个对我有效).有谁知道如何使WixUI_Advanced序列在64位系统上显示正确的'Program Files'文件夹(并在主要升级期间显示最初选择的文件夹)?
如果它有帮助,我将提供示例WXS片段,但它们几乎遵循StackOverflow的WiX提示和技巧帖子的建议.此外,我的64位MSI包确实是一个64位的包(我的包和组件标记为'x64';它不能在32位平台上运行.)我正在使用WiX 3.6和Visual Studio 2010 .
代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product
Id="81955f17-31f3-4e51-8294-372f96141c00"
Name="WiX64BitDemo"
Language="1033"
Version="1.0.0.0"
Manufacturer="Test"
UpgradeCode="5bed9777-bea6-4dc3-91d7-5dd93819563a">
<Package
InstallerVersion="300"
Compressed="yes"
InstallScope="perMachine"
Platform="x64" />
<MajorUpgrade
AllowSameVersionUpgrades="no"
DowngradeErrorMessage="Can't downgrade."
Schedule="afterInstallInitialize" />
<Media
Id="1"
Cabinet="media1.cab"
EmbedCab="yes" />
<Property …Run Code Online (Sandbox Code Playgroud) jQuery插件通常依赖于外部文件:jQuery库,样式表(CSS),图像,其他插件等.使用(和编写)jQuery插件的指导原则是什么,这些插件可以解决依赖项的位置问题?换句话说,所需文件应该放在哪里:在主应用程序文件夹(Img,Css,JS或您使用的任何文件夹)下,在插件文件夹下(例如插件/ MyPlugin/Img,插件/ MyPlugin/Css等),或者是其他东西?
在将几个插件包含到项目中之后,我担心其他项目成员将很难确定需要哪些依赖项以及哪些文件应该放在哪里.
哪些有效,哪些不适合你?
我需要允许用户指定安装程序是否应在卸载期间删除或保留注册表项.这就是我的工作.我有一个带有Condition元素的RemoveRegistryKey组件,如下所示:
<Component
Id="ID"
Guid="GUID"
KeyPath="yes" >
<Condition></Condition>
<RemoveRegistryKey
Root="HKLM"
Key="Software\PATH_TO_KEY"
Action="removeOnUninstall"/>
</Component>
Run Code Online (Sandbox Code Playgroud)
这似乎按预期工作.如果我将Condition元素硬编码为0,则注册表项保持不变,如果我将其设置为1,则删除注册表项.(有一个不同的组件可以创建此注册表项,但我将其ForceDeleteOnUninstall属性设置为no.)
现在,我需要在卸载过程中通过用户输入来控制这种情况.我在C#中有一个CA,看起来像这样:
[CustomAction]
public static ActionResult AskUser(Session session)
{
MessageResult result = session.Message
(
InstallMessage.User +
(int)MessageBoxIcon.Information +
(int)MessageBoxButtons.YesNo,
new Record { FormatString = String.Format("Delete registry key?") }
);
if (result == MessageResult.Yes)
session["DELETEREGKEY"] = "1";
return ActionResult.Success;
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码安排CA执行:
<CustomAction Id="AskUserCA" BinaryKey="CA_Dll" DllEntry="AskUser" Execute="immediate" />
<InstallExecuteSequence>
<Custom Action="AskUserCA" Before="InstallValidate">(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
我将RemoveRegistryKey组件的Condition元素设置为:
<Condition>DELETEREGKEY="1"</Condition>
Run Code Online (Sandbox Code Playgroud)
我也尝试过DELETEREGKEY = 1和DELETEREGKEY,但即使我从CA获得提示(它出现在卸载确认对话框之后),我可以在日志文件中看到(当我使用日志记录时)DELETEREGKEY设置为1,无论响应(是或否),都不会删除注册表项.我尝试在其他事件之前/之后安排CA,但似乎没有任何帮助.
为什么这种情况似乎总是评估为假?有没有办法让它发挥作用? …
我正在尝试使用Microsoft ASP.NET Web API 2.2 帮助页面 5.2.3为 RESTful Web 服务构建 API 文档。看起来<summary>和<param>元素的内容包含在文档中,但该<remarks>部分完全被忽略,在我期望的描述中<returns>,我看到了<summary>. 我找不到任何解释帮助页面支持哪些 XML 注释标签的文章(或者注释控制器与注释常规代码有何不同)。我想知道是否有人可以分享任何指针,特别是可以使用哪些标签,如何引用其他页面等。
asp.net maml xml-documentation asp.net-web-api asp.net-web-api-helppages
下面的代码与Bootstrap 3.0.0 CSS文件一样正常工作,但是当它与Bootstrap 3.0.2 CSS一起使用时(我认为也是3.0.1),它在以下场景下无法正常工作:
展开的菜单不会显示在页面上.看起来它的高度包含在导航栏的高度内,因此它显示为滚动条.从这一点开始,下拉菜单不会超出导航栏的下边距,因此您需要使用滚动条进行导航.
如果您引用3.0.0版本的bootstrap CSS,那么它可以正常工作.我尝试了两个版本的Bootsrap JS文件,它似乎没有任何区别.
这是完整的HTML代码:
<!DOCTYPE html>
<html lang="en-us">
<head>
<!--<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" type="text/css">-->
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" type="text/css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/jscript"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js" type="text/javascript"></script>
<style>
body {
padding-top: 50px;
}
</style>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">MENU<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a …Run Code Online (Sandbox Code Playgroud) 当直接(在PowerShell控制台或ISE中)调用脚本或通过另一个PowerShell实例调用脚本时,为什么PowerShell会对引号参数进行不同的处理?
这是脚本(TestQuotes.ps1):
param
(
[string]
$Config = $null
)
"Config = $Config"
Run Code Online (Sandbox Code Playgroud)
结果如下:
PS D:\Scripts> .\TestQuotes.ps1 -Config "A B C"
Config = A B C
PS D:\Scripts> PowerShell .\TestQuotes.ps1 -Config "A B C"
Config = A
PS D:\Scripts> .\TestQuotes.ps1 -Config 'A B C'
Config = A B C
PS D:\Scripts> PowerShell .\TestQuotes.ps1 -Config 'A B C'
Config = A
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如果有多个(互斥参数)组,有没有办法让 PowerShell 强制执行互斥参数?
例如,考虑脚本中的这些参数Test.ps1(都是可选的和非位置的):
Param(
# GROUP A (a1 and a2 are mutually exclusive)
[switch]$a1,
[switch]$a2,
# GROUP B (b1 and b2 are mutually exclusive)
[switch]$b1,
[switch]$b2
)
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以强制指定最多来自 A 组(即$a1或$a2)的一个参数和/或最多来自 B 组(即$b1或$b2)的一个参数?
以下调用将是有效的:
.\Test.ps1
.\Test.ps1 -a1
.\Test.ps1 -a2
.\Test.ps1 -b1
.\Test.ps1 -b2
.\Test.ps1 -a1 -b1
.\Test.ps1 -a1 -b2
.\Test.ps1 -a2 -b1
.\Test.ps1 -a2 -b2
Run Code Online (Sandbox Code Playgroud)
以下调用无效:
.\Test.ps1 -a1 -a2 -b1 -b2
.\Test.ps1 -a1 -b1 -b2
.\Test.ps1 …Run Code Online (Sandbox Code Playgroud)