nuget config转换文件的问题
问题描述:
我正在创建nuget软件包,除了其他文件还包含配置文件,如:f1.config,f2.config等。这些配置文件反过来在web.config文件中引用。nuget 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>
答
你如何安装/卸载配置文件?你能分享你脚本中的一些PowerShell代码片段(假设你在你的包中使用了PowerShell install.ps1/uninstall.ps1脚本)吗?
也许你可以强制删除文件:http://www.timvw.be/2011/10/18/force-the-removal-of-a-file-with-powershell/
而且,很可能这个功能将在未来得到改善,如果当XDT成为OSS对的NuGet从中受益。
将配置文件安装为NuGet软件包安装的一部分。我编辑了问题以包含NuGet规范文件。我根本没有使用install.ps1/uninstall.ps1。 – UncleZen 2013-03-14 12:48:18
在卸载过程中,您是否在日志(Visual Studio输出窗口)中找到任何内容?在卸载过程中,NuGet跳过安装后修改的文件。 – 2013-03-14 14:36:51
仅两条消息:成功从TestMvcApp中删除'WCFServicesProxyPackage 1.0.3'并成功卸载'WCFServicesProxyPackage 1.0.3'。 软件包安装之前不存在的* .config文件保留在项目中,而那些存在的文件的内容会在安装之前恢复为内容。我希望说明是有道理的。谢谢泽维尔。 – UncleZen 2013-03-14 17:55:54