goo*_*oon 42 visual-studio-2010
我看过几篇与此主题相关的帖子,但没有任何结论性答案......
在调试我的VS.NET 2010应用程序时,我正在尝试启动一个位置相对于项目路径的外部程序.我已经看到一些迹象表明在早期版本的VS.NET中支持宏(如$(ProjectDir)),但它们似乎在VS.NET 2010中不起作用.使用相对路径表示法只是给出了一个错误,即路径无效.
有没有人碰到这个?如果是这样,你是怎么解决的?
谢谢.
cfb*_*ero 46
我知道派对有点晚了,但我们就是这样做的.关键是将'OutputPath'显式设置为Build目录.这会将其重新定位到工作目录而不是VS安装目录.
更新项目的输出路径为:
<OutputPath>$(MSBuildProjectDirectory)\bin\</OutputPath>
更新项目的StartProgram为:
<StartProgram>$(OutputPath)Relative.exe</StartProgram>
这是一个示例配置PropertyGroup:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == '0-Local|AnyCPU'">
<!-- default values you should already have in your csproj -->
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<!-- actual output path and start action definition -->
<OutputPath>$(MSBuildProjectDirectory)\bin\</OutputPath>
<StartAction>Program</StartAction>
<StartProgram>$(OutputPath)NServiceBus.Host.exe</StartProgram>
<StartArguments>NServiceBus.Integration</StartArguments>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
小智 31
与Yobi21建议的类似,编辑项目文件并将这些行添加到<PropertyGroup>项目文件的main 中对我有用:
<StartAction>Program</StartAction>
<StartProgram>$(MSBuildProjectDirectory)\Path\Relative\To\CSProj\Folder</StartProgram>
<StartArguments>Any Required Arguments</StartArguments>
Run Code Online (Sandbox Code Playgroud)
注意
.csproj.user文件中的属性覆盖常规项目文件中的属性.
这个让我很难过,直到我删除了这些条目.
goo*_*oon 18
在这里找到答案.
如果上述链接失效,总结的答案如下:
如果通过在资源管理器中单击SLN文件启动Visual Studio.NET,则基本路径将是SLN所在的文件夹(包括"\").一旦我修改了我的相对路径来考虑这个,然后通过双击SLN文件启动VS.NET 2010,我的外部程序在按下F5时正确启动.
如果从开始菜单上的快捷方式启动Visual Studio.NET,然后从Visual Studio.NET中打开SLN,则基本路径将是[Visual Studio安装路径]\Microsoft Visual Studio ["9.0"或"10.0"取决于使用VS.NET 2008还是2010]\Common7\IDE \.
我想这现在有道理,但它仍然有点臭,VS.NET只能正确找到我的外部程序,这取决于我如何启动VS.NET.
Art*_*his 14
如果您在启动外部程序中直接在VS2010中使用它,$(SolutionDir)将无法工作,但如果您关闭解决方案并使用记事本打开YourProject.csproj.user,则可以更改路径并包含$(SolutionDir).
重新打开VS 2010,它就像一个魅力.
这里是我的项目"ApplicationService_NSB.csproj.user"的一个例子
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartAction>Program</StartAction>
<StartProgram>$(SolutionDir)\Super\ApplicationService_NSB\bin\Debug\NServiceBus.Host.exe</StartProgram>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17194 次 |
| 最近记录: |