NuGet web.config.transform проблема - PullRequest
       5

NuGet web.config.transform проблема

9 голосов
/ 23 апреля 2011

Я создаю пользовательский пакет, который должен изменить файл 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 ]

21 голосов
/ 22 мая 2011

Файл web.config.transform должен перейти в папку содержимого:

<file src="NuGet\Content\web.config.transform" target="content" />
0 голосов
/ 07 августа 2014

Я знаю, что это старый вопрос, но это один из лучших результатов поиска в Google при поиске причин, по которым web.config.transform не будет применяться, поэтому я надеюсь, что я не уместен, применяя это здесь.

TLDR; - очистите ваши файлы nuget из каталога пакетов целевого проекта (или я предполагаю, что номер версии) между итерациями тестирования.

Полная версия; У меня тоже была эта проблема. С помощью обозревателя пакетов NuGet я увидел, что мой проект был упакован соответствующим образом. У меня был мой web.config.transform в разделе «содержимое», а мои библиотеки в соответствующих папках lib. DLL были развернуты, web.config.transform не был применен.

Проект назначения, с которым я тестировал, находился под контролем исходного кода, поэтому я добавил пакет nuget, посмотрел, что произошло, а затем откатил весь каталог. Однако я не заметил, что папка пакетов не была под контролем исходного кода, поэтому там были папки из моей первоначальной установки пакета. Я также не поднял номер версии в пакете nuspec, потому что не думал, что должен был.

В конечном итоге мне пришлось очистить каталог моего пакета nuget от каталога пакетов проекта, что вынудило их при следующей попытке установить их заново.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...