我需要生成一个描述所用编译器的C++头文件.
传统上我们使用CMake命令:
configure( ${PROJECT_SOURCE_DIR}/configure.h.in ${PROJECT_BINARY_DIR}/configure.h )
Run Code Online (Sandbox Code Playgroud)
它将所有夹在"@"之间的字符串(例如@ cxx_compiler_name @)替换为cmake构建系统中该变量的值.
我们已经被要求面对CMake,所以在Visual Studio中有相同的东西.我想用Visual Studio宏中的一些值填充头文件.
当我在MSBUILD中的文件上执行ReadLinesFromFile并再次输出该文件时,我将所有文本放在一行上.所有Carriage返回和LineFeeds都被删除.
<Project DefaultTargets = "Deploy"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<ItemGroup>
<MyTextFile Include="$(ReleaseNotesDir)$(NewBuildNumber).txt"/>
</ItemGroup>
<Target Name="ReadReleaseNotes">
<ReadLinesFromFile
File="@(MyTextFile)" >
<Output
TaskParameter="Lines"
ItemName="ReleaseNoteItems"/>
</ReadLinesFromFile>
</Target>
<Target Name="MailUsers" DependsOnTargets="ReadReleaseNotes" >
<Mail SmtpServer="$(MailServer)"
To="$(MyEMail)"
From="$(MyEMail)"
Subject="Test Mail Task"
Body="@(ReleaseNoteItems)" />
</Target>
<Target Name="Deploy">
<CallTarget Targets="MailUsers" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
我从文件中得到通常看起来像这样的文本
Run Code Online (Sandbox Code Playgroud)- New Deployment Tool for BLAH - Random other stuff()""
像这样出来
Run Code Online (Sandbox Code Playgroud)- New Deployment Tool for BLAH;- Random other stuff()""
我知道ReadLinesFromFile的代码将一次拉取一行数据并去除回车.
有没有办法把它们放回去?所以我的电子邮件看起来格式很好?
谢谢
我们公司正在使用Service Fabric开发新的应用程序.我们遇到的一个常见问题是,多个开发人员使用队列,数据库,远程服务器上的存储,每个都有不同的配置,所有设置都存储在每个环境的ApplicationParameters文件中,对于本地开发,只有一个Local.5Node .XML.当我们获得这些文件的最新版本时,很常见的开发人员检查他们的凭据并覆盖其他人.
我正在尝试自定义ServiceFabric部署脚本'Deploy-FabricApplication.ps1'以使用自定义PublishProfile,具体取决于已登录用户的Windows凭据.我可以实现更新部署文件,当我们使用发布进行部署时,它可以正常工作,但是当我们点击F5(debug)时,ServiceFabric的默认行为似乎是用特定的Local.5Node.xml应用程序参数覆盖参数.
我探索了所有服务结构.ps1文件,但找不到这个定义的位置.我想这是在.targets文件上定义的,所以我不知道如何避免这种默认行为.
是否有任何其他方法在Local.5Node.xml以外的本地开发机器上使用自定义PublishProfiles?
我希望使用msbuildtasks.tigris.org中的fileUpdate任务来修改图像src作为我们的Web设置项目的一部分,以便它们指向静态img子域(或稍后的CDN)
我可以在一个内部运行任务给定项目:
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<Target Name="AfterBuild">
<FileUpdate
Files="basic.css"
Regex="/images/([^\)]*)"
ReplacementText="http://img.domain.com/images/$1" />
</Target>
Run Code Online (Sandbox Code Playgroud)
但是,我不想覆盖原始的css源文件,但希望将其作为生成msi的部署项目的一部分运行.这是使用Web安装项目(.vdproj)完成的,该项目还使用自定义操作项目,该项目只是一个标准.csproj
我的问题是:
1.如何在安装项目中运行此任务,以便替换进入.msi的文件中的内容?
2.有没有办法为文件使用通配符 - 理想情况下我想对所有.css文件执行此操作?
谢谢你的帮助