在c#中为我的Visual Studio项目文件定义相对路径

时间:2016-11-09 12:58:55

标签: c#

所以我下载了一个框架来编写代码,我需要将源代码链接到可执行文件以允许代码运行。但是,从之前的文件夹中移动了根文件夹(包含与项目相关的所有文件),现在没有任何作用。我一直在尝试更改文件的路径,使其相对于属性选项卡中的根文件夹,但我不知道如何去做。

可执行路径 - C:\ Users \ me \ Downloads \ Competition-Pack-v43-GeometryFriends-updated-14-08-2016 \ GeometryFriendsAgents \ GeometryFriendsGame \ Release \ GeometryFriends.exe

C:\用户\我\下载\竞争件组-V43-GeometryFriends更新的-14-08-2016 \ GeometryFriendsAgents \ GeometryFriendsGame \释放

是否有相当于使用宏来在C#中定义路径,就像在构建C ++项目时所获得的那样?

2 个答案:

答案 0 :(得分:0)

将.exe作为资源(非嵌入式)添加到项目中,并设置"复制到输出"总是要复制的财产。这可确保所需的exe始终与构建路径相关。只需在代码中使用相对路径即可。

实施例: (这一切都在VS的解决方案资源管理器窗口中完成) 右键单击您的项目,然后添加一个新文件夹,将其命名为Externals。 右键单击该文件夹,单击“添加”,然后单击“现有项”。找到您的exe,然后添加它。 现在右键单击exe,选择属性,然后设置"复制到输出"除了&#34之外的任何财产;不要复制"。 现在,在代码中的任何位置,使用路径" Externals \ YourExe.exe"。双反斜杠是为了避免反斜杠。另一种方法是使用@" Externals \ YourExe.exe",它在编译期间将字符串转换为路径。

你去,当你构建时,exe将被自动复制到构建目录"外部"目录,永远是亲戚。

答案 1 :(得分:0)

最终,Visual Studio为此任务提供了一个宏选项。

enter image description here

如上图所示,当您查看“包含目录”窗口时,会出现一个标有“宏”的按钮。单击该按钮,可以访问预定义路径列表。它们都以$开头,就像已经提供的那些指向Visual Studio的include文件夹一样。

在上面的示例中,我添加了$(MSBuildProjectDirectory),它指向我的代码文件夹所在的驱动器上所需的确切文件夹。希望我能帮助至少一两个人,因为它让我疯了,直到我遇到它。