2017-05-06 71 views
1

我在一個文件夾中有幾個*.csproj(新格式)(「同一個」項目,不同的版本 - 不適用於單個文件夾),我需要有app.config文件有些項目爲bindingRedirect。有沒有辦法讓每個項目有不同的app.config名稱,例如packages.configpackages.<project name>.config針對同一文件夾中不同項目的不同應用程序配置

我認爲作爲解決方法的唯一的,相當蹩腳的解決方案是有一個預先構建和後期構建任務,將文件放在那裏並將其刪除,並確保兩個構建一起運行。

+0

我不知道你的意思正好與*具有不同的app.config名*(不同的文件也許?),但如果你設置了'$ (AppConfig)'屬性,它將使用它作爲文件名而不是標準的app.config文件。所以你可以將其設置爲'app。$(MSBuildProjectName).config'。再次,不是100%確定這是否是你想要的? (支持「同一個項目,不同的構建」的副作用:幾乎總是有一種方法可以實現這一功能,但是我發現很多情況下,僅僅由於缺乏msbuild知識而未找到這種方式 - 並不是說​​這是案例在這裏,但只是FYI) – stijn

+0

太棒了。這正是我需要的。我完全錯過了'$(AppConfig)'屬性。如果您將此添加爲答案,我會立即接受。 –

回答

3

查看構建輸出,您可以看到名爲_CopyAppConfigFile的目標,該目標負責複製配置文件。進一步查看Microsoft.Common.CurrentVersion.targets可以看出,默認情況下,msbuild使用app.config,這可以通過聲明屬性AppConfig來覆蓋。所以,如果你想在使用納入項目名稱

<PropertyGroup> 
    <AppConfig>app.$(MSBuildProjectName).config</AppConfig> 
</PropertyGroup> 
相關問題