1/2页12 跳转到查看:11301
发新话题 回复该主题

如何在VS里编译插件?在线等 winson请进!

如何在VS里编译插件?在线等 winson请进!

怎样单独编译插件,对于插件的编译还不是太明白,我下载了源文件和发帖排行插件的代码1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
不知道下面如何正确编译,1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
我用的是VS2005,sql 1.1的版本的,调试都通过了就是不知道如何单独编译出这个插件的DLL! 1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
还有插件的DLL命名跟调用关系是在哪里?有经验的麻烦指点一下!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
我在项目里生成的始终是Discuz.Plugin.dll 如何生成Discuz.Plugin.Topics.dll 将类库命名为Discuz.Plugin.Topics生成出来的无法使用!头大了!!!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
Discuz!NT建议插件程序都使用Discuz.Plugin命名空间, 每个插件定义自己的类名, 功能编译为单独的dll文件, 便于最终用户的安装和删除.我们的这个插件也遵从这个规则, 然后类名定义为Birthday, 我们准备用GetUserList()方法来返回我们需要的生日会员名单.1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
这里说的方法是说出来了,但是具体怎样操作却还是一片模糊1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
比如说具体是新件一个类库,还新建一个CS,功能又如何编译为单独的dll文件,能不能再具体点,我是菜鸟不太懂,而且VS里那么多东东本来看着就眼花,还希望高手在写教程的时候考虑到菜鸟的感受!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
能够耐心点讲讲步骤! 1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
代码如下:1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using System;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using System.IO;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using System.Text;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using System.Data;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using System.Data.SqlClient;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using Discuz.Common;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using Discuz.Forum;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
using System.Collections;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
namespace Discuz.Plugin1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
{1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
    public class Topics1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
    {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        /// <summary>1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        /// Discuz!NT 贴子数排行插件1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        /// </summary>1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 当天排行1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        public static string GetTodayTopics(int i)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFiledir = Utils.GetMapPath(BaseConfigFactory.GetForumPath + &quot;cache/plugin/Topics/today/&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFilename = string.Format(&quot;{0}-{1}-{2}-{3}.config&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, DateTime.Now.Day.ToString(), DateTime.Now.Hour.ToString());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFilepath = cacheFiledir + cacheFilename;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            if (File.Exists(cacheFilepath))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                using (StreamReader strReader = new StreamReader(cacheFilepath, Encoding.UTF8))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    System.Text.StringBuilder strOutput = new System.Text.StringBuilder();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    strOutput.Append(strReader.ReadToEnd());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    strReader.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    return strOutput.ToString();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            else1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                ClearCacheFile(cacheFiledir);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                return Today(i, cacheFilepath);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 昨日排行1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        public static string GetYesterdayTopics(int i)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFiledir = Utils.GetMapPath(BaseConfigFactory.GetForumPath + &quot;cache/plugin/Topics/Yesterday/&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFilename = string.Format(&quot;{0}-{1}-{2}-Yesterday.config&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, DateTime.Now.Day.ToString());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFilepath = cacheFiledir + cacheFilename;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            if (File.Exists(cacheFilepath))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                using (StreamReader strReader = new StreamReader(cacheFilepath, Encoding.UTF8))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    System.Text.StringBuilder strOutput = new System.Text.StringBuilder();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    strOutput.Append(strReader.ReadToEnd());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    strReader.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    return strOutput.ToString();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            else1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                ClearCacheFile(cacheFiledir);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                return Yesterday(i, cacheFilepath);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 全部排行1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        public static string GetAllTopics(int i)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFiledir = Utils.GetMapPath(BaseConfigFactory.GetForumPath + &quot;cache/plugin/Topics/All/&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFilename = string.Format(&quot;{0}-{1}-{2}-All.config&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, DateTime.Now.Day.ToString());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string cacheFilepath = cacheFiledir + cacheFilename;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            if (File.Exists(cacheFilepath))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                using (StreamReader strReader = new StreamReader(cacheFilepath, Encoding.UTF8))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    System.Text.StringBuilder strOutput = new System.Text.StringBuilder();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    strOutput.Append(strReader.ReadToEnd());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    strReader.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    return strOutput.ToString();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            else1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                ClearCacheFile(cacheFiledir);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                return AllDay(i, cacheFilepath);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 私有方法1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        private static string AllDay(int i, string cacheFilepath)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            StringBuilder SB = new StringBuilder();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            DataTable dt = Discuz.Forum.UserFactory.GetUserList(20, 1, &quot;ORDER BY [&quot; + BaseConfigFactory.GetTablePrefix + &quot;users].[posts] DESC&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            int j = 1;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            foreach (DataRow user in dt.Rows)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                if (j <= i)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(&quot;<img src=/other/&quot; + j + &quot;.gif><font color =red>&quot; + user[&quot;username&quot;].ToString().Trim() + &quot;</font>  <font color =red>&quot; + user[&quot;posts&quot;].ToString().Trim() + &quot;贴</font><br />&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    j++;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                else1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    break;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            using (FileStream fs = new FileStream(cacheFilepath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                Byte[] info = System.Text.Encoding.UTF8.GetBytes(SB.ToString());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                fs.Write(info, 0, info.Length);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                fs.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            return SB.ToString();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 取得昨天排行方法1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        private static string Yesterday(int i, string cacheFilepath)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            StringBuilder SB = new StringBuilder();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string strYesTerday = string.Format(&quot;{0}-{1}-{2}&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, (DateTime.Now.Day - 1).ToString()).PadRight(5);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string strTody = string.Format(&quot;{0}-{1}-{2}&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, DateTime.Now.Day.ToString()).PadRight(5);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            SqlDataReader reader = Database.ExecuteReader(CommandType.Text, &quot;SELECT count(*) [posterid],[poster] FROM [&quot; + BaseConfigFactory.GetTablePrefix + &quot;posts1] WHERE postdatetime  > '&quot; + strYesTerday + &quot;' and postdatetime < '&quot; + strTody + &quot;'  and postdatetime < '&quot; + strTody + &quot;' group by poster order by posterid DESC&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            if (reader != null)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                int j = 1;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                while (reader.Read())1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(&quot;<img src=/other/&quot; + j + &quot;.gif><font color =red>&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(reader[1].ToString().Trim());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(&quot;    &quot; + reader[0] + &quot;贴</font><br />&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    j++;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    if (j > i)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                        break;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                reader.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            using (FileStream fs = new FileStream(cacheFilepath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                Byte[] info = System.Text.Encoding.UTF8.GetBytes(SB.ToString());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                fs.Write(info, 0, info.Length);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                fs.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            return SB.ToString();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 取得当天排行方法1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        private static string Today(int i, string cacheFilepath)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            StringBuilder SB = new StringBuilder();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string strYesTerday = string.Format(&quot;{0}-{1}-{2}&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, (DateTime.Now.Day - 1).ToString()).PadRight(5);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            string strTody = string.Format(&quot;{0}-{1}-{2}&quot;, DateTime.Now.Year.ToString(), DateTime.Now.Month, DateTime.Now.Day.ToString()).PadRight(5);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            SqlDataReader reader = Database.ExecuteReader(CommandType.Text, &quot;SELECT count(*) [posterid],[poster] FROM [&quot; + BaseConfigFactory.GetTablePrefix + &quot;posts1] WHERE postdatetime > '&quot; + strTody + &quot;' group by poster order by posterid DESC&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            if (reader != null)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                int j = 1;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                while (reader.Read())1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(&quot;<img src=/other/&quot; + j + &quot;.gif><font color =red>&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(reader[1].ToString().Trim());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    SB.Append(&quot;    &quot; + reader[0] + &quot;贴</font><br />&quot;);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    j++;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    if (j > i)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                        break;1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                reader.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            using (FileStream fs = new FileStream(cacheFilepath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                Byte[] info = System.Text.Encoding.UTF8.GetBytes(SB.ToString());1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                fs.Write(info, 0, info.Length);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                fs.Close();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            return SB.ToString();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #region 删过期文件方法1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        private static void ClearCacheFile(string cacheFiledir)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            if (Directory.Exists(cacheFiledir))1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                DirectoryInfo dirinfo = new DirectoryInfo(cacheFiledir);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                foreach (FileInfo file in dirinfo.GetFiles())1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    if (file != null &amp;&amp; file.Extension == &quot;.config&quot;)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                        file.Delete();1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                    }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            else1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            {1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
                Utils.CreateDir(cacheFiledir);1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
            }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
        #endregion1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
    }1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
}
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
最后编辑PURES 最后编辑于 2007-08-17 22:41:57

