Сбой сборки проекта Silverlight в VS2010, когда проект находится на подключенном сетевом диске - PullRequest
1 голос
/ 15 мая 2011

Я только учусь Blend / Silverlight / VS2010 / .net / и т.д.У меня есть простой проект, который находится на сетевом диске.Когда я говорю VS2010 о перестройке проекта, я получаю следующее сообщение об ошибке:

------ Rebuild All started: Project: MySilverlightApplication, Configuration: Debug Any CPU ------
  MySilverlightApplication -> H:\PRJ\VisualStudio\ExpressionBlend\Unleashed\MySilverLightApplication\MySilverlightApplication\Bin\Debug\MySilverlightApplication.dll

C:\Program Files\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(214,9):
 error : Could not load the assembly 
         file:///H:\PRJ\VisualStudio\ExpressionBlend\Unleashed\MySilverLightApplication\MySilverlightApplication\obj\Debug\MySilverlightApplication.dll.
         This assembly may have been downloaded from the Web.  If an assembly has been downloaded from the Web,
         it is flagged by Windows as being a Web file, even if it resides on the local computer.
         This may prevent it from being used in your project. You can change this designation by changing the file properties.
         Only unblock assemblies that you trust. See http://go.microsoft.com/fwlink/?LinkId=179545 for more information.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Проект не был загружен из Интернета (я создал его с помощью Blend.) После некоторого поиска я догадался о проблемеможет быть связано с настройками безопасности .net.Я выполнил следующую команду:

C:\Program Files\Microsoft Visual Studio 10.0\VC>caspol -m -ag 1.3 -url "file://\\p4dc\h$\*" FullTrust

в надежде, что это решит проблему.p4dc - это имя сервера, h $ - административный ресурс для диска h: на сервере, который, в свою очередь, отображается на букву диска «H» на локальном компьютере (\\ p4dc \ h $ отображается на Hв локальной машине).

Это не решило проблему.Я не знаю, правильна ли моя команда caspol (я не планировал изучать caspol на лету), это казалось разумной попыткой.Проблема исчезает, когда я делаю копию всего проекта на локальном диске C, но это «решение» довольно нежелательно.

На данный момент, я действительно не знаю, что еще пытаться решитьпроблема без перемещения проекта на локальный диск.

Любая помощь, ведущая к решению, очень ценится.

Джон.

Ответы [ 2 ]

6 голосов
/ 17 мая 2011

Сообщение об ошибке, отображаемое VS2010, заставит любого поверить в то, что проблема связана с доверием и безопасностью, но НО никакое разрешение полного доверия на сетевом диске не решит проблему.

То, что привело к решению, было первым, чтобы перенести проект на VS2008, чтобы выяснить, столкнется ли он с той же проблемой. VS2008 был совершенно счастлив запустить проект без жалоб.

Затем я преобразовал проект VS2008 (который работал) в VS2010. VS2010 отказался строить проект, но на этот раз сообщение об ошибке было другим, ссылаясь на «удаленные сборки» и ссылку на MSDN, что привело к решению.

Реальная проблема заключается в том, что VS2010 считает сборку на сетевом диске «удаленной сборкой» (так же, как если бы сборка загружалась с веб-сайта.) Caspol не смог решить эту проблему (кажется, что должен но, возможно, это моя вина, я не очень хорошо разбираюсь в использовании Каспола).

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

http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx

после следования инструкциям в этой ссылке для редактирования "machine.config" я изменил <runtime/> на:

<runtime>
  <loadFromRemoteSources enabled="true"/>
</runtime>

проект успешно построен и запущен без проблем.

Спасибо Алисон и CodeNaked за их усилия, чтобы помочь,

Джон.

PS: было бы неплохо, если бы на VS2010 изначально отображалось «лучшее» сообщение об ошибке. Вместо этого мне пришлось перенести неработающий проект VS2010 на VS2008, где он работал, а тот - на VS2010, где я получил лучшее сообщение об ошибке, которое привело к решению.

1 голос
/ 16 мая 2011
...