我在跑步:
Windows 8 x64
2013
Slik颠覆
在我的csproj文件中,在构建之前,我需要从SVN存储库中提取以下内容
<Target Name="BeforeBuild">
`<Exec ContinueOnError="true" Command="svn co --trust-server-cert --non-interactive --username MY_USERNAME --password MY_PASSWORD https://MY_SVN_REPOSITORY $(MSBuildProjectDirectory)\SUB_DIRECTORY" />`</Target>
在输出窗口中,我得到:
'svn' is not recognized as an internal or external command, operable program or batch file.
为什么我可以在命令提示符下成功地运行此命令,而不能在visual中运行?
svn co --trust-server-cert --non-interactive --username MY_USERNAME --password MY_PASSWORD https://MY_SVN_REPOSITORY $(MSBuildProjectDirectory)\SUB_DIRECTORY
发布于 2013-12-17 00:26:09
尝试用"cmd /c“作为命令的前缀,包括svn的完整路径,或者确保svn的位置出现在% path %环境变量中。
如果这是一个公共位置,那么将其硬编码到在exec任务中引用的属性中:
<Target Name="BeforeBuild">
<PropertyGroup>
<SvnDir>c:\programfiles\svn\</SvnDir>
</PropertyGroup>
<Exec ContinueOnError="true" Command="$(SvnDir)svn co --trust-server-cert --non-interactive --username MY_USERNAME --password MY_PASSWORD https://MY_SVN_REPOSITORY $(MSBuildProjectDirectory)\SUB_DIRECTORY" />
</Target>编辑:编辑:显示您可以配置该文件夹,但是granadacoder有一个很好的解决方案,可以很容易地集成到构建解决方案中。
发布于 2013-12-17 14:29:32
在dos命令窗口中键入"set“。
看看“小径”。
您可能会看到"svn.exe“所在的文件夹。
你的味精可能看不见。
但还有更好的办法。
获取并安装MSBuild社区Tasks.........and,它们有一个svn任务。它比编写EXEC命令更容易。
很多定制的Msbuild任务就是这样的。它们简单地包装命令行调用,但给您可设置的属性,而不是连接exec命令。
https://github.com/loresoft/msbuildtasks/tree/master/Source/MSBuild.Community.Tasks/Subversion
一个例子
<SvnExport RepositoryPath="file:///d:/svn/repo/Test/trunk"
LocalPath="$(MSBuildProjectDirectory)\Test\Export">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnExport>或者,如果msbuild扩展包更多的话,那么您就是一杯茶。
http://www.msbuildextensionpack.com/help/4.0.5.0/html/bccddf04-f5ee-21d4-0f64-bb1b42b08257.htm
<!-- Export -->
<MSBuild.ExtensionPack.Subversion.Svn TaskAction="Export" Item="c:\path\workingcopy" Destination="c:\path\exported"/>我两种都用。你会“得到你的钱的价值”多次使用这些非常有用的附加任务。这是值得的小安装努力,让他们启动和运行。
https://stackoverflow.com/questions/20622040
复制相似问题