1

我需要在 Visual Studio 中设置一个构建和部署解决方案的预构建事件。单独的解决方案位于我正在使用的解决方案的当前目录下方的目录中。这有意义吗?

           top level dir
          /          \
         /            \
        /              \
 |------------|    |-----------------|
 | mySLn.sln  |    |prebuild sln dir |
 |------------|    |-----------------|
                          \
                           \
                            \
                   |-----------------|
                   |  prebuild.sln   |
                   |-----------------|

问题是我们有多个开发人员,因此为解决方案使用绝对路径是行不通的。我们将不得不手动更新每个开发服务器的每个 develoepr 的路径。开发人员是否有一个预构建事件来构建和部署具有相对路径的 Visual Studio 2010 中的 prebuild.sln?我在网上看到的所有内容都是完整路径:devenv /build devenv /deploy

是否有一个变量可以获取当前解决方案所在的完整路径,并将我的子目录和解决方案附加到 devenv 命令以获得完整路径?

4

2 回答 2

0

该宏在 Build Event 命令行中可用:

$(解决方案目录)

于 2011-06-15T15:17:50.223 回答
0

你有两个选择:

首先是修复解决方案的结构,并将项目引用添加到 mySln.sln 中的项目。(为此,您必须将子项目添加到解决方案中,然后添加项目引用。然后,您可以根据需要从 mySln.sln 中删除子项目。)

第二种选择是在预构建解决方案中构建项目。然后在需要引用预构建输出的项目中设置引用路径,然后添加对 dll 的引用。Visual Studio 会将 dll 的路径存储在 *.csproj.user 文件中。然后,每次开发人员拉取新版本的mySln.sln时,他们都需要检查并设置项目中的引用路径,但他们不需要自己设置引用。然后,您的预构建解决方案可以存在于任何地方,或者确实构建在 CI 服务器上并根据需要下载输出。

于 2011-06-15T15:30:13.333 回答