nuget配置转换文件的问题

时间:2013-03-13 20:13:14

标签: nuget config-transformation

我正在创建一个nuget包,除了其他文件之外还包含配置文件,例如:f1.config,f2.config等。这些配置文件又在web.config文件中引用。

由于这些配置文件在安装此软件包的项目中可能存在也可能不存在,因此我将它们重命名为f1.config.transform,f2.config.transform。

虽然在所有可能的情况下,程序包的安装都可以完美运行,但卸载在某个特定情况下并不能正常工作。也就是说,如果在安装之前项目中不存在配置文件f2.config,则在卸载软件包时不会删除它。

有什么想法吗?

编辑:NuGet规范文件

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
    <metadata>
        <id>WCFServicesProxyPackage</id>
        <version>1.0.3</version>
        <title />
        <authors>Shkelzen a. Saraqini</authors>
        <owners>Shkelzen a. Saraqini</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>WCF services proxy package.</description>
        <language>en-CA</language>
        <references>
            <reference file="WCFServices.Proxy.dll" />
        </references>
    </metadata>
    <files>
        <file src="content\config\system.serviceModel.behaviors.Local.config.transform" target="content\config\system.serviceModel.behaviors.Local.config.transform" />
        <file src="content\config\system.serviceModel.behaviors.Production.config.transform" target="content\config\system.serviceModel.behaviors.Production.config.transform" />
        <file src="content\config\system.serviceModel.behaviors.QA.config.transform" target="content\config\system.serviceModel.behaviors.QA.config.transform" />
        <file src="content\config\system.serviceModel.bindings.Local.config.transform" target="content\config\system.serviceModel.bindings.Local.config.transform" />
        <file src="content\config\system.serviceModel.bindings.Production.config.transform" target="content\config\system.serviceModel.bindings.Production.config.transform" />
        <file src="content\config\system.serviceModel.bindings.QA.config.transform" target="content\config\system.serviceModel.bindings.QA.config.transform" />
        <file src="content\config\system.serviceModel.client.Local.config.transform" target="content\config\system.serviceModel.client.Local.config.transform" />
        <file src="content\config\system.serviceModel.client.Production.config.transform" target="content\config\system.serviceModel.client.Production.config.transform" />
        <file src="content\config\system.serviceModel.client.QA.config.transform" target="content\config\system.serviceModel.client.QA.config.transform" />
        <file src="content\Web.config.transform" target="content\Web.config.transform" />
        <file src="lib\net40\WCFServices.Proxy.dll" target="lib\net40\WCFServices.Proxy.dll" />
    </files>
</package>

1 个答案:

答案 0 :(得分:0)

如何安装/卸载配置文件?您可以从脚本中共享一些PowerShell片段(假设您在包中使用PowerShell install.ps1 / uninstall.ps1脚本)吗?

也许您可以强行删除文件:http://www.timvw.be/2011/10/18/force-the-removal-of-a-file-with-powershell/

此外,如果XDT成为NuGet的OSS以便从中受益,将来可能会改进此功能。