Ошибка публикации Orchard 1.7: задача MSBuild.Orchard.Tasks.XmlDelete не может быть загружена из сборки

У меня есть локальный сайт Orchard 1.7 cms, который я настроил и так далее. Теперь моя задача состоит в том, чтобы опубликовать мой сайт на моем хосте (arvixe.com) через Visual Studio Ultimate 2012 — с помощью опции публикации. Но публикация не удалась, и я получаю эту ошибку:

Error   1   The "MSBuild.Orchard.Tasks.XmlDelete" task could not be loaded from the assembly C:\Users\WilliamHolm\Documents\Visual Studio 2012\Projects\whj\src\Orchard.Web\..\Tools\MSBuild.Orchard.Tasks\bin\Release\MSBuild.Orchard.Tasks.dll. Could not load file or assembly 'file:///C:\Users\WilliamHolm\Documents\Visual Studio 2012\Projects\whj\src\Tools\MSBuild.Orchard.Tasks\bin\Release\MSBuild.Orchard.Tasks.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.   C:\Users\WilliamHolm\Documents\Visual Studio 2012\Projects\whj\src\Orchard.Web\Orchard.Web.csproj   247 5   Orchard.Web

глядя на источник, где ошибка находится около строки 247, в Orchard.Web.csproj, это выглядит так:

</Target>
  <Import Project="$(ProjectDir)..\..\lib\msbuild\MSBuild.Community.Tasks.Targets" />
  <UsingTask AssemblyFile="$(ProjectDir)..\Tools\MSBuild.Orchard.Tasks\bin\Release\MSBuild.Orchard.Tasks.dll" TaskName="MSBuild.Orchard.Tasks.XmlDelete" />
  <Target Name="ProcessConfigurationFiles" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
    <PropertyGroup>
      <PackageTmp>$(ProjectDir)obj\Release\Package\PackageTmp</PackageTmp>
    </PropertyGroup>
    <!-- extra processing of the staged config files -->
    <XmlUpdate XmlFileName="$(PackageTmp)\web.config" XPath="/configuration/system.web/compilation/@debug" Value="false" />
    <XmlDelete XmlFileName="$(PackageTmp)\web.config" XPath="/configuration/system.web/trust" />
    <XmlUpdate XmlFileName="$(PackageTmp)\web.config" XPath="/configuration/system.web/machineKey/@validationKey" Value="AutoGenerate" />
    <XmlUpdate XmlFileName="$(PackageTmp)\web.config" XPath="/configuration/system.web/machineKey/@decryptionKey" Value="AutoGenerate" />
    <XmlUpdate XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/appender/immediateFlush/@value" Value="false" />
    <XmlUpdate XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/logger/priority/@value" Value="ERROR" />
    <XmlUpdate XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/root/priority/@value" Value="ERROR" />
    <XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/appender[@name='debug-file']" />
    <XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/appender[@name='debugger']" />
    <XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/appender[@name='error-file']/filter" />
    <XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/logger[@name='Orchard.Localization']" />
    <XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/logger[@name='Orchard']" />
    <XmlDelete XmlFileName="$(PackageTmp)\Config\log4net.config" XPath="/log4net/root/appender-ref[@ref='debug-file']" />
    <!-- disable all file monitoring but ExtensionMonitoringCorrdinator to detect new modules/themes -->
    <XmlUpdate XmlFileName="$(PackageTmp)\Config\HostComponents.config" XPath="/HostComponents/Components/Component/Properties/Property[@Name='DisableMonitoring']/@Value" Value="true" />
  </Target>

Самое близкое, что я могу найти, это эта тема:

http://orchard.codeplex.com/workitem/19688

и я пробовал эти советы, но он продолжает терпеть неудачу.

У кого-нибудь есть решение для этого?

СПАСИБО заранее.

/Буду.


person William Holm Jacobsen    schedule 05.09.2013    source источник


Ответы (2)


Я нашел решение.

Пожалуйста, измените следующий путь на =>

<UsingTask AssemblyFile="C:\Users\Shaun\Documents\@GitHub\CertifiedOverheadCrane\orchard1x\src\Tools\MSBuild.Orchard.Tasks\bin\Release\MSBuild.Orchard.Tasks.dll"
           TaskName="MSBuild.Orchard.Tasks.XmlDelete" />

Оригинал:

<!--<UsingTask AssemblyFile="$(ProjectDir)\..\Tools\MSBuild.Orchard.Tasks\bin\Release\MSBuild.Orchard.Tasks.dll" 
         TaskName="MSBuild.Orchard.Tasks.XmlDelete" />-->

Не забудьте перезапустить VS.

person JVGAG    schedule 10.09.2013
comment
Спасибо за ответ, проверил, но ошибка та же. Но когда я смотрю в папку ..Tools\MSBuild.Orchard.Tasks\bin\Release\, папка пуста, так что неудивительно, что она не может ее найти. Значит, ваша папка Release тоже пуста? или я что-то упускаю? - person William Holm Jacobsen; 11.09.2013
comment
Не обращайте внимания на предыдущий комментарий, я не установил для конфигурации сборки значение Release, поэтому теперь у меня есть файлы в папке .Tools\MSBuild.Orchard.Tasks\bin\Release\ - person William Holm Jacobsen; 11.09.2013

Решение моей проблемы заключалось в том, что я построил проект только в конфигурации «Отладка», в то время как мой вариант публикации искал «Выпуск». Поэтому я только изменил его на «Выпуск» в «Конфигурациях решений» и нажал -> «Сборка / сборка решения». Это сработало!

/Буду.

person William Holm Jacobsen    schedule 11.09.2013