Изменяет ли издатель Visual Studio OneClick массив байтов, необходимый для шифрования RSA? - PullRequest
2 голосов
/ 04 августа 2020

Я пытаюсь опубликовать sh надстройку COM для Word, и мне нужен файл лицензии. Я использую Rhino Licensing, и файл не имеет проблем во время отладки, но при использовании OneClick для публикации sh лицензия надстройки считается недействительной. Вот код класса, который я использую для проверки лицензии:

using System;
using System.IO;
using Rhino.Licensing;

namespace Services.Licensing
{
    public class LicenseChecker
    {
        private static string PublicKeyPath;
        private static string LicensePath;

        public static bool LicenseIsValid(string licPath)
        {
            bool result = false;
            Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
            String Root = Directory.GetCurrentDirectory();
            PublicKeyPath = Root + @"\Licensing\publicKey.xml";
            LicensePath = Root + @"\Licensing\license.xml";  //licPath;
            // not working on INSTALL, runs fine in debug

            try
            {
                var publicKey = File.ReadAllText(PublicKeyPath);

                //Throws an exception if license has been modified
                LicenseValidator validator = new LicenseValidator(publicKey, LicensePath);
                validator.AssertValidLicense();
            
                if (validator.ExpirationDate > DateTime.Now)
                {
                    result = true;
                }
            }
            catch
            { }

            return result;
        }
    }
}

Я пытаюсь связать лицензию с exe, которую я передам небольшой группе тестирования, чтобы спасти тестировщиков ненужные проблемы с управлением лицензией и publi c ключом. В настоящее время у меня есть (действующий) файл лицензии и ключ publi c в качестве встроенных ресурсов, для которых установлено значение «всегда копировать».

У меня такая же проблема, когда лицензия не связана с опубликованным exe-файлом, но ключ publi c есть. Когда оба файла остаются вне решения, похоже, нет проблем. Может ли публикация решения изменить байтовый массив ключа publi c или лицензии?

Я использую Net Framework 4.7.2 и Visual Studio 2019.

1 Ответ

0 голосов
/ 05 августа 2020

После долгих экспериментов общий ответ кажется отрицательным, публикация ClickOnce не влияет на массив байтов.

Кажется, ошибка возникает из-за того, что ClickOnce не копирует файлы XML в Папка Application Files, которую он создает, вообще не создает. поместите Try {} вокруг всех функций, которые используют в моей программе готовые файлы XML. Каждая из этих функций вернула Catch {}. Я предполагаю, что ClickOnce - это слишком упрощенный c установщик, чтобы его можно было использовать, если вы пытаетесь включить много / любые файлы ресурсов, особенно если это XML.

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