none
how can I get the current solution path in visual studio RRS feed

答案

  • 程序一旦运行,就没有解决方案的概念了。

    但是可以使用宏 $(SolutionDir) 来表示解决方案目录,比如在“生成事件”中编写拷贝.lib文件到某个目录的命令时非常有用。
    2012年9月19日 7:07
  • .sln的位置是可以任意指定的,包括Debug\Release的位置也是可以任意指定的,也就是说当程序运行后,.sln的位置对程序来说就是不可知的,因为.exe中不会把.sln的位置信息记录下来,所以调试运行的时候是无法准确知道.sln的位置的。

    .pdb文件中会记录源代码的位置,但是即使你从pdb中知道了源代码位置,也无法确定.sln的位置,因为正如我上面所说.sln的位置可以是任意的,.sln包括的项目和源代码的位置是在.sln和.vcxproj中描述的。

    如果你能固定.sln相对于你的Debug\Release的位置,那么你可以通过获取当前运行目录来反推出.sln的位置。

    你应该把你的需求讲清楚,或许找.sln文件的方式并不是你期望的实现你的需求的唯一路径。

    2012年9月20日 2:33

全部回复

  • 据我所知。没有这样的API。不过一般情况编译的时候默认的路径就应该是.sln的路径。


    麻烦把正确答案设为解答。

    2012年9月19日 3:02
    版主
  • hi SplendourG,

    thanks for your reply!

    I just want to get the path and send the path to Eclipse(throuth JNI and MSSCCI).

    do you have any ideas?

    2012年9月19日 3:19
  • 据我所知。没有这样的API。不过一般情况编译的时候默认的路径就应该是.sln的路径。


    麻烦把正确答案设为解答。


    Is the DTE can provide the interface to get the file path of .sln?
    2012年9月19日 3:21
  • 程序一旦运行,就没有解决方案的概念了。

    但是可以使用宏 $(SolutionDir) 来表示解决方案目录,比如在“生成事件”中编写拷贝.lib文件到某个目录的命令时非常有用。
    2012年9月19日 7:07
  • .sln文件有存放在本地磁盘,那么就应该可以获得这个文件的目录吧。

    我现在是想在跟.sln同级的目录下创建一个文件。

    但是IDE那边传过来的是根目录(eg.c:\\)

    我现在想得到.sln的绝对路径。。

    哪位大神有解决方法。?

    不胜感激啊。。

    2012年9月19日 13:47
  • .sln的位置是可以任意指定的,包括Debug\Release的位置也是可以任意指定的,也就是说当程序运行后,.sln的位置对程序来说就是不可知的,因为.exe中不会把.sln的位置信息记录下来,所以调试运行的时候是无法准确知道.sln的位置的。

    .pdb文件中会记录源代码的位置,但是即使你从pdb中知道了源代码位置,也无法确定.sln的位置,因为正如我上面所说.sln的位置可以是任意的,.sln包括的项目和源代码的位置是在.sln和.vcxproj中描述的。

    如果你能固定.sln相对于你的Debug\Release的位置,那么你可以通过获取当前运行目录来反推出.sln的位置。

    你应该把你的需求讲清楚,或许找.sln文件的方式并不是你期望的实现你的需求的唯一路径。

    2012年9月20日 2:33
  • 我简单讲一下我的需求吧,

    1.用vs创建一个website,这时的.sln文件所在目录为c:\documents and settings\admin\mydocuments\vs2010\projectes\website\website1.sln。

    2.我想在c:\documents and settings\admin\mydocuments\vs2010\projectes\website\目录下创建文件scc.xxx。这个时候我肯定要通过IDE把.sln所在路径(c:\documents and settings\admin\mydocuments\vs2010\projectes\website\)传给我的应用程序,然后应用程序到指定路径去创建我需要的文件。

    我上网看到用DTE.solution.fullname 貌似可以获得这个路径。不知道你对这方面有没有了解。

    非常感谢你的回复

    2012年9月20日 3:15
  • http://msdn.microsoft.com/zh-cn/library/xc52cke4.aspx

    你说的是Visual Studio 的自动化和扩展性,这是VS的插件,你可以具体了解下VS的插件是怎么工作。

    你仍然是先说出了你的解决方案,而没有描述你的需求是什么,也就是说你为什么要在调试启动后在你的代码中得到.sln的路径并传递给另外的应用程序。

    2012年9月20日 3:42
  • 嗯,那我再说一下吧:

    我在做一个mscci项目,需要获取.sln文件的路径然后传递给跟mscci项目,那边创建一个eclipse项目。也就是要创建一个eclipse项目文件。现在要把这个项目文件创建到跟.sln文件同级的目录下面便于管理。

    不知道这样你能不能理解?

    2012年9月20日 5:39