gpt4 book ai didi

visual-studio - Visual Studio 2010 生成后事件 : Passing Current FlavorToBuild

转载 作者:行者123 更新时间:2023-12-04 05:55:51 25 4
gpt4 key购买 nike

我目前正在从事一个重新平台化项目,其中一部分涉及几十个网站,所有网站都使用一个共同的 header 。这些站点中有几个都位于同一台机器上,因此设置了一个符号链接(symbolic link),以便它们都可以引用相同的内容。某些其他网站是外部网站,因此设置并使用了一个通用的“includes.company.com”。

快进到今天,我正在尝试在 Visual Studio 中设置“includes.company.com”站点。内容很简单。我将其归结为一个 HTML 文件和一个 CSS 文件以及所有必要的图像。

我现在想要完成的是基于当前的构建配置,输出带有可以从外部站点引用的正确链接的 HTML 和 CSS。

我目前有一个看起来像这样的构建后事件......

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "$(MSBuildProjectDirectory)\pbuild.ps1" "$(Configuration)" $(MSBuildProjectDirectory)

pbuild.ps1 的样子

param ([string]$config, [string]$target)

If ($config -eq "Debug")
{
(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', 'http://dev.includes.company.com' | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', 'http://dev.includes.company.com' | set-content $target\Builds\$config\header.html
}

If ($config -eq "QA")
{
(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', 'http://qa.includes.company.com' | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', 'http://qa.includes.company.com' | set-content $target\Builds\$config\header.html
}

If ($config -eq "Release")
{
(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', 'http://includes.company.com' | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', 'http://includes.company.com' | set-content $target\Builds\$config\header.html
}

这对调试和发布非常有效,但对 QA 无效。正如我所发现的,变量 $Configuration 似乎只包含“调试”或“发布”,而不是我正在寻找的实际事件配置。

FlavorToBuild 看起来很有前途,但我很难将其提取到我可以使用的变量中。

是否设置了一个变量来提供我正在寻找的东西,即事件构建配置的名称?有没有办法在项目文件中分配一个变量,然后我可以将其输入到我的 Post-Build 事件中?这是我第一次真正涉足这个世界,因此非常感谢任何有关如何实现这一目标的帮助或指导。

最佳答案

我似乎已经通过为每个构建的项目文件添加一两个属性来解决这个问题。

我最终得到了如下内容:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "$(MSBuildProjectDirectory)\pbuild.ps1" $(PowershellBuildEnv) $(MSBuildProjectDirectory) $(TargetSite)

pbuild.ps1 现在精简为:

param ([string]$config, [string]$target, [string]$replaceWith)

(get-content $target\common\css\stylesheet.min.css) -replace '{SERVER}', $replaceWith | set-content $target\Builds\$config\common\css\stylesheet.min.css
(get-content $target\header.html) -replace '{SERVER}', $replaceWith | set-content $target\Builds\$config\header.html

在项目文件中,我定义了 $ReplaceWith 和 $PowershellBuildEnv,因为我认为适合每个构建配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PowershellBuildEnv>Debug</PowershellBuildEnv>
<TargetSite>http://dev.includes.company.com</TargetSite>

所以,似乎就像我现在正在寻找的那样工作。绝对是一次学习经历。

关于visual-studio - Visual Studio 2010 生成后事件 : Passing Current FlavorToBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com