2015-09-09 223 views
2

我最近更新了一個我的nuget軟件包,以便它現在需要在應用程序設置中顯示在消費項目中。我想將一個app.config變換添加到包中,以便任何使用我的包的新版本的人都將使用一些默認值填充此應用程序設置。爲此,我遵循this post來創建app.config.install.xdt文件。如何在app.config上應用xdt轉換來安裝/更新nuget包?

<?xml version="1.0"?> 
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
     <appSettings xdt:Transform="InsertIfMissing">   
      <add key="CustomSetting" value="CustomValue" /> 
     </appSettings> 
    </configuration> 

我還添加了一行根據this stackoverflow post

 <file src="\Content\app.config.install.xdt" target="app.config" /> 

但是,我nuspec當我安裝/更新此包中的消費者,我沒有看到這個應用程序設置在應用程序中顯示出來。消費者的配置。是否還有其他步驟我失蹤?

+1

您還應該在您的條目中添加xdt:Transform =「InsertIfMissing」。否則,當你更新你的軟件包時,密鑰將被重新插入。 – Calvin

回答

5

nuspec文件條目看起來不正確。它應該是這樣的:

<file src="Content\app.config.install.xdt" target="content" /> 

你的目標是app.config這是不正確的。 .xdt轉換需要位於NuGet包內的內容目錄中。

+0

你是什麼意思 - 「.xdt轉換需要在NuGet包內的內容目錄中」?你的意思是說,這個過程是創建nupkg文件,然後打開它並修改它?或者你的意思是在VS項目中創建一個名爲'content'的文件夾並將.xdt文件放在那裏? – barrypicker

+0

這意味着NuGet包(.nupkg)中應該有內容目錄。您無需打開並修改使用'nuget pack'命令生成的.nupkg文件。您不需要在Visual Studio項目中創建文件夾。 –

+0

謝謝馬特。似乎我需要將'文件'定義添加到spec文件中... – barrypicker