"Недопустимый токен"," в классе, структуре или интерфейсе " после проверки
у меня возникли проблемы с компиляцией веб-приложения EPiServer после проверки его из Subversion.
Я получаю эту ошибку
сообщение об ошибке компилятора: CS1519: недопустимый токен", " в объявлении класса, структуры или члена интерфейса
Ошибка Источник:
Line 116: }
Line 117:
Line 118: public virtual EPiServer.Personalization.SubscriptionInfo, EPiServerSubscription Info {
Line 119: get {
Line 120: return ((EPiServer.Personalization.SubscriptionInfo, EPiServer)this.GetPropertyValue("SubscriptionInfo")));
Исходный Файл:
c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesroot6e6fc5c11597App_Code.9_fan95p.0.cs Line: 118
как вы можете видеть из ошибки, этот файл находится в " временном ASP.NET файлы" папка и является частью процесса сборки. Это не мой исходный код.
Я видел этот вопрос что предполагает, что веб-конфигурация содержит ссылки на тип
указано в " пространстве имен.имя класса, Формат имя_сборки".
Итак, я вошел в свою паутину.config и изменил раздел
...
<profile ...>
<properties>
...
<add name="SubscriptionInfo"
type="EPiServer.Personalization.SubscriptionInfo, EPiServer"
provider="SqlProfile" />
...
to
...
<profile ...>
<properties>
...
<add name="SubscriptionInfo"
type="EPiServer.Personalization.SubscriptionInfo"
provider="SqlProfile" />
...
это удалило немедленную ошибку выше, но затем я получил ту же ошибку для разный тип. Поэтому я прошел через все типы, которые были в "пространство имен.TypeName, AssemblyName " отформатировать и удалить ", AssemblyName". Это остановило все ошибки CS1519, но затем я начинаю получать CS0234:
сообщение об ошибке компилятора: CS0234: тип или имя пространства имен "Персонализация" не существует в пространство имен " EPiServer "(вы отсутствует ссылка на сборку?)
Ошибка Источник:
Линия 116: }
Строке 117:
Строка 118: общедоступный виртуальный сервер EPiServer.Персонализация.SubscriptionInfo SubscriptionInfo {
Строка 119: get {
Строка 120: возвращение ((EPiServer.Персонализация.SubscriptionInfo) (this.GetPropertyValue ("SubscriptionInfo")));
Я использую VisualStudio 2008, Episerver 5.2.372.7, VisualSVN 1.7.2 и Debian box в качестве репозитория Subversion под управлением svn версии 1.4.2 (r22196).
в приложение построено нормально, затем я проверил его в репо. Проверил его в другом месте на том же компьютере и ударил F5, и эти ошибки начинают появляться.
есть ли у кого-нибудь предложения.
обновление: Спасибо за ваши ответы devio, Zhaph.
я добавил в свою сеть следующее.config в :
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="EPiServer, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.BaseLibrary, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Configuration, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Enterprise, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Implementation, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Lucene, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Scheduler, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Web.WebControls, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.WorkflowFoundation, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.Wsrp, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
<add assembly="EPiServer.XForms, Version=5.2.375.7, Culture=neutral, PublicKeyToken=8fe83dea738b45b7"/>
</assemblies>
нет ранее.
проект все те DLL в своих ссылках. Все библиотеки EPiServer находятся в GAC. Новая (нерабочая) проверка выполняется на том же компьютере, на котором был создан исходный проект.
теперь я получаю:
сообщение об ошибке синтаксического анализатора: не удалось загрузить файл или сборка 'EPiServer.Планировщик или одна из его зависимостей. Система не удается найти указанный файл.
(C:ProjectswebProvidentPPC2ProvidentPPCweb.строке config 301)
Ошибка Источник:
Line 299: <add name="InitializationModule" type="EPiServer.Web.InitializationModule" />
Line 300: <!--<add name="BasicAuthentication" type="EPiServer.Security.BasicAuthentication, EPiServer" />-->
Line 301: <add name="Initializer" type="EPiServer.Scheduler.Initializer, EPiServer.Scheduler" />
Line 302: <add name="WorkflowRuntime" type="EPiServer.WorkflowFoundation.WorkflowSystem" />
Line 303: <add name="UrlRewriteModule" type="EPiServer.Web.UrlRewriteModule" />
Исходный Файл:
C:ProjectswebProvidentPPC2ProvidentPPCweb.config
Line: 301
как я говорю EPiServer.Планировщик находится в моем GAC и добавлен в проект в качестве ссылки. Любые другие идеи будут оценены по достоинству.
8 ответов
Я столкнулся с этой проблемой, поскольку я реструктурировал ссылки dll в проекте.
я переместил внешние/третьи части DLL из папки bin в папку библиотеки за пределами корня веб-проекта.
моя проблема заключалась в том, что некоторые ссылки dll не имели локального набора копирования true, поэтому они никогда не копировались в папку bin при сборке.
прошло некоторое время с тех пор, как я спросил Это, и я продолжаю смотреть, думая, что мне нужно вспомнить, в чем проблема, и опубликовать ответ. Думаю, это все.
оказалось, что возникла проблема с поиском приложений DLL, установленных EPiServer. Я не уверен точно, и я обновлю этот пост, как только у меня будет возможность попробовать его на чистой машине, я все еще в середине проекта, поэтому это не очень хорошее время, чтобы валять дурака.
то, как я это исправил, было получить Dll из c:\Program файлы\EPiServer\CMS\VERSION\bin и поместите их в папку bin для приложения.
Как только я получу шанс сделать чистую установку где-нибудь, я увижу, если это повлияет на проект (в чем я сомневаюсь) или, что более вероятно, установка на моем компьютере, который сломан.
вы пытались правильно ссылаться на сборку EPiServer?
Я предполагаю, что он отображает ok в узле ссылок на проект в обозревателе решений, и на нем нет желтого наложения восклицания?
возможно, вы могли бы ссылаться на него в интернете.раздел компиляции конфигурации также:
<compilation debug="false">
<assemblies>
[...]
<add assembly="Episerver, Version=5.2.372.7"/>
</assemblies>
</compilation>
вам может не понадобиться номер версии, или вам может потребоваться добавить номер версии и тип культуры - должно быть несколько других сборок ссылка там уже для справки.
вы также можете попробовать:
<add assembly="EPiServer" />
и другие вариации.
звучит как проблема загрузки сборки:
убедитесь, что библиотека DLL EPiServer доступна в Вашем новом местоположении - она установлена в глобальный кэш сборок ваших компьютеров или является локальной ссылкой на папку /bin? Является ли dll в папке bin? Входит ли dll в систему управления версиями?
Я столкнулся с этим несколько раз и сделал это для меня, когда я вручную скопировал EPiServer сборки в папку bin. Это работает, но это не очень элегантно. Решение Zhaph с тегом assemblies выглядит намного лучше, я попробую в следующий раз.
У меня только что была аналогичная проблема сегодня днем. Проблема заключалась в том, что библиотеки EpiServer не присутствовали в каталоге bin веб-сайта, поэтому я получил сбои привязки.
проект был создан одним из моих коллег, и соответствующие библиотеки EpiServer были добавлены в качестве элементов решения в папку lib и ссылались оттуда. Однако, поскольку он изначально создал его из шаблона проекта EpiServer, библиотеки также были автоматически добавлены в папку bin. Когда он обновил ссылки, чтобы указать на папку lib, скопировать local defaulted в false. Это все еще работало на его машине из-за оригинальных копий, помещенных в папку bin шаблоном. Обновление их до CopyLocal = True исправило проблему.
У меня была такая же проблема, снова с сайтом EPiServer. Это было потому, что я ссылался на библиотеки EPiServer, но у них не было свойства "копировать в локальный", установленного в true для всех ссылок, и поэтому они не все помещались в каталог bin.
удалить все из папки BIN и скопировать все файлы из [сборок] в папку BIN Исправлена проблема для меня.
Khizer Жалал
Я думаю, что исходное сообщение об ошибке означало, что у вас было искаженное выражение C# в
return ((EPiServer.Personalization.SubscriptionInfo, EPiServer)...
ничего общего с файлом config.
Вероятно, вы набрали "," вместо "."? (Как компилятор читает это, вы предоставляете 2 типа в гипсе)
вернуть web.настройте его исходную версию и исправьте опечатку, которая должна работать.
обновление после комментария Грега:
Я не понимаю разделе config вы выложили были частью Конфигурации EPIServer. Вы были правы, когда удалили имена сборок.
однако, я думаю, вам нужно ссылаться на EPiServer из веб-приложения (добавить ссылку...). Я думаю, что я заметил это в своих проектах тоже: если вы проверяете ASP.Net app в новое место, вам нужно добавить все ссылки снова.