Jer*_*vel 6 git msbuild visual-studio visual-studio-2015
我有一个项目有以下内容PostBuildEvent:
<PostBuildEvent>
if exist Diagnostic.nuspec
if exist "$(SolutionDir)\packages\NuGet.CommandLine.2.8.2\tools\NuGet.exe"
"$(SolutionDir)\packages\NuGet.CommandLine.2.8.2\tools\NuGet.exe"
pack Diagnostic.nuspec
-OutputDirectory "C:\Users\jeroen\Google Drive\NugetLocal\VSDiagnostics"
</PostBuildEvent>
Run Code Online (Sandbox Code Playgroud)
在这里,OutPutDirectory显然是我自己的安装本地.默认值为..
此配置存储在项目的.csproj文件中,该文件还跟踪诸如对其他程序集的引用和项目中的文件之类的内容.
出于这个原因,我不能简单地忽略git中的文件,或者我的其他任何更改都.csproj不会通过.
有没有什么方法可以保持我的本地化PostBuildEvent而不将其强加给其他合作者?
我通过设置用户帐户级别环境变量解决了这个问题,并根据该变量使用它或使用默认值。
我只是用这个交换了原来的PostBuildEvent和周围的PropertyGroup:
<Choose>
<When Condition=" $(NUGETLOCAL) != '' ">
<PropertyGroup>
<PostBuildEvent>if exist Diagnostic.nuspec if exist "$(SolutionDir)\packages\NuGet.CommandLine.2.8.2\tools\NuGet.exe" "$(SolutionDir)\packages\NuGet.CommandLine.2.8.2\tools\NuGet.exe" pack Diagnostic.nuspec -OutputDirectory $(NUGETLOCAL)</PostBuildEvent>
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<PostBuildEvent>if exist Diagnostic.nuspec if exist "$(SolutionDir)\packages\NuGet.CommandLine.2.8.2\tools\NuGet.exe" "$(SolutionDir)\packages\NuGet.CommandLine.2.8.2\tools\NuGet.exe" pack Diagnostic.nuspec -OutputDirectory .</PostBuildEvent>
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
</Otherwise>
</Choose>
Run Code Online (Sandbox Code Playgroud)
环境变量设置为NUGETLOCAL值"C:\Users\jeroen\Google Drive\NugetLocal\VSDiagnostics"(包括重音符号)。如果未设置该变量,它将使用默认目录,并且用户可以选择随时定义自己的目录。
该代码可能并不那么漂亮,所以如果您看到改进,请告诉我。
我在这里详细阐述了这一点。
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |