小编cav*_*ick的帖子

如何在双引号字符串中使用对象的属性?

我有以下代码:

$DatabaseSettings = @();
$NewDatabaseSetting = "" | select DatabaseName, DataFile, LogFile, LiveBackupPath;
$NewDatabaseSetting.DatabaseName = "LiveEmployees_PD";
$NewDatabaseSetting.DataFile = "LiveEmployees_PD_Data";
$NewDatabaseSetting.LogFile = "LiveEmployees_PD_Log";
$NewDatabaseSetting.LiveBackupPath = '\\LiveServer\LiveEmployeesBackups';
$DatabaseSettings += $NewDatabaseSetting;
Run Code Online (Sandbox Code Playgroud)

当我尝试使用字符串执行命令中的一个属性时:

& "$SQlBackupExePath\SQLBackupC.exe" -I $InstanceName -SQL `
  "RESTORE DATABASE $DatabaseSettings[0].DatabaseName FROM DISK = '$tempPath\$LatestFullBackupFile' WITH NORECOVERY, REPLACE, MOVE '$DataFileName' TO '$DataFilegroupFolder\$DataFileName.mdf', MOVE '$LogFileName' TO '$LogFilegroupFolder\$LogFileName.ldf'"
Run Code Online (Sandbox Code Playgroud)

它试图只使用值$DatabaseSettings而不是值$DatabaseSettings[0].DatabaseName,这是无效的.
我的解决方法是将其复制到一个新变量中.

如何直接在双引号字符串中访问对象的属性?

powershell string-interpolation

84
推荐指数
5
解决办法
5万
查看次数

如何在wix v3.8中进行重大升级时保留配置文件?

我想在msi安装程序进行重大升级时保留配置文件.对于配置文件,我在安装时进行了更改.代码如下:

<Component Id="MODIFYCONFIG" Guid="6A1D7762-B707-4084-A01F-6F936CC159CE" Win64="yes">
    <File Id="Application.config" Name="Application.config" Vital="yes" KeyPath="yes" Source="Resource\Application.config"></File>
    <util:XmlFile Id="SetValueIP" Action="setValue" Permanent="yes" File="[#Application.config]"
         ElementPath="/configuration/applicationSettings/Application.Properties.Settings/setting[\[]@name='IpAddress'[\]]/value"  Value="[IPADDRESS]" Sequence="1"/>
    <util:XmlFile Id="SetValuePort" Action="setValue" Permanent="yes" File="[#Application.config]"
         ElementPath="/configuration/applicationSettings/Application.Properties.Settings/setting[\[]@name='IpPort'[\]]/value"  Value="[PORT]" Sequence="2"/>
    <Condition>Not Installed</Condition>
  </Component>
  <Component Id="KEEPCONFIG" Guid="F7F173AA-C2FD-4017-BFBC-B81852A671E7" Win64="yes">
    <RemoveFile Id="ApplicationConfig" Name="Application.config" On="uninstall"/>
    <Condition>(REMOVE=ALL) AND (NOT UPGRADINGPRODUCTCODE)</Condition>
  </Component>
Run Code Online (Sandbox Code Playgroud)

但是,当发生重大升级时,不会保留文件.如何保留修改后的文件?

wix upgrade preserve

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

SonarQube LDAP身份验证似乎加载但不允许通过域用户登录

我一直在尝试使用LDAP身份验证插件(v1.4)设置SonarQube(v4.1),我无法让它对我的域用户进行身份验证.我的配置设置如下:

#########################
# LDAP configuration
#########################
# General Configuration
sonar.security.realm=LDAP
sonar.security.savePassword=true
sonar.security.updateUserAttributes=true
sonar.authenticator.downcase=true
sonar.authenticator.createUsers=true

ldap.authentication=simple
ldap.realm=mydomain.co.uk
ldap.bindDn=CN=USERNAME,OU=developers,DC=mydomain,DC=co,DC=uk
ldap.bindPassword=PASSWORD

# User Configuration
#ldap.user.baseDn=OU=developers,DC=mydomain,DC=co,DC=uk
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

# Group Configuration
ldap.group.baseDn=CN=Domain Users,CN=Users,DC=adastra,DC=co,DC=uk
ldap.group.request=(&(objectClass=group)(member={dn}))
Run Code Online (Sandbox Code Playgroud)

并且日志输出以下似乎说LDAP连接正常工作的消息:

2014.01.20 16:12:32 INFO  [org.sonar.INFO]  Security realm: LDAP
2014.01.20 16:12:32 INFO  [o.s.p.l.LdapSettingsManager]  Auto discovery mode
2014.01.20 16:12:32 INFO  [o.s.p.l.LdapSettingsManager]  Detected server: ldap://dc02.mydomain.co.uk:389
2014.01.20 16:12:32 INFO  [o.s.p.l.LdapSettingsManager]  User mapping: LdapUserMapping{baseDn=dc=mydomain,dc=co,dc=uk, request=(&(objectClass=user)(sAMAccountName={0})), realNameAttribute=cn, emailAttribute=mail}
2014.01.20 16:12:32 INFO  [o.s.p.l.LdapSettingsManager]  Group mapping: LdapGroupMapping{baseDn=CN=Domain Users,CN=Users,DC=mydomain,DC=co,DC=uk, idAttribute=cn, requiredUserAttributes=[dn], request=(&(objectClass=group)(member={0}))}
2014.01.20 16:12:32 INFO  [o.s.p.l.LdapContextFactory]  Test LDAP …
Run Code Online (Sandbox Code Playgroud)

ldap active-directory sonarqube

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

Fragment中的InstallExecuteSequence未包含在安装程序中

我有一个奇怪的问题,虽然不重要但我想知道它为什么会发生.

完成相当复杂的安装程序后,我决定重构代码并将不同的任务抽象为单独的片段.我有在WriteRegistryValues操作后调用的C#CustomAction.

<InstallExecuteSequence>
    <Custom Action="CA_SSLCertGenerateInstall" After="WriteRegistryValues">
        <![CDATA[NOT REMOVE]]>
    </Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

但是,当我将上述代码段从Product.wxs移动到Fragment中时,dll不会包含在安装程序中,显然不会调用CustomAction.

查看模式文档(http://wix.sourceforge.net/manual-wix3/wix_xsd_fragment.htm)时,InstallExecuteSequence显然是Fragment的有效子项.

windows-installer wix wix3.5

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

修复时,Wix安装程序会清除注册表设置

目前我已经定制了Wix_InstallDirDlg以使用户能够在安装时设置注册表项.在InstallDirDlg和MaintenanceTypeDlg之后会显示一个自定义对话框,以便它适用于安装和修复方案.

自定义对话框具有链接到属性的单个文本框.此属性具有注册表搜索,以便在用户修复或升级时保留先前的值,并因此显示在自定义对话框中以供用户验证.该对话框在安装时工作正常,并创建了注册表项.但是,在修复时,将显示自定义对话框,并输入正确的注册表值(因此RegistrySearch正在运行),但修复完成后,键值为空.

<Property Id='SERVER_LISTEN_URL'>
          <RegistrySearch Id='ServerListenUrlRegSearch' Root='HKLM'
                          Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
                          Name='ServerListenUrl'
                          Type='raw' Win64='no' />
        </Property>

<Component Id="RegistryEntries" Guid="0234974B-6158-4312-90A7-56869809B42E">
        <RegistryKey Id="ServerRegKey"
              Root="HKLM"
              Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
              Action='createAndRemoveOnUninstall'>
          <RegistryValue Id="ServerListenUrlRegVal"
                         Name='ServerListenUrl'
                         Value='[SERVER_LISTEN_URL]'
                         KeyPath='yes'
                         Type='string' />
        </RegistryKey>
</Component>

<Dialog Id="SettingsDlg">
    <Control Id="ListenUrl" Type="Edit" X="20" Y="100" Width="320" Height="18" Property="SERVER_LISTEN_URL" Indirect="no" />
</Dialog>
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

wix wix3.5

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

刻录引导程序未正确检测Windows安装程序版本

目前,如果用户在Windows XP上,我有以下片段来检查和安装Windows Installer 4.5.

<Fragment>
    <Property Id="WinXPx86HasInstaller">
      <![CDATA[VersionNT = 'v5.1' AND  VersionMsi >= "4.5.6001.22159"]]>
    </Property>

    <PackageGroup Id="Windows.Installer.4.5">
        <ExePackage Id="WinXp_x86"
                    Cache="no"
                    Compressed="no"
                    PerMachine="yes"
                    Permanent="yes"
                    Vital="yes"
                    InstallCommand="/norestart /passive"
                    SourceFile="WindowsXP-KB942288-v3-x86.exe"
                    DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe"
                    DetectCondition="WinXPx86HasInstaller"
                    InstallCondition="NOT WinXPx86HasInstaller">
            <ExitCode Behavior="forceReboot" />
        </ExePackage>
    </PackageGroup>
</Fragment>
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,即使安装它,属性"WinXPx86HasInstaller"也总是计算为false.

我究竟做错了什么?

wix burn wix3.6

6
推荐指数
2
解决办法
6463
查看次数

如何通过wix刻录链中途安排重启?

目前我有一个链,检查并安装以下先决条件,如果它们丢失:

  1. Windows Installer 4.5
  2. .net框架4
  3. Sql Server Express 2008 R2

不幸的是,安装程序需要在安装#1后重启机器,否则Sql server安装失败.如果提示用户重新启动计算机,则会被禁止,安装程序将继续使用#2.如何重新启动计算机(如果已安装#1),然后自动继续安装?

谢谢

wix wix3.6

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

HttpResponseMessage ReasonPhrase最大长度?

我有以下代码:

public void Put(int id, DistributionRuleModelListItem model)
{
    CommonResultModel pre = new BLL.DistributionRules().Save(id, model, true);
    if(!pre.success){
        DAL.DBManager.DestroyContext();
        var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError)
        {
            Content = new StringContent(string.Format("Internal server error for distruleId: {0}", id)),
            ReasonPhrase = pre.message.Replace(Environment.NewLine, " ")//.Substring(0,400)
        };
        throw new HttpResponseException(resp);
    }
}
Run Code Online (Sandbox Code Playgroud)

有一种逻辑可以将pre.message的值设置为an exception.ToString(),如果时间太长,则会收到以下应用程序异常:

指定的参数超出有效值范围。参数名称:值

但是,如果我取消注释,.Substring(0,400)一切都很好,并且在客户端,我会收到正确的响应,并且可以将其显示给用户。

ReasonPhrase的最大长度是多少?我找不到任何指定此值的文档。

asp.net-mvc asp.net-web-api

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

WixUiBannerBmp可以设置为wixlib吗?

目前我正在尝试将WixUIBannerBmp,WixUIDialogBmp和WixUILicenseRtf WixVariables及其相应的二进制文件移动到wixlib.不幸的是,在构建时忽略这些并使用默认值.

我的Library.wxs:

<Fragment>
    <WixVariable Id="WixUILicenseRtf" Value="licence.rtf" />
    <WixVariable Id="WixUIBannerBmp" Value="binaries/bannrbmp.bmp" />
    <WixVariable Id="WixUIDialogBmp" Value="binaries/dlgbmp.bmp" />
</Fragment>
Run Code Online (Sandbox Code Playgroud)

其中rtf和bmp文件包含在wixlib项目中,路径相对于Library.wxs文件.

任何人都有任何想法为什么这不起作用?

谢谢

windows-installer wix wixlib wix3.5

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

尝试捆绑.NET框架依赖时,WiX无法找到文件

在尝试构建依赖于.NET 4框架的Burn引导程序时,我遇到了一个奇怪的错误.我已经下载了WiX设置的源代码并将其包含NetFx.wxs在我的项目中并在Chain中添加了PackageGroupRef,但是我收到以下错误:

错误LGHT0103:系统找不到文件'dotNetFx40_Full_x86_x64.exe'

档案Netfx.wxs:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
    <Fragment>
        <WixVariable Id="WixMbaPrereqPackageId"
                     Value="Netfx4Full" />

        <WixVariable Id="WixMbaPrereqLicenseUrl"
                     Value="NetfxLicense.rtf" />

        <util:RegistrySearch Root="HKLM"
                             Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
                             Value="Version"
                             Variable="Netfx4FullVersion" />

        <util:RegistrySearch Root="HKLM"
                             Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
                             Value="Version"
                             Variable="Netfx4x64FullVersion"
                             Win64="yes" />

        <PackageGroup Id="Netfx4Full">

            <ExePackage Id="Netfx4Full"
                        Cache="no"
                        Compressed="no"
                        PerMachine="yes"
                        Permanent="yes"
                        Vital="yes"
                        SourceFile="dotNetFx40_Full_x86_x64.exe"
                        DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193"
                        DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" />

        </PackageGroup>
    </Fragment>
</Wix>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

wix burn wix3.6

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