我需要在visual studio中设置一个构建和部署解决方案的预构建事件。单独的解决方案位于我正在使用的解决方案的当前目录下的目录中。这有意义吗?
top level dir
/ \
/ \
/ \
|------------| |-----------------|
| mySLn.sln | |prebuild sln dir |
|------------| |-----------------|
\
\
\
|-----------------|
| prebuild.sln |
|-----------------|
问题是我们有多个开发人员所以使用绝对路径解决方案是行不通的。我们将不得不手动更新每个开发服务器的每个开发者的路径。是否有开发人员有预构建事件来构建和部署Visual Studio 2010中的prebuild.sln与相对路径?
我在网上看到的一切都是完整的路径:
devenv / build
devenv / deploy
是否有一个变量我可以抓取当前解决方案所在的完整路径并将我的子目录和解决方案附加到devenv命令以获取完整路径?
答案 0 :(得分:0)
此宏在Build Event命令行中可用:
$(SolutionDir)
答案 1 :(得分:0)
你有两个选择:
第一个是修复解决方案的结构,并将项目引用添加到mySln.sln中的项目。 (为此,您必须将子项目添加到解决方案中,然后添加项目引用。如果需要,可以从mySln.sln中删除子项目。)
第二个选项是在预建解决方案中构建项目。然后,在需要引用预构建输出的项目中设置reference paths,然后添加对dll的引用。 Visual Studio将存储* .csproj.user文件中dll的路径。然后,每次开发人员提取mySln.sln的新版本时,他们都需要通过并设置项目中的引用路径,但是他们不会需要自己设置引用。您的预构建解决方案可以在任何地方生活,或者实际上构建在CI服务器上,并根据需要下载输出。