C#打包问题,急!
目标机器上没有Framework,我是用VS2008开发的系统,从VB里翻版过来的,操作手册已经提交了,安装界面都没办法更改,现在想将framework3.5打包到安装文件中,有没有什么办法?
已经使用过两种Linker工具和飞信的环境包,但那两种打包完成后系统里有一部分功能无法使用,影像整个系统的运作。
测试的时候发现是系统中的加密代码在环境包里没有,加密代码如下:
private static byte[] DESKey = new byte[] {12, 33, 255, 102, 72, 41, 18, 12};
//获取或设置对称算法的初始化向量
private static byte[] DESIV = new byte[] {75, 65, 77, 97, 78, 57, 17, 36};
/**//**//**//// <summary>
/// 加密DataSet
/// </summary>
/// <param name="objDataSet"></param>
/// <param name="outFilePath"></param>
public static bool EncryptDataSetToXml(DataSet objDataSet,string outXmlFilePath)
{
bool Res = false;
try
{
//objDataSet.WriteXml(outXmlFilePath);
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
FileStream fout = new FileStream(outXmlFilePath, FileMode.OpenOrCreate, FileAccess.Write);
//用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
CryptoStream objCryptoStream = new CryptoStream(fout, objDES.CreateEncryptor(DESKey, DESIV), CryptoStreamMode.Write);
StreamWriter objStreamWriter = new StreamWriter(objCryptoStream);
XmlSerializer objXmlSer = new XmlSerializer(typeof(DataSet));
objXmlSer.Serialize(objStreamWriter, objDataSet);
objStreamWriter.Close(); objCryptoStream.Close(); fout.Close();
Res = true;
}
catch (Exception ei){
System.Windows.Forms.MessageBox.Show(ei.Message);
}
return Res;
}
public static DataSet DecryptDataSetFromXml(string inXmlFilePath)
{
DataSet ds = new DataSet();
try
{
//ds.ReadXml(inXmlFilePath);
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
FileStream fin = new FileStream(inXmlFilePath, FileMode.Open, FileAccess.Read);
//用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
CryptoStream objCryptoStream = new CryptoStream(fin, objDES.CreateDecryptor(DESKey, DESIV), CryptoStreamMode.Read);
TextReader objTxrReader = new StreamReader(objCryptoStream);
XmlSerializer objXmlSer = new XmlSerializer(typeof(DataSet));
ds = (DataSet)objXmlSer.Deserialize(objTxrReader);
objTxrReader.Close();
}
catch { }
return ds;
}
我还郁闷,望高手帮忙,谢谢!