由于此处声明的文件路径,我收到错误:
private UIImageRes onClickImage = new UIImageRes(@"..\..\Resources\check_active.png",new Rectangle());
然而,当我宣布实际路径时,它起作用,即
private UIImageRes onClickImage = new UIImageRes(@"C:\Desktop\File\Resources\check_active.png",new Rectangle());
现在,这段代码是一个单独的项目,我将其添加到我的新项目中。我不认为将确切的文件路径放在那里是一个好主意。我将不得不更改多个源代码中的所有文件路径。此外,如果我将项目复制到另一个文件夹,该项目将无法正常工作。我该怎么办呢?
编辑:
我是C#的新手,在C ++和java
方面有一定的学术经验答案 0 :(得分:0)
解决方案1 :
如果您希望两个项目都使用固定路径,则可以使用 INI文件来存储路径。这有助于在不更改源代码的情况下更改路径。
解决方案2 :
使用Application.StartupPath构建路径。
例如:
string sRelativePath = System.IO.Path.Combine(Application.StartupPath, @"Resources\check_active.png");
private UIImageRes onClickImage = new UIImageRes(sRelativePath,new Rectangle());
Application.StartupPath 给出启动应用程序的可执行文件的路径,不包括可执行文件名。
<强>更新强>:
假设Project1.exe
位于此处:
C:\Desktop\File\Project1.exe
Application.StartupPath返回:
C:\Desktop\File
使用时:
string sRelativePath = System.IO.Path.Combine(Application.StartupPath, @"Resources\check_active.png");
输出将在sRelativePath
字符串中:
C:\Desktop\File\Resources\check_active.png
答案 1 :(得分:0)
实际上,当我使用C#处理图像处理时出现此错误。然后,我将所需的dll复制到项目的bin文件夹中,问题就解决了。例如,cudart32_55.dll是图像处理所需的dll之一。我没有包含这个DLL并尝试运行代码,然后我得到了System.Argument异常。因此,请确保您放置所有必需的dll以摆脱System.Arguments Exception。
这对我有用,这就是我所经历的。我建议你尝试一次。