Ошибка при преобразовании web.config для разных сред

Я пытался развернуть свое приложение в разных средах, затем я начал следовать этому, как: Развертывание ASP.NET Web Приложение для хостинг-провайдера с использованием Visual Studio или Visual Web Developer: преобразование файла Web.Config — 3 из 12

было идеально, пока я не нажал Preview Transform, я получил эту ошибку:

Майкрософт Visual Studio

Не удалось загрузить файл или сборку «Microsoft.Web.XmlTransform, версия = 1.2.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a» или одну из ее зависимостей. Система не может найти указанный файл.

(Я создал только одно преобразование Web.DebugQA.config и, конечно же, стандартные, отладку и выпуск)

мой Web.DebugQA.config выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="MyDB" 
      connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <system.web>
  </system.web>
  <appSettings>
    <add key="EnvironmentName" value="QADev" xdt:Transform="SetAttributes(value)"
      xdt:Locator="Match(key)" />
  </appSettings>
</configuration>

но затем я устанавливаю этот плагин:

SlowCheetah — преобразования XML

и я решил свою ошибку преобразования предварительного просмотра, но затем, когда я пытался опубликовать с помощью преобразования QADev, я получил эту ошибку:

Неожиданный сбой задачи «Импортпараметровфайла».

System.IO.FileNotFoundException: не удалось загрузить файл или сборку «Microsoft.Web.XmlTransform, версия = 1.2.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a» или одну из ее зависимостей. Система не может найти указанный файл. Имя файла: «Microsoft.Web.XmlTransform, версия = 1.2.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a»
в Microsoft.Web.Publishing.Tasks.ImportParametersFile.Execute()
в Microsoft.Build.BackEnd .TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
в Microsoft.Build.BackEnd.TaskBuilder.‹ExecuteInstantiatedTask›d__20.MoveNext()

WRN: Ведение журнала привязки сборки отключено.
Чтобы включить ведение журнала ошибок привязки сборки, установите для параметра реестра [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) значение 1.
Примечание. Существует некоторое снижение производительности, связанное с ведением журнала ошибок привязки сборки.
Чтобы отключить эту функцию, удалите значение реестра [HKLM\Software\Microsoft\Fusion!EnableLog].

Я использую Visual Studio Pro 2012.


person ddieppa    schedule 08.02.2013    source источник


Ответы (5)


Я исправил это, исправив «Microsoft ASP.NET и веб-инструменты 2013.1 — Visual Studio 2012» из Панели управления -> Программы и компоненты.

Файл Microsoft.Web.XmlTransform.dll отсутствовал по пути C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web.

person Colin Banbury    schedule 22.05.2014
comment
Я столкнулся с этой же ошибкой, хотя я не использую плагин преобразования xml, такой как медленный гепард, поэтому это может быть по разным причинам, но это решило мою проблему без добавления новых ошибок/предупреждений. - person kcar; 29.05.2014
comment
Если у вас не установлен VS2012 — потому что вы сервер сборки, или у вас 2012 Express, или у вас 2010 и 2013, но ничего между ними (моя проблема), этот пакет не будет присутствовать и не будет установлен с нуля . - person Owen Blacker; 24.02.2015
comment
Также подтвердил, что это работает для меня. Это должно быть отмечено как правильный ответ. - person Maxime Rouiller; 27.02.2015
comment
Да, у меня это сработало, и я запустил визуальную студию под правами администратора. - person Jinesh Jain; 01.04.2015

У меня была аналогичная ошибка, хотя она была вызвана другими причинами.

Я решил эту проблему, скопировав следующую DLL с другого ПК с установленным VS2012: Microsoft.Web.XmlTransforms.dll

из: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web

надеюсь, это поможет

person Daniel Silva    schedule 08.05.2014
comment
У нас нет ПК с установленным VS2012 (у нас 2010 и 2013). Версия 2013 года кажется другой версией и PublicKeyToken. - person Owen Blacker; 24.02.2015

У меня была такая же проблема в VS2012, я не мог «Предварительно просмотреть преобразование» для преобразований PublishPackage, например. Web.Staging.config жалуется на Microsoft.Web.XmlTransform

Я заработал, добавив пакет https://nuget.org/packages/Microsoft.Web.Xdt в мой проект Mvc 4.5. Этот пакет все еще находится в предварительной версии.

PM> Install-Package Microsoft.Web.Xdt -Pre

Этот пакет содержит Microsoft.Web.XmlTransform.dll.

Я все еще получаю сообщение об ошибке во время сборки с сообщением «Не удалось загрузить файл или сборку Microsoft.Web.XmlTransform». Проект Mvc все еще построен нормально.

Я попытался добавить Microsoft.Web.XmlTransform.dll в Gac с помощью gacutil, но это не решило проблему.

Однако я использую сервер сборки Team Foundation Service, и он работает и создает правильный Web.config после применения Web.Release.config, а затем Web.Staging.config.

person Adam    schedule 15.02.2013

Я пробовал ниже две вещи, но это не сработало для меня.

1) копирование библиотеки DLL Microsoft.Web.XmlTransforms.dll в папку C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web

2) И ремонт "Microsoft ASP.NET и веб-инструменты 2013.1 - Visual Studio 2012"

Затем я удалил инструмент Microsoft Azure версии 2.6 из панели управления -> Программы и компоненты. И тогда я смогу опубликовать свой сайт.

person Sushil Jadhav    schedule 26.11.2015

Это могло быть исправлено в Visual Studio 2012 Update 2 (и Visual Studio 2013).

Web.config "Предварительный просмотр преобразования" выдает ошибку

...

Опубликовано Microsoft 01.03.2013 в 14:46

Спасибо, что сообщили о проблеме! Он будет исправлен в Visual Studio 2012 Update 2. Установите его, когда он станет доступен.

person weir    schedule 10.07.2014
comment
Это не поможет, если у вас не установлена ​​Visual Studio 2012 — либо потому, что у вас установлен VS Express, либо потому, что вы находитесь на сервере сборки. - person Owen Blacker; 24.02.2015