Инструмент ResxManager не загружается при открытии проекта [дубликат]

Вот несколько простых, способов сохранения порядка для разных списков строк.

Код

Необычный подход с использованием pathlib :

import pathlib


temp1 = ["One", "Two", "Three", "Four"]
temp2 = ["One", "Two"]

p = pathlib.Path(*temp1)
r = p.relative_to(*temp2)
list(r.parts)
# ['Three', 'Four']

Это предполагает, что оба списка содержат строки с эквивалентными началами. Подробнее см. docs . Обратите внимание, что это не особенно быстро по сравнению с заданными операциями.


Прямая реализация с использованием itertools.zip_longest :

import itertools as it


[x for x, y in it.zip_longest(temp1, temp2) if x != y]
# ['Three', 'Three', 'Four']

16
задан Tilak 30 September 2013 в 01:43
поделиться

6 ответов

Просто предположите, что вы не ссылаетесь на библиотеки в проекте MAIN.

Это случилось со мной несколько раз.

44
ответ дан Tilak 22 August 2018 в 13:34
поделиться
  • 1
    Гах. Я ненавижу это, когда сборка А должна добавить (по-видимому, случайные ссылки, чтобы потреблять сборку В. Я хочу, чтобы инструменты могли понять это сами по себе. – dlf 25 September 2015 в 14:03
  • 2
    Просто наткнулся на это ... но это абсолютно помогло. Я никогда бы не подумал об этом. – Dev Leader 18 November 2015 в 20:15

Ответ Тилака очень помог мне, но мне также нужно было назвать хотя бы один элемент из сборника «i» в коде XAML. Когда элемент назван, Visual Studio правильно подключает сборку.

Измените

<i:InvokeCommandAction Command="{Binding MyCommand}"/>

на

<i:InvokeCommandAction Command="{Binding MyCommand}" x:Name="interactivityFix" />

Это нужно сделать только для одного элемента во всем файле XAML.

9
ответ дан Amadeusz Wieczorek 22 August 2018 в 13:34
поделиться
  • 1
    Мое окно вызывается из DLL внутри приложения, отличного от WPF. Спасибо, спасибо! – Kolky 16 May 2016 в 12:14
  • 2
    Все, что мне нужно было сделать, это просто добавить имя для этого ответа. Определенно внушает мне уверенность в отношении инструментария ... – curob 2 February 2017 в 23:46
  • 3
    Я в том же контексте, что и @ Kolky, и я бы не поверила, что это будет трюк. И все же ... – Didier Ghys 12 April 2018 в 09:27

Вы можете сканировать каждый из ваших проектов для версии System.Windows.Interactivity, например. 4.0.0.0 или 4.5.0.0. Кроме того, есть вероятность, что одна из сторонних dll, которые могут ссылаться, зависит от System.Windows.Interactivity. Поэтому убедитесь, что вы выровняете версию в своем проекте. Это должно решить вашу проблему.

0
ответ дан Chaitanya Kadamati 22 August 2018 в 13:34
поделиться
  • 1
    Вместо «Это должно исправить вашу проблему», попробуйте сказать что-то менее сильное. Если это не исправить (и поскольку пост 3 года, вероятно, у него уже есть исправление), тогда ваш ответ будет значительно сокращен. – David 18 November 2016 в 10:52

Иногда, когда вы добавляете новую библиотеку, вводите конфликтовую версию System.Windows.Interactivity.dll.

Это предотвращает работу проекта.

Чтобы исправить, добавьте привязку к сборке Переадресуйте, отредактировав свой app.config, чтобы выглядеть примерно так:

<?xml version="1.0"?>
<configuration>
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Windows.Interactivity"
                        publicKeyToken="31bf3856ad364e35"
                        culture="neutral"/>
      <bindingRedirect oldVersion="4.0.0.0"
                       newVersion="4.5.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
<appSettings>
  <add key="TestKey" value="true"/>
</appSettings>

Не беспокойтесь об изменении PublicKeyToken, который является постоянным во всех версиях, так как это зависит на имя .dll, а не на версию.

Убедитесь, что вы сопоставляете newVersion в своем appConfig с фактической версией, на которую вы указываете:

7
ответ дан Contango 22 August 2018 в 13:34
поделиться
  • 1
    Спасибо, это правильный ответ в моем случае – Ateik 14 July 2016 в 06:42

Вы можете найти эту DLL в Blend SDK.

Ниже приведена ссылка на нее:

http://www.microsoft.com/en-us/download /details.aspx?id=10801

3
ответ дан kmatyaszek 22 August 2018 в 13:34
поделиться

Вы можете проверить свойства проекта -> Build -> Output Path.

Переход к выходному директории пути с помощью проводника Windows. Затем посмотрите, существует ли в этой папке «System.Windows.Interactivity.dll». Это может быть связано с тем, что флаг CopyLocal является ложным или существует причина. DLL-файл не генерируется в папке выходного пути.

0
ответ дан kyorilys 22 August 2018 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: