首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括代码存储库中的Nemerle编译器

包括代码存储库中的Nemerle编译器
EN

Stack Overflow用户
提问于 2012-10-31 11:36:46
回答 2查看 261关注 0票数 3

我正在尝试将Nemerle编译器包含到我的源代码存储库中,这样就可以在构建服务器上不安装Nemerle就可以构建它。当前,我的源代码目录如下所示:

代码语言:javascript
复制
- [MySolutionFolder]
--- [.build]
------ [Nemerle]
--------- [net-4.0]
------------ ncc.exe
------------ ncc32.dll
------------ Nemerle.dll
------------ Nemerle.MSBuild.targets
------------ { all other Nemerle requirements }
--- [MyNemerleProjectFolder]
------ MyNemerleProject.nproj
------ { various .n files }
--- MySolution.sln
--- build.bat

build.bat文件是一个简单的脚本,它在.sln文件上调用MSBuild。

在我的.nproj文件中,我更改了行

<Nemerle Condition=" '$(Nemerle)' == '' ">$(NemerleBinPathRoot)\$(NemerleVersion)</Nemerle>

至:

<Nemerle Condition=" '$(Nemerle)' == '' ">$(SolutionDir).build\Nemerle\$(NemerleVersion)</Nemerle>

在进行此更改后,可以从命令行脚本成功构建,但无法在Visual中打开解决方案。打开解决方案时,VS抱怨它找不到MySolutionFolder\MyNemerleProjectFolder\.build\Nemerle\net-4.0\Nemerle.MSBuild.targets

为什么visual要在项目文件夹而不是解决方案文件夹下寻找.build目录?有办法解决这个问题吗?

如果我把它改为:

<Nemerle Condition=" '$(Nemerle)' == '' >$(ProjectDir)..\.build\Nemerle\$(NemerleVersion)</Nemerle>

然后解决方案将在visual studio中打开,但是构建失败--命令行构建也会失败。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 20:36:03

尝试使用$(MSBuildProjectDirectory)而不是$(ProjectDir)。例如:

代码语言:javascript
复制
<Nemerle Condition=" '$(Bootstrapping)' == 'true' ">$(MSBuildProjectDirectory)\..\Boot\$(NemerleVersion)</Nemerle>
<Nemerle Condition=" '$(Bootstrapping)' == 'false' ">$(NemerleBinPathRoot)\$(NemerleVersion)</Nemerle>
票数 3
EN

Stack Overflow用户

发布于 2012-11-01 09:57:51

听起来像是中的一个bug。

您可以做的是指定一个预构建事件,它将create a symbolic link$(ProjectDir).build$(SolutionDir).build

哈基什是的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13157013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档