Я пытаюсь опубликовать 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.