0

我正在创建一个 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>
4

1 回答 1

0

你如何安装/卸载配置文件?您能否分享一些脚本中的 PowerShell 片段(假设您在包中使用 PowerShell install.ps1/uninstall.ps1 脚本)?

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

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

于 2013-03-13T22:01:48.040 回答