Ошибка компиляции веб-сайта ASP.NET в Visual Studio после касания файла - PullRequest
0 голосов
/ 01 июня 2011

Веб-сайт c # в Visual Studio 2010 не компилируется и выдает ошибку «Метод не найден», показывая два отсутствующих метода. Однако методы существуют (в классе в App_Code), и «Перейти к объявлению» в intellisense находит их немедленно.

Затем, если я изменяю файл класса, содержащий методы (например, просто добавляя бессмысленный пробел), он компилируется.

Это поведение не воспроизводимо на 100%, но происходит на разных рабочих станциях, время от времени, всегда с теми же двумя методами. Я переместил их в другой класс - без изменений. В них нет ничего особенного, поэтому я не вижу смысла показывать здесь исходный код (или есть?).

Вопрос: кто-нибудь когда-либо имел подобное явление и может пролить некоторый общий свет? Обходной путь достаточно прост, но он раздражает и всегда смущает новых членов команды.

Обновление: Один из методов начинается следующим образом (в файле с именем Statistics.cs, без пространства имен):

public class Statistics
{
    public static void GetAllStatistics()
    {
        //Initialize the xls file:
        const string xlsFileTitle = "All available statistics";
        //Remove space and invalid chars from file name
        string pattern = xlsFileTitle.Replace(" ", string.Empty);
        foreach (char invalidChar in Path.GetInvalidFileNameChars())
        {
            pattern.Replace(invalidChar.ToString(), String.Empty);
        }

        //Initialize excel file with a timestamp
        long timeStamp = DateTime.Now.Ticks;
        string fileName = string.Format("{0}_{1}.xls", pattern, timeStamp);
        string filePath = HttpContext.Current.Server.MapPath("XlsFiles");

Метод вызывающей стороны выглядит следующим образом:

public partial class Download : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        bool isDownload = false;
        if (this.Page.Request.QueryString["title"] != null && this.Page.Request.QueryString["type"] != null)
        {
            string pattern = this.Page.Request.QueryString["title"];

            switch (this.Page.Request.QueryString["type"])
            {
                case "xlstotal":
                    //All stats at once
                    Statistics.GetAllStatistics();   // HERE IT IS
                    isDownload = true;
                    this.HandleFileDownload(pattern, "XlsFiles", "application/vnd.ms-excel-");
                    break;

Ничего особенного, насколько я могу судить. И все же ...

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