TOP

 

回复: 如何在VS里编译插件?在线等 winson请进!

呵,一般比较好的做法就是你自己新建一个类库项目啦,然后命名空间就用上面官方建议的名字,编译好的DLL也可以用官方建议的名字,当然你想自己另命名也一样,然后在项目里调用1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
如要在某个页面文件里调用你做好的类库方法,可按以下步骤:1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1、将你的插件DLL放到论坛项目的BIN目录里1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
2、在需要用到的页面文件里导入你DLL的命名空间1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
3、直接调用你自己的方法1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
相应代码写完后,就可以将项目发布了,这时为了要在项目里使用你的插件,所以必须要使用web deployment project插件来发布,并且将发布的DLL名字务必改为:Discuz.ForumPage.dll,因为DNT只认这个名啊,呵呵1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
这样你再将你的插件DLL和编译好的Discuz.ForumPage.dll一起COPY到BIN目录就可以让其他人使用你的插件了1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

调用方面我还是比较清楚,就是对于编译插件不太懂,1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
Discuz.ForumPage.dll可以不动吗,看其他人的插件好象只是一个单独的DLL1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
web deployment project这个我下载安装了,但是不知道知道怎么使用,1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
比如这段代码我新建一个1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
类库跟类名也有点区分不清楚,区别在哪里?1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
Discuz.Plugin命名空间 我理解成类库项目也命名为这个1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
类名定义为Birthday,我的理解是应该是Birthday.cs1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
假设我现在要做的是一个排行的插件代码都写好了1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
新建一个类库Discuz.Plugin1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
类名opics.cs1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
然后其他的引用都做好,这样直接生成的是Discuz.Plugin.DLL在bin\Release目录下1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
我就不明白怎么生成Discuz.Plugin.Topics.DLL 重新命名吗?是否有影响!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

