标签: msbuild

如何使用msbuild添加可在IIS中使用的安全证书

我有这个目标

<Target Name = "AddLocalCertificate">       
    <MSBuild.ExtensionPack.Security.Certificate TaskAction="Add" FileName="$(CertificateLocation)" CertPassword="$(CertificatePassword)">           
        <Output TaskParameter="Thumbprint" PropertyName="CertificateHash"/>             
    </MSBuild.ExtensionPack.Security.Certificate>
</Target>
Run Code Online (Sandbox Code Playgroud)

在另一个目标中这个绑定声明

<MSBuild.ExtensionPack.Web.Iis7Binding
  CertificateHash="$(CertificateHash)" 
  TaskAction="Add" MachineName="$(MachineName)" Name="$(SiteName)" BindingInformation="*:$(HttpsPort):$(SiteName)" BindingProtocol="https"/>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行目标时,我得到了错误

使用证书创建绑定:拇指打印'DBE4964B4C4D0F185E8B1D421D736390AE586EBF'存储在'MY'C:\ Projects\RC19_Release2\ExternalBinaries\MSBuildGlobalFiles\ManageWebsite.targets(154,3)中:错误:COMException:指定的登录会话不存在.它可能已经被终止了.(来自HRESULT的异常:0x80070520)\ r C:\ Projects\RC19_Release2\ExternalBinaries\MSBuildGlobalFiles\ManageWebsite.targets(154,3):错误:

当我查看IIS时,它创建了网站并且绑定就在那里,但它似乎无法找到证书,如果我查看IIS上的"服务器证书",那么我看不到我的证书.

如果我执行MMC - >证书管理并转到当前用户,那么我可以在那里看到我的证书.

如何从IIS/msbuild中访问该证书或让msbuild在正确的位置创建它以使IIS满意?

msbuild扩展帮助页面是http://www.msbuildextensionpack.com/help/4.0.5.0/html/45763eac-8f14-417d-9b27-425161982ffe.htm,但它对我帮助不大!

谢谢

security deployment msbuild iis-7 msbuildextensionpack

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

MSBuild使用%(RecursiveDir)作为文件名的一部分

作为构建脚本的一部分,我们从子目录复制用户消息文件,并希望将子目录的名称附加到消息文件中。即msg \ 0 \ message.std> msg \ message0.std

我尝试使用

<Copy SourceFiles="@(MessageFiles)" 
DestinationFiles="@(MessageFiles->'$(BuildRoot)\%(Filename)%(RecursiveDir)%(Extension)'"/>
Run Code Online (Sandbox Code Playgroud)

但是,这试图将文件复制到.. \ message0.std。

无论如何,还是要抑制%(RecursiveDir)中的尾随'\'或以另一种方式组成目标名称?

msbuild msbuild-4.0

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

MsBuild和FxCop问题

我正在尝试使用cmd或jenkins构建作业使用msbuild运行构建文件.

该项目的结构是

项目结构

演示在这里:www.saramgsilva.com/wp7/sarasilvademo.rar

现在我有3种不同的方式来运行fxcop,但我总是有问题.

1)在cmd中转到根文件然后运行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:FxCop
Run Code Online (Sandbox Code Playgroud)

这显示错误:退出代码128

2)在cmd中转到根文件然后运行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7C.build /target:FxCop
Run Code Online (Sandbox Code Playgroud)

这不会创建buildartifacts\FxCop\FxCopAnalysis.xml文件.

3)在cmd中转到根文件然后运行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:TestWithCoverage
Run Code Online (Sandbox Code Playgroud)

C:\SaraSilvaDemo\tools\FxCop-1.36\FxCopCmd.exe /file:C:\SaraSilvaDemo\buildartifacts /directory:C:\SaraSilvaDemo\buildartifacts\ /rule:C:\SaraSilvaDemo\tools\FxCop-1.36\Rules /out:C:\SaraSilvaDemo\buildartifacts\fxcop-result.xml
Run Code Online (Sandbox Code Playgroud)

结果是:

Microsoft(R)FxCop命令行工具,版本1.36(9.0.30729.1)版权所有(C)2007 Microsoft Corporation.版权所有.

