Silverlight не может разрешить ссылки при переключении с Debug на Release - PullRequest
5 голосов
/ 27 октября 2010

Я использую: Silverlight версии 4.0, 100% решение F #.У меня возникла проблема при переключении целевой конфигурации с debug на release .Все отлично компилируется в режиме отладки, затем в релизе я получаю следующее:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9):предупреждение MSB3245: не удалось разрешить эту ссылку.Не удалось найти сборку "System.ComponentModel.DataAnnotations".Убедитесь, что сборка существует на диске.Если эта ссылка требуется для вашего кода, вы можете получить ошибки компиляции.

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): предупреждение MSB3245:Не удалось разрешить эту ссылку.Не удалось найти сборку "System.Windows.Controls.Data.Input".Убедитесь, что сборка существует на диске.Если эта ссылка требуется вашим кодом, вы можете получить ошибки компиляции.

Группа элементов в файле проекта выглядит так:

  <ItemGroup>
    <Reference Include="FSharp.PowerPack">
      <HintPath>C:\Program Files\FSharpPowerPack-2.0.0.0\Silverlight\v3.0\FSharp.PowerPack.dll</HintPath>
    </Reference>
    <Reference Include="mscorlib" />
    <Reference Include="FSharp.Core">
      <HintPath>$(ProgramFiles)\Microsoft F#\Silverlight\Libraries\Client\$(SilverlightVersion)\FSharp.Core.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.ComponentModel.DataAnnotations" />
    <Reference Include="System.Core" />
    <Reference Include="System.Net" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Windows" />
    <Reference Include="System.Windows.Browser" />
    <Reference Include="System.Windows.Controls">
      <HintPath>bin\Debug\System.Windows.Controls.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Controls.Data">
      <HintPath>bin\Debug\System.Windows.Controls.Data.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Controls.Data.Input" />
    <Reference Include="System.Windows.Controls.DataVisualization.Toolkit">
      <HintPath>bin\Debug\System.Windows.Controls.DataVisualization.Toolkit.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Controls.Input">
      <HintPath>c:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Client\System.Windows.Controls.Input.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Controls.Layout.Toolkit">
      <HintPath>bin\Debug\System.Windows.Controls.Layout.Toolkit.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Controls.Navigation">
      <HintPath>bin\Debug\System.Windows.Controls.Navigation.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Controls.Toolkit">
      <HintPath>bin\Debug\System.Windows.Controls.Toolkit.dll</HintPath>
    </Reference>
    <Reference Include="System.Windows.Data">
      <HintPath>bin\Debug\System.Windows.Data.dll</HintPath>
    </Reference>
    <Reference Include="System.Xml" />
  </ItemGroup>

Очевидно, что некоторые элементы имеют HintPaths, в то время как другиенет, и хотя у некоторых есть подсказки, кажется, что есть абсолютные и относительные пути ...

Кто-нибудь может мне помочь?Заранее спасибо.


ОК, поэтому я удалил ссылки, а затем прочитал их, и они вошли в файл проекта в формате:

c: \ Program Files \Microsoft SDK \ Silverlight \ v4.0 \ Libraries \ Client \ System.ComponentModel.DataAnnotations.dll

для обеих ссылок.Все компилируется - в обеих версиях.Любой намек на HintPaths?Как они используются и как и когда они генерируются?И почему, когда я пытался изменить proj-файл вручную, это, казалось, не имело значения (все еще не компилировалось, хотя VS сказал мне, что оно перезагрузилось)?

Thx

Ответы [ 2 ]

1 голос
/ 27 октября 2010

К вашему сведению, в поставляемых целях Microsoft.FSharp.target есть ошибка, которая может с этим взаимодействовать.Вы можете добавить эту строку

    <FrameworkRegistryBase Condition="'$(TargetFrameworkIdentifier)'=='Silverlight'">Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier)</FrameworkRegistryBase>

внутри <PropertyGroup> (чуть ниже элемента <Tailcalls> - хорошее место) внутри Microsoft.FSharp.targets, чтобы исправить это.Я не знаю, относится ли это к вашей проблеме (звучит так, как будто это не так), но просто хедз-ап на случай.

(Факт, что вы получаете HintPath (даже если вы это делаете)все правильно) также может быть результатом ошибки в системе проектов F #.)

Одной из возможных стратегий, если вам нужно обойти это, является проверка копии библиотек DLL, на которые нужно ссылаться в фиксированном месте (относительно).для ваших проектов) под управлением исходного кода, а затем ссылаться на эти библиотеки DLL через «фиксированные» относительные пути.

1 голос
/ 27 октября 2010

Звучит так, как будто вы перенесли проект с другого компьютера, и на вашем компьютере не установлены Silverlight Toolkit и WCF RIA Services .

Очистите свое решение, закройте Visual Studio и установите то, чего не хватает.

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