你只需将生成的插件DLL放到BIN下就可以了,如你上面只需生成一个Discuz.Plugin.DLL就可以了,不需要再用Discuz.Plugin.Topics.DLL 了,因为你的方法都在Discuz.Plugin.DLL里了嘛,只要直接调用这里的方法即可1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
或者你可以下载我那个巧嘴娃娃的插件看看,我里面也有一个独立的插件项目的1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

我下载过,呵呵,不过是2.0的就没有装!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
这样直接生成的,可以用吗?好象我的不行.........改名有影响不?因为怕跟其他的重复1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
我试过还几次了,都出问题!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
还有这样发布,跟用插件发布应该没区别吧?1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

嗯,当然,如果其他人曾用过此DLL来安装插件,就会有重复了,你换个名也可以,不影响的1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
可能1.1与2.0会有些不同吧,因为我没试过1.1的,呵呵1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

你有Q不?我的760625211TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
如果你有空的话,我在线给你操作看看!行不行!1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

我现在要下了,有空再说吧,呵呵1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 

回复:如何在VS里编译插件?在线等 winson请进!

PURES,我也要睡觉了,晚安啦~~1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
你的选择是做或者不做,但是不做就永远没有机会。

TOP

 

回复: 如何在VS里编译插件?在线等 winson请进!

“/”应用程序中的服务器错误。1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
--------------------------------------------------------------------------------1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
编译错误 1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
编译器错误信息: CS0246: 找不到类型或命名空间名称“Topics”(是否缺少 using 指令或程序集引用?)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
源错误:1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
行 635:    templateBuilder.Append("<div class=\"th\">\r\n");1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
行 636:    templateBuilder.Append("  <div style=\"width:30%;float:left;text-align:left;line-height:20px;\">\r\n");1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
行 637:    templateBuilder.Append(" " + Topics.GetTodayTopics(5).ToString().Trim() + "\r\n");1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
行 638:    templateBuilder.Append("  </div>\r\n");1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
行 639:    templateBuilder.Append("  <div style=\"width:32%;float:left;text-align:left;line-height:20px;\">\r\n");1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
源文件: F:\www\book114.cn\www\bbsxp\aspx\2\index.aspx    行: 637 1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
显示详细的编译器输出:1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
Microsoft (R) Visual C# .NET 编译器版本 7.10.6310.41TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
用于 Microsoft (R) .NET Framework 版本 1.1.43221TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
版权所有 (C) Microsoft Corporation 2001-2002。保留所有权利。1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
F:\www\book114.cn\www\bbsxp\aspx\2\index.aspx(637,31): error CS0246: 找不到类型或命名空间名称“Topics”(是否缺少 using 指令或程序集引用?)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
F:\www\book114.cn\www\bbsxp\aspx\2\index.aspx(640,30): error CS0246: 找不到类型或命名空间名称“Topics”(是否缺少 using 指令或程序集引用?)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
F:\www\book114.cn\www\bbsxp\aspx\2\index.aspx(643,30): error CS0246: 找不到类型或命名空间名称“Topics”(是否缺少 using 指令或程序集引用?)1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
显示完整的编译源: 1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
--------------------------------------------------------------------------------1TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò
版本信息: Microsoft .NET Framework 版本:1.1.4322.2407; ASP.NET 版本:1.1.4322.24071TÇ~íp_bbs.szblogs.com æ2ÁzW(Ò

TOP

 
1/2页12 跳转到
发表新主题 回复该主题