Получение пути к файлу в ASP.NET и XDocument.Load

У меня есть статический класс в папке вне корня в моем решении. В папке этого статического класса есть подпапка, содержащая файлы XML. Итак, у меня есть эти файлы:

/PartialViews/Header/MyStaticClass.cs
/PartialViews/Header/Config/en-US.xml
/PartialViews/Header/Config/jp-JP.xml
...

У меня проблемы с использованием XDocument.Load () с этими XML-файлами. В частности, я пытаюсь загрузить файлы XML из статического конструктора MyStaticClass .

XDocument.Load () , однако, не может найти файлы. Я пробовал все это, но ничего не получилось:

static MyStaticClass()
{
    XDocument doc;

    // These all throw exceptions relating to directory not found
    doc = XDocument.Load("/Config/en-US.xml");
    doc = XDocument.Load(@"\Config\en-US.xml");
    doc = XDocument.Load("/PartialViews/Header/Config/en-US.xml");
    doc = XDocument.Load(@"\PartialViews\Header\Config\en-US.xml");
}

Я также пробовал использовать Assembly.GetExecutingAssembly (). Location и Assembly.GetEntryAssembly (). Location перед относительным путем, но сборка, разрешенная Сборка , всегда является библиотекой .NET (потому что тип инициализируется?). .: пакет setup.py ./package: __init__.py каталог file.dat module.py ./package/dir: tool1.dat tool2.dat И следующее содержимое для setup.py: ...

Возьмем следующий макет проекта:

$ ls -R .
.:
package  setup.py

./package:
__init__.py  dir  file.dat  module.py

./package/dir:
tool1.dat  tool2.dat

И следующий контент для setup.py :

$ cat setup.py 
from distutils.core import setup


setup(name='pyproj',
      version='0.1',

      packages=[
          'package',
      ],
      package_data={
          'package': [
              '*',
              'dir/*',
          ],
      },
     )

Как видите, я хочу включить все файлы, отличные от Python, в каталоги package / и package / dir / . Однако выполнение setup.py install вызовет следующую ошибку:

$ python setup.py install
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/package
copying package/module.py -> build/lib/package
copying package/__init__.py -> build/lib/package
error: can't copy 'package/dir': doesn't exist or not a regular file

Что дает?

26
задан BuvinJ 15 March 2016 в 20:05
поделиться