專案 global Config 設定無法套用在新增專案上

通常 config 設定會在陸續在專案檔建立後就會陸續建立其他環境,若是先將專案檔一開始全數建好,再建立相對應的環境設定,那麼不會有設定檔少套用的問題。然而如果是先將設定檔全數建好,再慢慢回頭補建專案檔,有可能會造成設定檔會無法套在專案上的問題。
 

首先建立 TestConfig, ClassLibrary 這兩個專案在一個專案檔裡,而一開始的確也只有 debug/release 兩個設定檔的環境

接著我們想建立一個新的設定檔給 PRD,建立後的確也能完美的套用在既有的這兩個 TestConfig, ClassLibrary 專案檔上 (只要針對要轉換的 config 右鍵選擇 add config transforms 即會產生)

再來我們加上了一個專案叫做 ConsoleDemo 的專案,這時候就會發現 PRD 的設定檔無法套用在這個專案上

先檢查 sln 的檔案是否有什麼問題, 在 GlobalSection 的確也有這三個設定檔,而這三個專案檔也都相對有了這三組的設定檔,到目前為止都沒什麼問題

然而我們再往下檢查 .csrpoj 的專案檔,即會發現在 PropertyGroup 的確少了新的設定檔,不知這是否為 VS IDE 的 bug?

將 PRD 的設定補上後

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'PRD|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\PRD\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

 

再針對 config 檔重新執行 add config transforms 即可產生出我們要的環境設定轉換檔案了