2014-11-13 46 views

回答

2

我們假設您正在使用Visual Studio,如果缺少它,需要部署log4net.config。

  • 與* .nuspec文件中創建的文件夾下的 「工具」 文件夾
  • 添加到nuspec文件:

     <file src="tools/**/*.*" target="\" /> 
        </files> 
    </package> 
    

這將包括在工具文件夾中的文件進入包

  • 放置在工具文件夾裏面文件install.ps1類似於一些代碼:

    param($installPath, $toolsPath, $package, $project) 
    
    $log4netInProjectFolder = $project.ProjectItems | Where-Object { $_.Properties.Item("Filename").Value -eq "log4net.config" } 
    
    if ($log4netInProjectFolder -eq $null) 
    { 
        Write-Host "File with path $deployTarget doesn't exist, deploying default log4net.config" 
    
        foreach($item in $filesToMove) 
        { 
         Write-Host "Moving " $item.Properties.Item("FullPath").Value 
         (Get-Interface $project.ProjectItems "EnvDTE.ProjectItems").AddFromFileCopy($item.Properties.Item("FullPath").Value) 
         (Get-Interface $item "EnvDTE.ProjectItem").Delete() 
        } 
    } 
    else 
    { 
        Write-Host "File $deployTarget already exists, preserving existing file." 
    } 
    

使用(例如)創建包:

nuget pack PackageWithMyLogConfig.nuspec -Version 1.0.0 

如果你想看看生成的包內,將其重命名爲* 。壓縮。然後,您可以使用任何檔案管理器查看內部內容。

0

大概是一個老問題,但在這裏不言而喻反正我也有過這樣的問題:

這可以通過手動更新使用命令行的包來完成,如圖in the PowerShell reference

Update-Package [-Id] <string> [-IgnoreDependencies] [-ProjectName <string>] [-Version <string>] [-Source <string>] [-Safe] [-IncludePrerelease] [-Reinstall] [-FileConflictAction] [-WhatIf]  

的您需要使用的參數是-FileConflictAction,您必須將其設置爲Ignore

編輯:問題是,這不適用於只有一個特定的文件,所以你可能不得不考慮重命名包中包含的配置文件。

相關問題