2013-09-16 2 views
8

Я разрабатываю приложение, которое должно быть развернуто с помощью ClickOnce. После перехода с .NET 4.5 на .NET 4.0 и замены исправления неправильных ссылок теперь у меня проблема с пакетом развертывания. Некоторые файлы, а самое главное System.Net.Http.dll не используются с приложением. Я сделал несколько проверок, но не могу понять, почему именно это происходит. Мое подозрение в том, что пакет создается с ожиданием того, что эта сборка уже существует на целевой машине. Это было бы разумно, если целевой средой был .NET 4.5, но не сейчас, это .NET 4. Странно, System.Net.Http.Extensions.dll будет развернуто правильно.Развертывание System.Net.Http.dll с помощью ClickOnce

Настройки и номера версий одинаковы для обоих файлов: enter image description here

Ссылаются на одном пакете:

<Reference Include="System.Net.Http, Version=2.2.13.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
    <HintPath>..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.dll</HintPath> 
    <SpecificVersion>False</SpecificVersion> 
</Reference> 
<Reference Include="System.Net.Http.Extensions, Version=2.2.13.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.Extensions.dll</HintPath> 
</Reference> 

Целевая платформа .NET 4 и условием развертывания также .NET 4 и обновление KB. enter image description here

Файл даже не отображается в диалоговом окне Application Files: enter image description here

Есть идеи? Я могу просто попытаться развернуть сборку как файл содержимого, если все остальное не удастся. Удаление и повторное добавление ссылки не помогло.

ответ

14

Добавлено сообщение от Microsoft на Visual Studio support thread говорит, что:

Это будет исправлено в следующем обновлении для Visual Studio 2013. До тех пор вам придется использовать обходной путь добавления сборок в качестве ссылки.

так, я нашел следующий resolution (issue 8):

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

  1. Щелкните правой кнопкой мыши на проекте и выберите Добавить существующий элемент
  2. Перейдите к HttpClient net40 пакет папку
  3. В текстовом поле Имя файла введите .
  4. Holding CTRL, выберите System.Net.Http.dll и System.Net.Http.Primitives.dll
  5. Нажмите стрелку вниз рядом с кнопкой Добавить и выберите Добавить как ссылку
  6. В обозревателе решений, удерживая CTRL выберите System.Net.Http.dll и System.Net.Http.WebRequest.dll
  7. правой кнопкой мыши на выбор, выберите Свойства и изменить Копировать в выходной каталог для копирования всегда
  8. REPUBLISH

В моем случае достаточно добавить одна библиотека System.Net.Http.

+1

Я принимаю это из-за ссылки на нишу поддержки, хотя это не решило проблему для меня. Но, по крайней мере, это позволяет мне знать, что MS знает о проблеме. Я решил проблему для себя, создав сценарий powershell для создания развертывания, используя mage.exe. К сожалению, это не так просто, как должно быть. –

+0

Могу ли я предположить, что System.Net.Http.Extensions.dll и System.Net.Http.Primitives.dll будут в GAC, если мои пользователи установили .NET 4.5.1? Или я должен распространять эти файлы с помощью моего установщика? – stuzor

+7

Это три года спустя и в .Net 4.6.2 это все еще не исправлено. –

Смежные вопросы