加载DesignRules.dll ...加载GlobalizationRules.dll ...加载InteroperabilityRules.dll ...加载MobilityRules.dll ...加载NamingRules.dll ...加载PerformanceRules.dll ...加载PortabilityRules.dll ...加载SecurityRules.dll ...已加载UsageRules.dll ...无法加载Cimbalino.Phone.Toolkit.dll.无法加载GalaSoft.MvvmLight.Extras.WP71.dll.无法加载GalaSoft.MvvmLight.WP71.dll.无法加载Microsoft.Phone.Controls.dll.无法加载Microsoft.Practices.ServiceLocation.dll.无法加载mscorlib.Extensions.dll.无法加载NLog.dll.已加载nunit.framework.dll ...已加载SaraSilva.WP7.AllTests.dll ...无法加载SaraSilva.WP7.App.dll.无法加载SaraSilva.WP7.Model.dll.无法加载SaraSilva.WP7.SampleData.dll.无法加载SaraSilva.WP7.SchedTask.dll.无法加载SaraSilva.WP7.Service.dll.加载System.Core.dll ...无法加载System.dll.无法加载System.Windows.Browser.dll.加载System.Windows.dll ...无法加载System.Windows.Interactivity.dll.无法加载System.Xml.dll.无法加载TombstoneHelper.dll.初始化Introspection引擎...无法解析对System.Net的引用.分析完成.

注意:找不到一个或多个引用的程序集.使用'/ directory'开关指定其他程序集引用搜索路径.

  • 没有进行分析; 必须至少指定一个有效的规则程序集和一个有效的目标文件.
  • 2总分析引擎异常.将报告写入C:\ SaraSilvaDemo\buildartifacts\fxcop-result.xml ...完成.

我不知道该怎么办 :(

msbuild fxcop

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

将dirPath Provider与WebDeploy一起使用

我有一个在iis中托管的wcf应用程序,我正在尝试使用webdeploy打包.使用visual studio工具一切都很好,但我还需要创建一个日志文件夹并设置权限.为此,我在我的web项目中创建了一个ProjectName.wpp.target文件.该文件看起来像这样

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Target Name="CreateLogsDirectory" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">   
    <!-- This must be declared inside of a target because the property 
    $(_MSDeployDirPath_FullPath) will not be defined at that time. -->
    <ItemGroup>
      <MsDeploySourceManifest Include="dirPath">
        <Path>$(_MSDeployDirPath_FullPath)\logs</Path>
        <enableRule>DoNotDeleteRule</enableRule>
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>

  <Target Name="DeclareCustomParameters" AfterTargets="AddIisAndContentDeclareParametersItems">
    <!-- This must be declared inside of a target because the property 
    $(_EscapeRegEx_MSDeployDirPath) will not be defined at that time. -->
    <ItemGroup>
      <MsDeployDeclareParameters Include="LogsDirectoryPath">
        <Kind>ProviderPath</Kind>
        <Scope>dirPath</Scope>
        <Match>^$(_EscapeRegEx_MSDeployDirPath)\\logs$</Match>
        <Value>$(_DestinationContentPath)/log</Value>
        <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
      </MsDeployDeclareParameters>
    </ItemGroup>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

我可以看到dirPath提供程序已添加到sourcemanifest文件中,但是当我部署该程序包时,它会尝试创建源文件路径.本质上,LogsDirectoryPAth项不替换路径.谁能指出我需要做什么?谢谢 !

msbuild msdeploy webdeploy

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

msdeploy和setparameters.xml

我遇到了msdeploy使用的SetParameters.xml文件的问题.

在我的网站中,我创建了一个parameters.xml文件,其中包含以下内容:

<parameters>
    <parameter name="enableRule" defaultValue="DoNotDeleteRule"></parameter>
</parameters>
Run Code Online (Sandbox Code Playgroud)

在构建部署包期间,此参数将添加到setParameters.xml文件中,该文件如下所示:

<parameters>
  <setParameter name="IIS Web Application Name" value="mywebsite/myservice/>
  <setParameter name="enableRule" value="DoNotDeleteRule" />
</parameters>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行msdeploy(使用包的cmd)时,将忽略该参数.我尝试通过添加-setParamFile属性来调用cmd,但这没有任何区别......

有人可以帮我弄这个吗 ?

asp.net msbuild parameters msdeploy

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

MSBuild从具有通配符的文件中复制任务和条件名称

我有一个FilesToExclude2.txt文件,其中包含所有类似的排除项:

*.settings
*#*
*.vbproj*
*.csproj*
*\Errors\*
*\Errors
*\_vti_*\*
*\_vti_*
*\CVS\*
Run Code Online (Sandbox Code Playgroud)

在我的任务文件中,有一个复制任务

  <Target Name="CustomModuleCopy">
    <ItemGroup>
      <ModuleFiles Include="$(SolutionModuleName)\$(ProjectModuleName)\**\*.*" />
      <FileToExclude Include="$(BasePath)\$(SolutionModuleName)\FilesToExclude2.txt" />
    </ItemGroup>
    <ReadLinesFromFile File="@(FileToExclude)">
      <Output TaskParameter="Lines" ItemName="FileContents" />
    </ReadLinesFromFile>

    <Copy SourceFiles="@(ModuleFiles)" DestinationFiles="@(ModuleFiles->'$(DestFolder)\$(ProjectModuleName)\%(RecursiveDir)%(Filename)%(Extension)')" Condition="'%(ModuleFiles.Identity)' != @(FileContents)" ContinueOnError="false" />

    <!--CallTarget Targets="RemoveCustomModuleConfigFiles" /-->
  </Target>
Run Code Online (Sandbox Code Playgroud)

如果复制任务上没有“ condition”属性,则一切正常,但是我不知道如何使用通配符以及是否有可能实现条件

任何帮助都将不胜感激:)这让我吓了几个小时...

