新建一个Win-C#-app工程在控件栏中将些控件加到其中,拖到Fomr上后,显示为(C:\TEMP\JKE),正确.
将.NET关闭,再次启动.NET打开同一个工程,再拖控件到FORM上时就不对了显示为(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE).以后就都不对了,请问是什么原因,如何解决?
34 个解决方案
#1
up
#2
不明,帮UP
#3
我做了一个ITextBox从TextBox继承来的,在控件的中显示控件自己(DLL)所在的路径,生成DLL文件后,把DLL文件放到(C:\TEMP\JKE)目录下.
新建一个Win-C#-app工程在控件栏中将,上面生成的控件(C:\TEMP\JKE)加到其中,拖到Fomr上后,显示为(C:\TEMP\JKE),正确.
将.NET关闭,再次启动.NET打开同一个工程,再拖控件到FORM上时就不对了显示为(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE).以后就都不对了,请问是什么原因,如何解决?
新建一个Win-C#-app工程在控件栏中将,上面生成的控件(C:\TEMP\JKE)加到其中,拖到Fomr上后,显示为(C:\TEMP\JKE),正确.
将.NET关闭,再次启动.NET打开同一个工程,再拖控件到FORM上时就不对了显示为(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE).以后就都不对了,请问是什么原因,如何解决?
#4
你是如何取得路径的?在哪里执行这段代码的?
光看上面的描述看不出什么问题来
光看上面的描述看不出什么问题来
#5
在哪都一样,比如加一个按钮在单击事中.用下面方法取得.
System.IO.Directory.GetCurrentDirectory()
System.IO.Directory.GetCurrentDirectory()
#6
up
#7
up
#8
帮你顶!!
#9
好!
帮你UPPUPUPUPUPUP了
帮你UPPUPUPUPUPUP了
#10
ding
#11
.....
#12
up
#13
我猜:
因为第一次加载这个DLL的时候GAC没有它的拷贝,也没有其它进程对这个DLL有访问的需求,所以它还在原地。 但当有另一个新的进程又想引用这个DLL的时候,系统就把它拷贝到缓存里边去了。
你不妨在调用控件的客户端把控件的“CopyToLocal”属性设置为True,看看比尔开恩否?
因为第一次加载这个DLL的时候GAC没有它的拷贝,也没有其它进程对这个DLL有访问的需求,所以它还在原地。 但当有另一个新的进程又想引用这个DLL的时候,系统就把它拷贝到缓存里边去了。
你不妨在调用控件的客户端把控件的“CopyToLocal”属性设置为True,看看比尔开恩否?
#14
up
#15
UP
#16
不好意思. 请问在哪里设置CopyToLocal属性啊???
谢谢
谢谢
#17
工程视窗-〉引用->[你那个控件的的名称空间]-〉鼠标右键按属性-〉“复制到本地”属性-〉True
#18
UP
#19
up,,,,,,,,,,,,,,.
#20
System.IO.Directory.GetCurrentDirectory() -->
string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
System.IO.Directory.GetParent(location ).FullName
string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
System.IO.Directory.GetParent(location ).FullName
#21
原因在于,程序集的复制导致了当前工作目录的更改~~~所以你的代码会显示当前目录的名称
利用反射可以取得程序集的原始路径
利用反射可以取得程序集的原始路径
#22
"复制到本地"应该可以的
#23
UP
#24
多谢各位,我都试试!!!!
#25
up
#26
你可能要用Release编译的版本吧,不要用Debug版本!
#27
我用的就是Release版!!!!
#28
首先感谢各位的帮助.
可是我发现将CopyToLocal不论是真还是假,到他所示目录里并没发现copy的复本.
可是我发现将CopyToLocal不论是真还是假,到他所示目录里并没发现copy的复本.
#29
在Bin目录里边吧
#30
我是说不在它显示的这个目录里啊(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE)
#31
帮你up
#32
你是如何获得这个值的呢?
#33
我顶
#34
帮顶
#1
up
#2
不明,帮UP
#3
我做了一个ITextBox从TextBox继承来的,在控件的中显示控件自己(DLL)所在的路径,生成DLL文件后,把DLL文件放到(C:\TEMP\JKE)目录下.
新建一个Win-C#-app工程在控件栏中将,上面生成的控件(C:\TEMP\JKE)加到其中,拖到Fomr上后,显示为(C:\TEMP\JKE),正确.
将.NET关闭,再次启动.NET打开同一个工程,再拖控件到FORM上时就不对了显示为(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE).以后就都不对了,请问是什么原因,如何解决?
新建一个Win-C#-app工程在控件栏中将,上面生成的控件(C:\TEMP\JKE)加到其中,拖到Fomr上后,显示为(C:\TEMP\JKE),正确.
将.NET关闭,再次启动.NET打开同一个工程,再拖控件到FORM上时就不对了显示为(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE).以后就都不对了,请问是什么原因,如何解决?
#4
你是如何取得路径的?在哪里执行这段代码的?
光看上面的描述看不出什么问题来
光看上面的描述看不出什么问题来
#5
在哪都一样,比如加一个按钮在单击事中.用下面方法取得.
System.IO.Directory.GetCurrentDirectory()
System.IO.Directory.GetCurrentDirectory()
#6
up
#7
up
#8
帮你顶!!
#9
好!
帮你UPPUPUPUPUPUP了
帮你UPPUPUPUPUPUP了
#10
ding
#11
.....
#12
up
#13
我猜:
因为第一次加载这个DLL的时候GAC没有它的拷贝,也没有其它进程对这个DLL有访问的需求,所以它还在原地。 但当有另一个新的进程又想引用这个DLL的时候,系统就把它拷贝到缓存里边去了。
你不妨在调用控件的客户端把控件的“CopyToLocal”属性设置为True,看看比尔开恩否?
因为第一次加载这个DLL的时候GAC没有它的拷贝,也没有其它进程对这个DLL有访问的需求,所以它还在原地。 但当有另一个新的进程又想引用这个DLL的时候,系统就把它拷贝到缓存里边去了。
你不妨在调用控件的客户端把控件的“CopyToLocal”属性设置为True,看看比尔开恩否?
#14
up
#15
UP
#16
不好意思. 请问在哪里设置CopyToLocal属性啊???
谢谢
谢谢
#17
工程视窗-〉引用->[你那个控件的的名称空间]-〉鼠标右键按属性-〉“复制到本地”属性-〉True
#18
UP
#19
up,,,,,,,,,,,,,,.
#20
System.IO.Directory.GetCurrentDirectory() -->
string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
System.IO.Directory.GetParent(location ).FullName
string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
System.IO.Directory.GetParent(location ).FullName
#21
原因在于,程序集的复制导致了当前工作目录的更改~~~所以你的代码会显示当前目录的名称
利用反射可以取得程序集的原始路径
利用反射可以取得程序集的原始路径
#22
"复制到本地"应该可以的
#23
UP
#24
多谢各位,我都试试!!!!
#25
up
#26
你可能要用Release编译的版本吧,不要用Debug版本!
#27
我用的就是Release版!!!!
#28
首先感谢各位的帮助.
可是我发现将CopyToLocal不论是真还是假,到他所示目录里并没发现copy的复本.
可是我发现将CopyToLocal不论是真还是假,到他所示目录里并没发现copy的复本.
#29
在Bin目录里边吧
#30
我是说不在它显示的这个目录里啊(D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE)
#31
帮你up
#32
你是如何获得这个值的呢?
#33
我顶
#34
帮顶