Visual Studio OneClick 发布者是不是更改 RSA 加密所需的字节数组?

Posted

技术标签:

【中文标题】Visual Studio OneClick 发布者是不是更改 RSA 加密所需的字节数组?【英文标题】:Does the Visual Studio OneClick publisher change the byte array needed for RSA encryption?Visual Studio OneClick 发布者是否更改 RSA 加密所需的字节数组? 【发布时间】:2020-11-24 01:41:14 【问题描述】:

我正在尝试为 Word 发布 COM 加载项,并且需要一个许可证文件。我正在使用 Rhino Licensing 并且文件在调试过程中没有问题,但是当使用 OneClick 发布加载项时,许可证被报告为不再有效。这是我用来检查许可证的类的代码:

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 文件捆绑在一起,以节省测试人员管理许可证和公钥的不必要麻烦。目前我有(有效的)许可证文件和公钥作为嵌入式资源,设置为“始终复制”。

当许可证未与已发布的 exe 捆绑在一起时,我遇到了同样的问题,但公钥是。当两个文件都留在解决方案之外时,似乎没有问题。发布解决方案是否会更改公钥或许可证的字节数组?

我正在使用 .Net Framework 4.7.2 和 Visual Studio 2019。

【问题讨论】:

【参考方案1】:

玩弄了很多,大致的答案似乎是否定的,ClickOnce 发布不影响字节数组。

该错误似乎正在发生,因为 ClickOnce 根本没有将 XML 文件复制到它创建的 Application Files 文件夹中。

将许可证放入桌面文件夹并让程序从那里调用它们后,另一个使用 XML 文件加载列表项的类不会初始化,这导致我将 Try 放在所有使用预制 XML 的函数周围我的程序中的文件。这些函数中的每一个都返回 Catch。如果您尝试包含许多/任何资源文件,尤其是当它们是 XML 时,我假设 ClickOnce 过于简单,无法使用。

【讨论】:

以上是关于Visual Studio OneClick 发布者是不是更改 RSA 加密所需的字节数组?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio2012发布项目到iis

关于visual studio网站发布及IIS的问题~急急急!!!

visual studio 2013 怎么发布网站到服务器的iis?求具体操作步骤

在visual studio里面,如何能让我看到.CS文件?

visual studio.net 2002 在哪里有下载?

Visual Studio 2012 与 Visual Studio 2005 中的小程序慢得多