c # проблема встраивания ресурсов в Windows XP (NullReferenceException) - PullRequest
1 голос
/ 10 августа 2010

Я использую ресурсы для встраивания в мое приложение c #

string sPath = System.IO.Path.GetTempFileName();
System.IO.File.WriteAllBytes(sPath, Properties.Resources.test)
workbook = app.Workbooks.Open(sPath,missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);

До сегодняшнего дня все работало нормально. У меня возникло плохое исключение:

System.NullReferenceException: Objectссылка не установлена ​​на экземпляр объекта в ......

Это только на 2 установках Windows XP Proffesional Edition, как учетных записей root, так и учетных записей пользователей (учетная запись пользователя там очень ограничена, посколькуполитики администратора).

До сегодняшнего дня она работала на нескольких установках XP и Vista, без каких-либо проблем.

В чем может быть причина этой проблемы?

Спасибо залюбые идеи.

1 Ответ

1 голос
/ 11 августа 2010

I думаю, это будет проблема со ссылками из-за проблемы с версией, как вы заявили.Поскольку вы добавили ссылку на библиотеку объектов Microsoft Excel 11.0 (2003 Excel), я не думаю, что вы можете создать приложение Microsoft Excel 9.0 (Excel 2000).Я никогда не пробовал работать с разными версиями, но, может быть, вы можете добавить обе ссылки и открыть их в попытке и поймать, когда одна из них не удалась.

псевдокод

try{
workbook = app.Workbooks.Open(sPath,missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
}
catch ( NullReferenceException e )
{
      // This means the user is in Excel 9.0 (Excel 2000)
      // Open workbook as Excel 2000
}

Надеюсь, это поможет1008 *

...