好的,这是问题所在.我有两个项目,一个是C#Console,另一个是类库.我从控制台应用程序访问/调用类库方法.类库项目中有一个名为Files的文件夹.
我需要获取类库的文件夹的路径,但每当我使用时
System.IO.Directory.GetCurrentDirectory();
Run Code Online (Sandbox Code Playgroud)
和
Environment.CurrentDirectory;
Run Code Online (Sandbox Code Playgroud)
它给了我控制台项目的路径,我用它来调用方法.
以上方法给我的路径就像
C:\\ConsolePro\\bin\\Debug
Run Code Online (Sandbox Code Playgroud)
但我需要类库项目的路径
C:\\ClassLibPro\\bin\\Debug
Run Code Online (Sandbox Code Playgroud)
请指教
编译并运行代码后,"项目路径"没有任何意义.您可以确定所有已编译程序集的文件位置.如果您的Console项目直接引用构建的"类库"DLL而不是通过项目引用,那么您只能按照自己的要求进行操作.
然后,您可以使用Reflection来获取装配路径;
string path = Assembly.GetAssembly(typeof (SomeClassInOtherProject)).Location;
Run Code Online (Sandbox Code Playgroud)
我相信问题是:
由于控制台项目具有 DLL 文件引用,因此它使用 DLL 来调用任何方法。此时它返回类库项目的 DLL 位置,该位置位于控制台项目的 bin 目录中,并且不知道类库项目的物理位置。
所以本质上它返回相同的项目路径。为了解决这个问题,我必须将两个项目移到同一目录中。
| 归档时间: |
|
| 查看次数: |
57664 次 |
| 最近记录: |