NuGet web.config.transform问题

时间:2011-04-23 19:14:34

标签: asp.net-mvc transform nuget

我正在创建一个需要修改目标应用程序的web.config文件的自定义程序包,但我的配置更改在安装后从未出现在目标应用程序中。

这是我的web.config.transform文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="AppInstalled" value="false"/>
  </appSettings>
</configuration>

appSettings部分中的此键永远不会应用。

这是我的nuspec文件:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://mvcapp.codeplex.com/license</licenseUrl>
    <projectUrl>http://mvcapp.codeplex.com/</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <tags>mvc app</tags>
  </metadata>
  <files>
    <file src="\bin\Release\MvcApp.MVC3.dll" target="lib" />
    <file src="NuGet\Content\ajax-loader.gif" target="Content" />
    <file src="NuGet\Content\web.config.transform" target="web.config" />
    <file src="NuGet\Views\Install\Index.aspx" target="Views\Install\Index.aspx" />
  </files>
</package>

这是我从VS 2010命令提示符运行打包项目的命令:

nuget pack mvcapp.csproj

任何想法?

感谢。

2 个答案:

答案 0 :(得分:21)

web.config.transform文件需要进入内容文件夹:

<file src="NuGet\Content\web.config.transform" target="content" />

答案 1 :(得分:0)

我知道这是一个老问题,但在搜索为什么web.config.transform无法申请时,它是google搜索结果中的一个,所以我希望我不会出局适用于此处的地方。

TLDR; - 在迭代测试之间清除目标项目包目录中的nuget文件(或者我假设版本号)。

完整版; 我也有这个问题。我可以看到使用NuGet Package explorer我的项目被正确打包。我在&#34;内容&#34;下面有我的web.config.transform,在我们各自的lib文件夹下有我的libs。这些dll已经部署,web.config.transform没有得到应用。

我正在测试的目标项目受源代码控制,所以我添加了nuget包,看看发生了什么,然后回滚整个目录。但是我没有注意到packages文件夹不受源代码管理,所以我初始软件包安装的文件夹就在那里。我也没有在包nuspec中提升版本号,因为我认为不得不这样做。

最终我不得不从项目的包目录中清除我的nuget包的目录,强制下一次nuget安装尝试重新创建它们。