"Недопустимый токен"," в классе, структуре или интерфейсе " после проверки

у меня возникли проблемы с компиляцией веб-приложения 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 в новое место, вам нужно добавить все ссылки снова.