我正在创建一个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>
答案 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以便从中受益,将来可能会改进此功能。