日期:2014-05-17  浏览次数:20801 次

c#程序点发布后,相对路径的文件用不了了
用c#写了个程序,其中用了图片,路径在bin\debug下,因此调用图片的时候直接写***.jpg
但是点了生成->发布以后,将setup程序拷到其他电脑上安装,就显示不出图片了
请问,这种情况下,要怎么弄才能有图片啊?
这种情况的相对路径怎么写啊?不要绝对路径哦

------解决方案--------------------

/// <summary>
        /// 获取Assembly的运行路径
        /// </summary>
        /// <returns></returns>
        public static string GetAssemblyPath()
        {
            try
            {
                string _CodeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
                _CodeBase = _CodeBase.Substring(8, _CodeBase.Length - 8);    // 8是 file:// 的长度
                string[] arrSection = _CodeBase.Split(new char[] { '/' });
                string _FolderPath = "";
                for (int i = 0; i < arrSection.Length - 1; i++)
                {
                    _FolderPath += arrSection[i] + "/";
                }
                return _FolderPath.Replace("/", @"\");
            }
            catch
            {
                return null;
            }
        }

你看看你的图片又没有复制,图片选择为内容
------解决方案--------------------
string xpath=Application.StartupPath;
这个是获取执行文件的路径.然后你可以发挥了.你的图片放在那个目录你加上去就行了
------解决方案--------------------
Application.StartupPath+相对路径
------解决方案--------------------
直接点生成--->发布的话,图片并没有一起打包的,也就是你的安装文件里都没有这个图片,所以到其它安装时显示不出图片。
用Windows Installer生成安装包,将图片也一起打包进去就可以了,还是可以用相对路径的。