我已经制作了一个应用程序,它会不断更新.所以每次发生变化时,我都会一次又一次地将它的新构建包含到设置和部署程序中.有没有办法简化程序?要添加的文件数量是静态的,存在于文件夹中.我听说我们可以用c#编写安装程序类,我的要求是否与它有任何关系?
我认为ClickOnce不符合我的要求,因为我第一次希望它像安装程序包一样运行,因为它有一些软件包和一些设置需要在安装时在用户的机器上实现.可以点击一次帮助我吗?此外,我想以管理员身份运行我的应用程序,它引用了许多外部DLL文件.那么它有助于我的目的吗?
我终于使用clickonce部署完成了它.我使用内容文件来标记我想要复制到目标计算机的所有文件并使用clickonce部署.然后我修改了我的程序启动的方式,这样我就可以启动安装程序脚本,我只想在应用程序第一次运行时运行.此外,我在IIS上托管它,并且必须更改许多MIME类型并添加新的以便下载到Internet上工作
我已经部署了一个clickonce应用程序,在我的应用程序中我有10个外部dll.由于我的dll文件中的代码不断变化,并且很难重新分发,因此我采用了clickonce部署策略.但我想知道一件事,如果我对其中一个dll文件进行更改并将其汇编版本从1.0.0.0升级到1.0.0.1,但不更改发布版本,它仍然是1.0.0.0.此外,我已将更新设置设置为应用程序加载之前.我重新运行了安装部署,但它没有运行更新的程序集.怎么了?我正在使用VS2008和C#.NET 2.0
我做了一个C#winforms应用程序.现在我有一个有很多按钮的表单,它调用了大量的数字运算函数,其输出我在文本框中更新.我调用textbox.begininvoke()方法,我将委托传递给更新文本框中文本的函数,但是当文本很大时,表单没有响应,因为我无法单击取消按钮.是不是有任何方式使整个表单保持响应,并且更新也不断发生.我必须向用户显示数据,因为它即将到来,我无法缓冲整个事情并最终显示.我还尝试实现自己的缓冲区并以特定的时间间隔显示数据,这对于少量文本很有用,但是大量的UI只是没有响应.任何帮助?谢谢
更新问题是因为出现了一些混淆
有许多站点在表单提交时调用脚本并使用HTTP POST或GET传递参数,使用Web调试器我已经找到了传递的参数.现在我希望通过我在C#中的Windows应用程序做同样的事情.我怎样才能实现这样的功能?
我目前在C#中使用HttpWebRequest和HttpWebResponse类.但这是一个痛苦,因为我必须为我尝试加载和工作的每个页面编写显式代码.例如,我正在尝试将用户名和密码传递到php页面并获取响应,该响应将发送cookie和页面作为回报,基于此我确定用户是否已登录.
HttpWebRequest loginreq = createreq("http://www.indyarocks.com/mobile/index.php");
String logintext = "username=" + TxtUsrname.Text + "&pass=" + TxtPasswd.Password + "&button.x=0&button.y=0";
loginreq.ContentLength = logintext.Length;
StreamWriter writerequest = new StreamWriter(loginreq.GetRequestStream());
writerequest.Write(logintext);
writerequest.Close();
HttpWebResponse getloginpageresponse = (HttpWebResponse)loginreq.GetResponse();
cookie = getloginpageresponse.Cookies[0];
BinaryFormatter bf1 = new BinaryFormatter();
Stream f1 = new FileStream("E:\\cookie.dat", FileMode.OpenOrCreate);
bf1.Serialize(f1, cookie);
f1.Close();
string nexturl = getloginpageresponse.Headers[HttpResponseHeader.Location];
StreamReader readresponse = new StreamReader(getloginpageresponse.GetResponseStream());
if (nexturl == "p_mprofile.php")
{
MessageBox.Show("Login Successful");
GrpMsg.IsEnabled = true;
}
else if (nexturl == "index.php?msg=1")
{
MessageBox.Show("Invalid Credentials Login again"); …Run Code Online (Sandbox Code Playgroud) 我现在有使用asp.net和php的经验.asp集成和丰富的outofbox功能以及C#的强大功能.然而,在使用php一段时间后,我遇到了一个漂亮的功能,我希望在asp.net中
在php中我们可以使用这样的变量
$bar = "My name is $bar and my pet's name is $pet_name";
Run Code Online (Sandbox Code Playgroud)
如果我们不得不使用c#在asp.net中做同样的事情,我可能要写
string str - "my name is " + bar + " and my pet's name is " + pet_name
Run Code Online (Sandbox Code Playgroud)
假设bar和pet_name已经声明,不能有一个功能,我可以表示像php这样的变量,不必通过附加多个字符串来打扰?
我想多次阅读我的程序的输出.有些事情,如果我通过X我得到输出,我显示它,然后再次,如果我通过Y我得到输出,我显示它.没有重新启动过程.尝试它我已经制定了ac程序
#include<stdio.h>
int main()
{
int i;
int j;
while(scanf("%d", &i))
{
for(j = 0; j<=i;j++)
printf("%d\n",j);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在用C#进行插入,当我在文本框中输入文本时,它通过重定向standardinput(一个streamwriter)传递给程序并读取输出我称之为standardoutput(一个streamreader).readtoend() .
但这对我不起作用.因为它进入等待状态直到流返回一些指示告诉结束已被读取.
我怎么能做到这样的事情?
我尝试了异步读取,我调用了beginoutputread方法,但后来我不知道读取何时完成!有一种方法可以让我在原始程序中添加一个标记,以指示当前输入的输出结束.有没有其他方法让我实现它?
在附加notepad.exe命令后,我在windbg中执行了一个uf命令,这是uf记事本!WinMain我得到了以下输出
0:000> uf notepad!WinMain
notepad!WinMain:
0021138d mov edi,edi
0021138f push ebp
00211390 mov ebp,esp
00211392 sub esp,1Ch
00211395 push esi
00211396 push edi
00211397 push 6
002113c8 test eax,eax
002113ca jl notepad!WinMain+0x118 (00211c93)
notepad!WinMain+0x43:
002113d0 push ebx
002113d1 push dword ptr [ebp+14h]
002113d4 push edi
002113d5 call notepad!SkipProgramName (00213170)
002113e5 je notepad!WinMain+0x10e (00211ca9)
notepad!WinMain+0x5e:
002113eb push esi
002113ec push esi
002113ed call dword ptr [notepad!_imp__GetCurrentProcessId (00211084)]
Run Code Online (Sandbox Code Playgroud)
如果您在每次跳转指令后发现它会创建一个新的块
002113ca jl notepad!WinMain+0x118 (00211c93)
notepad!WinMain+0x43:
Run Code Online (Sandbox Code Playgroud)
并在
002113e5 je notepad!WinMain+0x10e (00211ca9)
notepad!WinMain+0x5e:
Run Code Online (Sandbox Code Playgroud)
所以我想知道WinDbg中的一个设置,我可以省略在每次跳转时为功能反汇编创建新块.为什么我不能像U命令那样获得输出?
所以我正在寻找这样的选择 …
我需要一个正则表达式,我将只返回25,36,30
25 10a 36 10b 30
因为它们是序列中唯一的纯数字.
我试过这个,但它对我不起作用:
(^|[ ])\d+|($|[ ])
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我在这段代码中遇到编译错误
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
void main(int argc,char *argv[])
{
int i;
for(i = 0;i<10;i++)
fprintf(cout,"%d\n",i);
fprintf(cout,"abc:\n");
string s;
cin>>s;
if(s == "resume") {
for(i = 0;i<10;i++)
fprintf(cout,"%d\n",i);
}
}
Run Code Online (Sandbox Code Playgroud)
Microsoft(R)32位C/C++优化编译器版本15.00.21022.08(适用于80x86)版权所有(C)Microsoft Corporation.版权所有.
try.cpp C:\ Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342):警告C 4530:使用了C++异常处理程序,但未启用展开语义.指定/ EHsc
try.cpp(9):错误C2664:'fprintf':无法将参数1从'std :: ostr eam'转换为'FILE*'没有可用于执行此转换的用户定义转换运算符,或者运算符不能叫做
try.cpp(10):错误C2664:'fprintf':无法将参数1从'std :: ost ream'转换为'FILE*'没有可用于执行此转换的用户定义转换运算符,或者运算符不能叫做
try.cpp(16):错误C2664:'fprintf':无法将参数1从'std :: ost ream'转换为'FILE*'没有可用于执行此转换的用户定义转换运算符,或者运算符不能叫做
怎么了?
我想在C中进行套接字编程.客户端和服务器正在交换消息.我有我的示例代码,但我想要一些精心设计的链接和插件编程C的教程,以便我可以编写有效且无错误的代码.我将使用WinSock库而不是Linux.有帮助吗?
我有一个课,并在其中声明了一个枚举
public enum file_type {readonly, readwrite, system}
Run Code Online (Sandbox Code Playgroud)
现在基于我想要将enum file_type设置为类似值的条件
if("file is markedreadonly")
file_type = readonly;
Run Code Online (Sandbox Code Playgroud)
是不是可以在c#中这样做