msbuild

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

仅构建更改的项目或全部构建,在持续集成中首选哪个?

我们的软件分为多个组件。

Msbuild脚本自动执行我们的构建和批处理脚本以调用它。即使有很小的变化,我们也会每天构建组件。我们希望转向持续集成,以便每当签入发生时便触发构建。

我们的msbuild脚本以这样的方式编写:它将为组件生成所有sln文件。在持续集成中,是否仅需要构建经过修改的sln?

如果我仅生成更改的项目,是否必须为每个sln编写一个msbuild?

我可以简单地在teamcity中使用现有的msbuild脚本吗?

msbuild teamcity continuous-integration build-process build

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

编辑msi数据库表

如何使用msidb.exe添加或删除msi数据库表的条目,而不是使用orca.Is有任何命令行,如下所示

msidb.exe [msipath][importingFilepath]
Run Code Online (Sandbox Code Playgroud)

添加文件后,应更新msi表中的相应条目

谢谢,

c# msbuild installer windows-installer wix

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

为多个.vdproj文件调用devenv.exe

我有一个包含多个vdproj文件的解决方案.我在build.proj文件中创建了一个项目组:

<ItemGroup>
<SetupProjectFiles Include="$(MSBuildProjectDirectory\**\*.vdproj">
</SetupProjectFiles>
Run Code Online (Sandbox Code Playgroud)

现在我想在每个上面调用devenv.exe吗?

<Exec Command="devenv.exe %(SetupProjectFiles)"></Exec>
Run Code Online (Sandbox Code Playgroud)

不行......任何人都有指点吗?

msbuild

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

将MSBuild与外部xml参数文件一起使用

如何让MSBuild任务使用外部xml参数文件中的参数?

示例:使用外部xml文件中的"MyConnectionStringParameter"作为MSBuild任务.

MSBuild文件:

<?xml version="1.0"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Migrate">

  <UsingTask TaskName="FluentMigrator.MSBuild.Migrate"
       AssemblyFile="../bin/FluentMigrator.MSBuild.dll"/>

  <PropertyGroup>
      <TargetPath>../bin/Target.dll</TargetPath>
  </PropertyGroup>

  <Target Name="Migrate" >
    <Message Text="Starting FluentMigrator Migration"/>
    <Migrate Database="sqlserver2008"
             Connection="$(MyConnectionStringParameter)"
             Target="$(TargetPath)"
             Verbose="True"
             Output="True"
             OutputFilename="generated.sql">
    </Migrate>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

参数文件:

<?xml version="1.0" encoding="utf-8"?>
<parameters>
  <setParameter name="MyConnectionStringParameter" value="ParameterValue" />
</parameters>
Run Code Online (Sandbox Code Playgroud)

xml msbuild fluent-migrator

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