2016-09-21 2 views
1

Я использую VSTO для создания Excel AddIn. В этом проекте я также добавил несколько сценариев python .py, чтобы выполнить некоторые манипуляции с данными.C# Excel AddIn, найти путь к файлу содержимого при excuting

Весь проект является # проект C, все .py файлы берутся содержимого файлов проекта, в деталях, что я сделал это установка Properities-Build Action, как «Содержание», установка Properities-Копировать в Выходной каталог как «Копировать всегда».

Однако, после публикации с помощью clickonce, при выполнении я не смог найти, где находятся файлы содержимого. Я уже пробовал: Application.StartupPath, но не работал. Мне действительно нужно найти файлы с файлами путь и войти в них.

Заранее благодарим всех, кто занимает время, чтобы увидеть мой вопрос.

ответ

1

Публикация страницы проекта надстройки офиса не имеет кнопки Application Files, что означает, что вы не можете включать некоторые файлы в один раз после установки установщика так, как это делается для приложений. В качестве опции вы можете поместить свои файлы в виде встроенных ресурсов, а затем при запуске надстройки, извлечь их из ресурсов и скопировать их в выходной каталог вывода.

Для этого вы можете добавить свой файл в Resources.resx, а затем в StartUp вашей надстройки, извлечь файл из ресурсов и сохранить его в каталоге развертывания и использовать его.

var assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location; 
var assemblyFolder = System.IO.Path.GetDirectoryName(assemblyLocation); 
var file = System.IO.Path.Combine(assemblyFolder , "test.py"); 
if (!System.IO.File.Exists(file)) 
    System.IO.File.WriteAllBytes(file, Properties.Resources.test); 

Теперь файл находится на пути, указанном в переменной file.

+0

Файл 'Resources.resx' находится под узлом проекта в папке« Свойства ». Чтобы добавить файл в 'Resources.resx', достаточно открыть режим разработки' Resources.resx' i, а затем скопировать файл из обозревателя Windows и вставить его в конструктор ресурса. Также вы можете использовать меню «Добавить существующий файл» под кнопкой «Добавить ресурс». И тогда файл будет доступен с его именем и как 'byte []'. –

+0

Спасибо за редактирование. Я сейчас пытаюсь сделать эксперимент. –

+0

Я использовал трюк без каких-либо проблем, поэтому дайте мне знать, если у вас возникли проблемы с применением решения :) –